本文書のライセンスについて
本記事は、InnerSourceCommons.orgが提供するInnerSource Learning Pathを元に再編集したもので、CC BY-SA 4.0(表示 - 継承 4.0 国際)ライセンスに従い提供されています。
インナーソース実践に必要な「共通の課題」と「環境」
インナーソースを始めるために何が必要かを考えるにあたり、インナーソースとは何かについて振り返ってみましょう。インナーソースは、次の2つのことを企業の中で実践することです。
- 開発の状態(ソースコード、ドキュメント、議論の内容)を誰からも見える状態にする
- コントリビューションを受け入れる
これは、インナーソースの仕組みの側面に過ぎません。実際に、インナーソースを始めるには、この仕組みで取り組む題材と、この仕組みで活動できる環境が必要です。
まず、題材の視点では、「共通の課題」が一つのポイントになります。インナーソースは、企業に所属する人が誰でも参加できる仕組みですが、その必要性がなければ、どれだけ参加を促したとしても参加者を得ることは難しいでしょう。図1のように、ある人が持つ課題に対して、興味が一致する人や、詳しい人がいれば、組織が異なっていても協力してアイデアを出して解決に取り組むことで、より良い解決方法をより早く発見できる可能性があります。
次に、環境の視点では、インナーソースの活動を進めやすくするオープンな場とルールが必要になります。インナーソースを実践するための場があれば、企業内の複数のチームが一緒にソースコードを開発することができます。また、インナーソースで開発をしたり、その成果を利用したりする際の決まりごとがあれば、インナーソースにどのように関われば良いか判断できるようになります。
組織の共通の課題を見つける方法
インナーソース成功のポイントは、オープン性と透明性ですが、それだけで共通の課題を見つけるのに十分でしょうか。開発をオープンにすることで、偶然組織外の人の目にとまったり、人伝で認知されたりして活動に参加することもあるでしょう。しかし、このような偶然に頼るだけでは、十分な効果を得ることは困難です。共通の課題を持つ仲間を見つけるために、個人としては一人ひとりが主体的に行動すること、組織としては戦略的に活動をサポートすることが必要です。
インナーソースは企業の中の活動ですので、チームとしてプロジェクトを成功に導くという身近な課題から、企業の経営目標を達成するという課題まで、さまざまな共通の課題があります。そこで、身近なところは、同じ部門の別チーム、もう少し広く捉えて、同じ事業ドメインの関係者などの範囲で課題を共有することから始めるという方法があります。もし組織横断で活動することが想定され、関係者が明確なら、組織的にプロジェクトを立ち上げるという活動を行っても良いでしょう。
個人の活動では、例えば同じオープンソースソフトウェア(以降、OSS)を使っている人と繋がりを持つための社内コミュニティ活動をするという方法もあります。もし同じOSSを使っている人が分かれば、インナーソースの仕組みを用いて企業内で議論や開発を行い、OSSコミュニティに一緒にコントリビューションするという道がひらけます。
実は、筆者もインナーソースを知る前に共通の課題を解決する活動を始めたのは、OSSのLinuxがキッカケでした。当時、組み込みシステムでLinuxの活用が広がり、社内でも複数の部門がLinux採用を検討していました。社外のOSSコミュニティに社内事情を直接伝えることは難しくても、社内であれば議論ができるため、同じソースコードをベースにして不具合の修正を行ったり、機能追加したりするなどの議論が進んだことがあります。
さらに、こうした活動をキッカケとして、社内で修正したコードをOSSコミュニティにコントリビューションしたり、社内のソースコードの一部をOSSとして公開したりすることにも繋がりました。今では、複数の企業と一緒に、産業向けにOSSを活用する際の共通課題の解決に向けた活動になっています。
次に、課題を見つけるタイミングについて考えてみましょう。新しくプロジェクトを始める時、要件定義を行う時、最初のリリース時、メンテナンスやリファクタリングを行う時など、さまざまなタイミングが考えられます。
もし、可能であれば、共通の課題か判断できるか否かによらず、早期に活動をオープンにし、できるだけ多くの人に発見してもらえるチャネルを用いて聞いてみることをおすすめします。課題を抱えている組織や本人が共通の課題になりえないと思っていても、思いもよらないところからの協力が得られるかもしれません。インナーソースの成功のポイントは、オープン性と透明性が確保されていることです。