Developers Summit 2015 Summer

2015/07/29(木)

Developers Summit 2015 Summer「【ユーザ企業登壇!】先進企業が語る、 ソフトウェア開発環境のビフォーアフター」レポート

講演者

  • ギットハブ・ジャパン合同会社 堀江大輔 氏
  • LINE株式会社 石島秀晃 氏
  • エヌ・ティ・ティ・コミュニケーションズ株式会社 岩瀬義昌 氏

2015年7月29日(木)にソラシティカンファレンスで開催された「Developers Summit 2015 Summer」にて、【ユーザ企業登壇!】先進企業が語る、ソフトウェア開発環境のビフォーアフターと題しまして、講演をさせていただきました。

まずギットハブ・ジャパン合同会社の堀江氏にご登壇いただき、GitHubの概要をご紹介し、その後LINE株式会社石島氏、エヌ・ティ・ティ・コミュニケーションズ株式会社岩瀬氏にGitHub Enterpriseの社内活用についてご紹介いただきました。

GitHubは7年前に設立し、世界最大の開発者コミュニティとなり、現在1000万人のユーザが利用し、2400万以上のレポジトリがあります。さらに、毎日1万~1万5千人のユーザが新しくGitHubに登録していています。
GitHubが開発された背景は、Linuxの開発したコード管理ツール・バージョン管理ツールが使いづらく、GitHubの創立者が自分たちの“問題”を解決するために、GitHubのビジネスを展開しました。またもう1つ、GitHubを立ち上げた背景として、ソフトウェア開発全般んにおいて、社内にいる1人1人の開発者が素晴らしいソフトウェアを開発できるのであれば、正しいワークフローと開発者が一緒にソフトウェア開発できる環境を提供できれば、さらに良いソフトウェアを開発できると考えたからです。
2010年にチームのアカウントを非公開で使えるように設計し、企業も使えるようになりました。そして、2012年にGitHubを自社の環境にインストールできるGitHub Enterpriseをリリース、自社内でのソフトウェア開発も、オープンソース的なスタイルを取り入れて開発できるようになりました。

GitHubの歴史

GitHubの世界観は、開発者を中心にソフトウェアを開発することで、たくさんの人が素晴らしいソフトウェアを開発できる世の中を作ることです。
2011年に投資家のマーク・アンドリーセン が「すべての企業がソフトウェア企業になる」と語っており、「この言葉は日々実現に向かっていると実感しており、ソフトウェアというテクノロジーは多種多様な業種・産業に影響を与えている」と堀江氏は言います。自社が生き残るために、ソフトウェアを1つの重要なスキルとして変化させ、総務や営業の部署と同じようにソフトウェア部署ができるようになると予測しています。つまり、近い将来どの企業でもソフトウェア開発者がいて、重要なポジションと位置付けるようになると考えています。

すべての企業がソフトウェア企業である

そのためにGitHubは3つのものを提供しています。1つ目は共通のネットワークです。GitHub上にはソフトウェアコードはたくさんあり、誰でも見ることができ、誰でも参照でき、既存のコードを再利用することで生産性を向上します。2つ目はGitHub Flowです。これは、“ブランチを作成して開発を進め、プルリクエストを作成して、元のプロジェクトに戻す”というフローを意味しており、今現在ほとんどオープンソースでも企業においてもこのようなフローでソフトウェア開発が進められています。3つ目は、統合されたプラットフォームを提供しています。また既存のツールとの連携することも容易です。

続いて、LINE株式会社 石島氏より、GitHub Enterpriseの導入についてお話いただきました。
LINEは2011年6月にリリースされ、2012年の夏頃に登録ユーザー数が4000万人を超え、順調にサービスが拡大していた一方、内部ではLINEのファミリーアプリやゲームなどLINEと関連するサービスが増えており、開発チームが増え、開発者が増え、グローバルでの開発拠点も増える一方でした。また、LINE本体も開発から1年経ち、機能拡張もあり、より社内における開発環境におけるリポジトリの数が増え、ブランチの数も増え、コミットの数も増え、量との戦いの時期がありました。この量との戦いのなかで、様々な開発者が様々なソースコードを見るが検索が上手くいかず、共有がしづらかった現状が明らかになりました。また当時は「Gitでこの機能をリリースしたい!」となった場合、ブランチを作って、自分の変更をコピーしてLINEかメールで連絡をするという、コミュニケーションをしていた結果、メールで複数人から修正依頼がきて、開発者間のコミュニケーションコストが膨大になっていました。

当時の課題

そこで、「もっとシェアしたい」「もっとレビューを簡単にやりたい」という動きから、解決できる方法を調べたところ、プルリクエストでレビューができ、簡単にでき、検索もできるGitHub Enterpriseの導入を検討しました。導入に際して、当時のLINE開発責任者(現CTO)から「GitHub Enterpriseの導入効果はあるのか?」と問いかけられました。。その問いに対して、LINEの開発リーダーと石島氏は、「もっとソースコードを共有したり、検索する文化を定着させたい」と返答しました。本音としては数値的な効果を表すというより、文化や仕組みを定着させたいという観点は上層部へ説明するのは困難だったのですが、当時開発者が増えたことにより、開発の品質チェックの仕組みが必要であることも考慮され、それを加味して購入が決定しました。
開発プロセスの変化は、プルリクエストという形で変更したい機能や差分を必ず複数人がレビューしてから開発のブランチにマージするようになりました。本番のリリースのブランチにも必ずレビューを通してからマージするという運用を徹底しました。GitHub FlowとGit Flowという別のやり方をミックスした形で、自社の開発フローにマッチさせ運用をしています。

