GitHub

ギットハブ

GitHub - ユーザー事例 - 株式会社インターネットイニシアティブ(IIJ)様

ソーシャルコーディングを利用したアジャイル型開発に移行 継続的インテグレーションと継続的デプロイメントを実施し 開発生産効率と品質を大幅に改善し高頻度のリリースも実現

株式会社インターネットイニシアティブ(IIJ) 様
株式会社インターネットイニシアティブ(IIJ) 様
株式会社インターネットイニシアティブ(IIJ) 様

株式会社インターネットイニシアティブ(IIJ)
1992年に日本初の国内インターネット接続事業者として創業。以来、日本のインターネットのパイオニアとして技術面を中心にイニシアティブをとり続け、大企業や官公庁など8500社を超える優良顧客基盤を持つ企業グループに発展。インターネット接続やアウトソーシングサービス、WANサービス、システムインテグレーションなどをトータルに提供するソリューションプロバイダーとして事業領域を拡大している。

Before
  • ウォータフォール型開発のため定期ビルドは1日1回が限界
  • 効果的なコードレビューができず不具合の早期発見が困難
  • 開発者のノウハウや開発プロセスの属人化が課題
矢印:横
矢印:縦
After
  • アジャイル型開発への移行により継続的インテグレーションを実現
  • ソースコードの可視化とコメント挿入により情報共有が容易に実現
  • 開発者同士の自由なコラボレーションにより脱「属人化」

ウォータフォール型開発によって継続的インテグレーションが困難に

株式会社インターネットイニシアティブ(以下、IIJ)は、日本で初めてとなるインターネットの商用化を目的に1992年に設立。以後、国内最大規模を誇るバックボーンネットワークを基盤としたインターネット接続サービスを柱に、WANサービスやアウトソーシングサービス、システムインテグレーションなどのサービス提供を通じて商用インターネットのイニシアティブをとり続けてきた。

日本のインターネットの歴史とともに、IIJ社内の開発スタイルは過去いくつもの変遷を辿ってきた。ソースコードのバージョン管理においては、「RCS」、「CVS」から始まり、集中管理型バージョン管理システムの「Subversion」(SVN)を使用したウォータフォール型の開発手法が長く定着していた。しかし1日1回の定期ビルドが限界のため、ソースコード変更の度に単体テストを実行する「継続的インテグレーション」(CI)が実現できず、複数の機能開発、不具合修正、試行錯誤などを効率的かつ並行して行うことが困難な状況だった。また、コミットログもメーリングリストで自動投稿する方法をとっていたため、コードの変更差分の確認や変更意図理解や共有も満足にできず、後の評価フェーズで不具合として発覚するという問題にもつながっていた。

その後、分散型バージョン管理システムの「Git」の運用を開始したものの、SVN時代の旧来の開発スタイルから抜け出せなかった。

IIJ プロダクト本部 基盤プロダクト開発部 副部長の齋藤透氏は、「開発方法も機能単位で人に割り当てられて、担当者以外は他の開発状況を把握しにくいなど、属人化しがちな開発スタイルが課題となっていました。そのため、個人の技量に依存する状況から脱し、コードを管理するだけではなく、同時に多人数でのコードレビューを通した集合知によるアジャイル型開発スタイルに変更して、ソフトウェアの開発効率を高めることが必要でした」と語る。

開発者同士でのコードレビューが日常のワークフローとして定着

IIJが目指したのは、ソースコードを開発者同士が共有し合い、コラボレーションしながらプログラム開発の質をプロジェクト全体で改善していく「ソーシャルコーディング」と呼ばれる開発スタイルへの移行だった。そこで注目したのがGitを利用したオープンソースソフトウェアプラットフォーム「GitHub.com」だ。2012年3月に、社内ソースコードの一部をオープンソース化する目的でGitHub.comを試験的に採用し、IIJのサービスアダプタ製品にmruby(軽量Ruby)を実装し、動作検証に利用して効果が確認できたことから、社外との共同開発やIIJ社内での普及を目的に有料アカウント契約に移行するなど、利用範囲を拡大していった。しかし、本当に必要としていたのは社内に構築可能な「GitHub Enterprise」だった。自社でサーバもコードも管理できるため、機密性の高い環境下でより多くの開発者がソーシャルコーディングを実践できるよう、導入の検討を開始した。

「GitHub Enterpriseの有効性は以前から強く感じており、今後の開発には不可欠なツールだという認識はありましたが、コストの問題で躊躇していたのです。企業向けを謳うGitを利用した類似製品もいくつか検討しましたが、GitHub Enterpriseほど完成度が高いものはなく、どれもパフォーマンスや機能の不足、構築や運用負荷の高さが課題となり、導入には至りませんでした。そんな時に、国内でGitHubEnterpriseを採用し、目覚ましい成果を上げている企業の導入事例を知り、2013年7月に社内を強く説得し稟議を通してもらいました」と齋藤氏は経緯を振り返る。

