一般企業におけるデジタル変革を支えるソフトウェア開発体制はどうあるべきか。これに関連するキーワードの一つとして、一部で注目されてきたのが「Inner Source」、あるいは「Inner Sourcing」。概略としては分かりやすいものの、具体的に何をやればいいのかということになると、分かりにくい側面がある。
創業140年という老舗であり、世界で3万8000人の従業員を雇用する米製薬会社、Eli Lilly(イーライリリー)は試行錯誤の末、同社にとってのInner Sourceの解を見いだしたという。ここでは、同社のITテクニカルアナリスト、ニック・リッフェン(Nick Liffen)氏が語った内容をお届けする。なお、これはGitHubの年次イベント、「GitHub Universe 2018」における講演だが、内容は本質的にGitHubと結び付いたものではない。
Inner Sourcingとは何か。Wikipediaでは「Inner sourceとは、オープンソースソフトウェアの開発におけるベストプラクティスの利用、および組織におけるオープンソース的な文化の確立である。組織はプロプライエタリなソフトウェアを開発するかもしれないが、その開発を内部的にオープンなものとする。2000年に、ティム・オライリーが生み出した言葉」と説明されている。
要するにOSS開発コミュニティが、それぞれの所属組織や目的の違いを超え、協力して開発プロジェクトを進めていくというやり方を、単一組織内で実践するということだ。
「企業によって、『何がInner Sourcingか』についての意見は異なる。それでいいと思う。共通に聞かれるのは、『Inner Sourcingは多数の分断されたチームを持つ大企業でしか使えないもの』という考えだ。それは違う。Inner Sourcingは文化であり、10人、20人といった規模のチームにも適用できる」
Eli Lillyでは、Inner Sourcingを、「組織の壁の中に、オープンソースとコミュニティコラボレーションにおける中核的な基本原則を持ち込むことを指す。これには、組織内におけるコミュニティの構築、コラボレーティブなエンジニアリングワークフロー、そして文化が含まれる」と定義しているという。すなわち、「オープンソース」「コミュニティ」「コラボレーティブエンジニアリング」「文化」が4大要素だとリッフェン氏は話した。「コラボレーティブエンジニアリング」とは、「共同作業を支える技術的な環境整備」という意味だ。
リッフェン氏はEli Lillyの経験に基づき、「4つの要素の中で最も重要なのは、社内でカルチャーチェンジを進めることだ」と話している。
これまで.NETと従来型の開発ツールを使ってきたEli Lillyの開発者たちは、思うように自己表現ができないと感じていた。ところが2016年ごろ、リッフェン氏たちのチームがPaaSのHerokuを社内で提供し始めたところ、「開発者たちは、.NET、ColdFusion、ばらばらな開発といった従来の手法から、よりモダンなソフトウェア開発の在り方へ移行できると考え」、興奮が広がっていった。
だが実際には、.NETアプリケーションをアーキテクチャの違うHerokuにそのまま移行しようとしてもうまくいかず、モノリシックなアプリケーション構築に慣れていた開発者たちは、どうしていいか分からなかったという。
次第に慣れて、Heroku上でアプリケーションが開発されるようになってきた数カ月後、今度は当時200に上るアプリケーションの一つ一つについて、個別に認証機能が開発されていることが分かった。
そこでリッフェン氏たちの部署は、「全ての開発チームが完全に同一の機能をばらばらに開発している。なぜどこかが一度開発したものを、他のチームが利用できないのか」という疑問から、自ら認証モジュールを構築し、開発チームに提供し始めた。これがEli LillyにおけるInner Sourcingへの旅の始まりになったという。
2017年初めにはWeb認証の他に、APIゲートウェイの利用、Active Directoryグループ認証といった共通機能モジュールを社内にリリース。5つのプロジェクトでその効果を確認してみると、アプリケーション開発に要する時間は、これまでの平均45日から、平均9日に短縮していたという。
ソフトウェア開発の生産性が上がり、アプリケーション開発者たちは喜んでいた。また、社内でコードを共有する場としてリポジトリ(当時はGemQueryを使っていたという)を位置付けたことで、コードの品質およびセキュリティ面でのメリットも見いだせたという。例えば共通機能コードが使うソフトウェアにセキュリティ脆弱性が見つかれば修正を行い、アプリケーション開発チームは新バージョンを再利用すればいい。
Copyright © ITmedia, Inc. All Rights Reserved.