しかし、1点問題がありました。エンジニアは基本的にメールを見ません。プログラミングに集中しているとソースコードを見ていて、メールに一切気づかないことがあります。
この問題に対してLINEで通知することを検討しました。具体的には、プルリクストでレビュー依頼が来ると、LINEに通知がくるようにしました。通知のほかに、プルリクエストの一覧やLINEとの連携を構築しました。
最後に、「GitHub Enterpriseを利用してソースコードを共有し、もっとレビューできれば、もっと開発者が幸せになるのだと思います。」と言及し、発表を締めくくりました。

まとめ

続いて、エヌ・ティ・ティ・コミュニケーションズ株式会社 岩瀬氏に「大企業で実現するイマドキの内製開発」と題してご登壇いただきました。岩瀬氏は会社全体の話ではなく、どちらかというマイノリティの話という前提のもと、皆様に絶対役立つ!と力説して発表が始まりました。

本講演での伝えたいメッセージは、歴史ある大企業でもイマドキの内製開発ができるんだぞ!ということです。自分自身、以前はレガシーな開発を行っていましたが、そのような環境からイマドキのモダンな開発に至ったのかをストーリーベースで説明していただきました。

岩瀬氏は、2年前にデブサミに来たとき、「エンジニアとして生きていけるのか、世の中の開発ってどうなっているんだろう?」と思っていたそうです。岩瀬氏は当時、ウォーターフォール開発をしていました。ウォータフォールの担当工程としては、要件定義、外部設計、結合試験、受入試験でした。その工程における、エンジニアとしての武器はOfficeでした。

そのような環境のもとで、デブサミに来て衝撃を受けました。「世の中は全然違う、世の中の開発はすごい!!」と実感したそうです。

その状況から2年半が経った現在、自身が担当しているのはWebの最先端技術であるWebRTCを利用したSkyWayというプラットフォームです。SkyWayは、内製開発中心にリリースしています。

なぜ内製開発するのか?

本プラットフォームは一回限りでなく継続的にリリースを続けています。では、なぜ、どのようにしてレガシーな開発環境から2年半を得て、このようなモダンな開発環境に変化したのかを、具体的に紹介していきましょう。

NTTコミュニケーションズと聞くと、「古くからある大企業」「外注開発」と思う方が多いと思います。もちろん自社の中で外注開発は確かに中心です。しかし、自分がいるチームは逆で、ほぼ内製開発をしています。理由はいくつかあります。1つ目は、技術力は競争力の源泉であること。2つ目は外注しているとスピードが遅いこと。3つ目は内製×DevOpsは相性が良いので、リリースが超高速で回せること。4つ目はなにより、楽しいこと!!と岩瀬氏は語りました。

なぜ内製開発するのか?

内製開発を楽しくやるプロセスとして、スクラムを中心にウォーターフォールを併用して開発しています。また、コーディングも重要視していて自分たちで書けるものは書いていて、かつ徹底して自動化します。内製開発を効率化するためには、自動化は必須です。その中心にいるのがGitHubです。たとえば、インフラはすべてソースに起こしてコード管理します。

こんな開発スタイルを支えている文化を明示的に文章に起こしています。それは“ミッションステートメント“というものです。具体的に例を挙げると、「チームで仕事をすること」「社内ベンチャーである」「ソフトウェアを開発」するというものです。チームには、常に先端技術を利用し、エンジニア個人の成長を促す文化があります。そのなかでGitHub.comやGitHub Enterpriseも並行して使っています。

.comとEnterpriseは特性で使い分け

ここ一週間でGitHubを使った開発事例をご紹介します。

最近、コンテンツの最新化といった要求のもと、サイトのリニューアルを実施しました。しかし、リリースの少し前に仕様変更という出来事がありました。しかし、すぐに変更をIssueとして洗い出してチーム一丸となって解決しました。Issueをつぶすときは、もちろんプルリクエストを利用しており、チーム全員のプルリクエストが飛び交うような状況でした。本件においてもチームで何かを作るうえで、GitHub Enterpriseは役に立っています。。

「GitHub Enterpriseを導入した際は、小さいサイズで導入して、布教活動を地道にやりました」と岩瀬氏は言います。その結果、20人弱で始めたGitHub Entepriseが80人超へ増加中です。岩瀬氏は「となりの部署、席の人が何をしているかわかりますか?」と客席へ問いかけたうえで、「GitHub Enterpriseを導入したことで、隣のチーム、島を超えてアクティビティが可視化される」と答えました。つまり、これは社内オープンソースが実現できるとのことです。

その結果、組織が活性化します。(あの人、このプルリクエストを出した人だ、とか、)
GitHub Enterpriseは開発者向け・ソースコード向けだと思われがちですが、ドキュメント業務もGitHub Enterpriseで管理できます。(バージョン管理を利用して)誰がどういう理由でどう変えたかをGitHubでトラッキングできます。

最後に、「歴史ある企業でも、イマドキのモダン開発は可能です」と力強く宣言しました。
なぜなら、まずはじめるのは簡単だからですと続けました。スモールスタートで始めましょう。良いものはだんだん広がります。本当に良いものの1つは、GitHub Enterpriseです。GitHub Enterpriseを使って楽しいエンジニアライフを送りましょう、ということで、講演を締めました。

最後に、ギットハブ・ジャパン合同会社の堀江氏から、「GitHubのミッションは企業がソフトウェア企業になることをサポートすることです」、と言及して、本セッションを締めました。

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

電話でのお問い合わせ 045-476-2010

受付:月曜日~金曜日 8:45~17:15

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30