同様に、IIJ プロダクト本部 基盤プロダクト開発部 応用開発課 猪俣亮氏もGitHub Enterpriseのメリットを次のように説明する。「GitHubEnterpriseはGitHub.com利用者がスムーズに使えるほか、セキュリティ面を考慮してオンプレミス環境で動作させることができます。最大のメリットは開発者がWeb UI上で『PullRequest』を作成し、仕様の確認やソースコードのレビューを行うことができる点です。誰でも自由にコラボレーションに参加できるため品質向上に繋がり、仕様の理解と共有がなされるため属人的な開発から脱却できました。議論や結論はPull Request上に全て記録されるため、いつ誰がなぜその機能追加や修正を行い、誰が承認したのか等を誰でも確認することができます。」

GitHub社の考案したPull Request機能は、マスターブランチに影響を与えることなくソースコードの追加や修正を送信する機能で、コンフリクトの有無が自動判定された後、マージするかの判断を、提案されたソースコードに基づいて議論できる点が大きなメリットといえる。これにより、開発者同士のコードレビューが日常のワークフローに組み込まれ無理なく実践できるようになったという。

開発者同士でのコードレビューが日常のワークフローとして定着

継続的デプロイメントを実施し高頻度のリリース作業が可能に

IIJではGitHub Enterpriseの導入を正式に決定し、2013年8月から社内利用を開始した。2015年12月末現在で、開発を行う部署を中心に約300名のユーザが利用し、リポジトリは3000を超えている。コードの共有だけではなく、Markdown記法(文章記述用マークアップ言語)などを使ったドキュメント管理や、「Issue」(開発メンバ間での共有スレッド機能)によるタスク管理も行われている。

CIについても、GitHub EnterpriseをサポートするOSS版のCI サービス「dr one.i o」が2014年2月に登場したことで、Pull Requestがマージされる前にビルド結果を確認できるようになった。マージ前のコードに対する自動ビルド&テストの実行が可能になり、可否判断の一部を自動化することで、レビュー実施コストの低減、品質の担保という効果も得られたという。

また、リリースフェーズのデプロイメントにおいても、従来は属人的な手作業だったため確認に多くの時間がかかり、デプロイの頻度を低くださせていたが、GitHub Enterprise導入後はソースコードを変更するたびにPull Requestでマージするようにし、GitHub Enterpriseを起点としたデプロイ作業やデプロイ後の確認作業の自動化といった継続的デプロイメントが実現でき高頻度のリリースが可能になった。

GitHub Enterpriseはソースコード管理のみならず開発フローや開発文化の確立に貢献

IIJ プロダクト本部 基盤プロダクト開発部応用開発課 近藤翔太氏は、「大きなプロジェクトの場合はPull Request機能を使うことが当たり前になり、コードレビューを行う習慣づけができるようになっています。それにより、非生産的な開発が改善され、開発の品質が向上しています。また、リポジトリを横断したコード検索や、人気のリポジトリがランキング形式で表示される機能などで他部署や別チームの開発動向も把握できるようになりました」とGitHub Enterpriseの利便性を評価する。

また、猪俣氏も、「GitHub Enterpriseは今ではチームでの開発時のコミュニケーションを促進させてくれるものとして社内に定着しています。もし活用していなければソーシャルコーディングの効果を実感できなかったかもしれません。GitHub Enterpriseがソーシャルコーディングの威力を見せつけたともいえるでしょう」と述べる。

そして、齋藤氏は、GitHub Enterpriseは単なるソースコード管理にとどまらず、開発フローの確立や開発文化の醸成にも成功していると総括する。「今後も社内の普及活動を継続して進めていきますが、GitHub自体の知名度が高まっているので非常にやりやすい環境ができつつあり助かっています。マクニカにも、利用初心者向けのハンズオンセミナーやトレーニングなどを実施していただけることを期待しています」(齋藤氏)

2015年6月にGitHub Enterpriseの国内総代理店となったマクニカは、円建て決済や日本の商慣習に合わせた請求書払いへの対応をはじめ、日本語による技術サポートを通じて、IIJ社内でのGitHub Enterpriseを活用したソーシャルコーディングの普遍化と深化を全力で支援していく方針だ。

業種から導入事例を探す

関連コンテンツ

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

webでのお問い合わせ

電話でのお問い合わせ

045-476-2010

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

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30