Developers Summit 2016 P3

Developers Summit 2016 「ユーザ企業が語る、チーム開発をサポートする生産性や品質の向上を実現する ソフトウェア開発環境とは?」レポート

続きまして、株式会社インターネットイニシアティブ(以下、IIJ) プロダクト本部 基盤プロダクト開発部 応用開発課 近藤翔太氏より、「GitHub Enterpriseと内製開発の文化」と題してご講演いただきました。

近藤氏には、GitHub Enterpriseを導入前の環境と導入して良くなった点をご紹介していただきました。IIJは、国内最古の商用ISPとして立ち上がり、自社サービス・プロダクトによるソリューションを持っています。内製開発で活発なものとしてはIaaS型クラウド(IIJ GIO)などがあげられます。近藤氏は、自社開発ルータ“SEIL”、“SA”シリーズの集中管理サービスの開発・運用やGitHub Enterpriseの運用や管理を担当しています。 IIJにおけるバージョン管理システムは、チームによって乱立していました。古いものでCVS、SVN。一時的にGitHubのコピーであるGitLabなどを検証利用したこともありますが、2013年8月よりGitHub Enterpriseを利用しています。そもそもSVN以前の時代は、手元で確認しきれていないバグなどを後から変更することがとても大変だったことや、メールでのレビューがとても大変だったそうです。また、部署毎にバージョン管理システムやチケット管理システムが乱立しており、複数プロジェクトに参画している開発者の負担が大きかったそうです。社内での運用負荷や安定性を考慮し、最終的にGitHub Enterpriseを採用いただきました。

GitHub Enterpriseと内製開発の文化
Before - SVN以前の世代

2016年2月時点での利用実績では、280シートライセンス。パブリックとプライベートを合わせてリポジトリの数は3,000以上ありました。用途としては、プロジェクトの開発がメインで、他にも個人のツールやパッチ、日報や週報やドキュメントリポジトリも存在します。GitHub Enterpriseの運用は3人で行っていますが、特に障害もなく特別なことは行っていません。

実際に導入したGitHub Enterprise時代ですが、GitHub EnterpriseのWEBサービス自体が開発のポータルになりました。このポータルを見れば、どのプロジェクトでも見られることが近藤氏としては嬉しかったとのことです。また、乱立していたコードが一か所に集まることで、自分たちが参画していないプロジェクトのリポジトリにあったツールやライブラリが自分たちでも見えるところに集まってきました。それだけではなく、採用の面でも、自分が通っていた大学に行った際に「GitHub Enterpriseの運用をしています」と言うと、学生からリアクションをもらえるほどウケが良かったり、中途や新卒で入社される方が入社以前からGitHubを使っていると自然に開発のフローに溶け込めるのが利点だと感じています。GitHubと比較した時のGitHub Enterpriseの利点としては、社外に出せないコードをインターネット上のGitHubに置いておくのはとても不安であるため、社内で運用可能であることが非常にメリットとなっています。一番推したい機能はプルリクエストです。プルリクエストは、gitのブランチを作り変更の取り込みを依頼するということで、本流(gitのマスタ―ブランチ)に取り組んで貰うのですが、ブラウザ上でレビューや議論ができます。プルリクエスト機能にはLGTM(Looks Good To Me)という「いいね」みたいな文化があります。エンジニアは褒められると頑張ろうっていう気持ちになるので他の開発者からLGTMのコメントを受け取るととても嬉しいとのことです。また、ログインしなくてもコードが閲覧可能なこともメリットです。なぜなら、誰でもアクセスできるので、プロジェクト以外の社員からもユーザ視点や開発者視点から意見や要望が上がってくるからです。開発者からはコントリビュートが期待できます。プロジェクトに関わっていない人からもプルリクエストが送られてくるので、「こういう不具合があったよ」「もっとこうしたほうが良い」という指摘やアイデアが集まってきます。他にも車輪の再発明を防ぐことができます。別のプロジェクトでまったく同じようなコードを書いていると生産性が悪いのですが、これを防ぐことができます。リポジトリやコードを共有することで共同開発ができるところが良いです。

コードに誰でもアクセスできる

実は、これらはGitHubが提唱する「ソーシャルコーディング」の文化です。これはコードを介して他者とコラボレーションすることです。コードを共有するためにオープンであること、誰でも参照できて、誰でも気軽にアイデアを出し合える、コントリビュートできる、そしてみんなでプロダクトを作っていく、という文化のことです。

GitHubの文化 - social coding

GitHub Enterpriseを導入することで、開発のフローが自然とGitHub Flowに沿い、開発プロセスを変え、徐々に開発の文化が変わってきて、やがてみんなでプロダクトを作っていくエンジニアの組織ができていくのだと考えています。IIJでは、個人のツールやコードは少しずつ公開され始めています。(勤怠管理系のツールやサーバ用の設定ジェネレータなど)そのため、少しずつソーシャルコーディングの文化が根付いてきている印象を受けます、として講演を締めくくりました。

開発文化の変化

最後に、廣田より、良い開発ツールを使っても、開発プロセスや開発文化が変わらないということは起こりえますが、良いツールがないと何かを変えることすらできません。是非この講演がきっかけになってくれれば幸いです、として本公演を締めくくりました。 ここまでご覧いただきまして誠に有難うございました!

GitHub Enterpriseに関してのお問い合わせはお気軽に

  • TEL:045-476-2010

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30