オープンソースソフトウェアポリシーをつくろう

こんにちは、みんなのウェディング 高井です。

みんなのウェディングやクックパッドといったインターネットサービス企業では、オープンソースソフトウェアは欠かすことのできない存在です。LinuxやMySQL、Ruby、Railsといった主要なものをはじめとして、テクノロジースタックのほとんどがオープンソースソフトウェアによって構成されいるといっても過言ではありません。

ですから、企業としてどのようにオープンソースソフトウェアに向きあうかということが、とても重要な問題になります。そして、そのための指針が、オープンソースソフトウェアポリシーです。

今回は、クックパッドがどのようにオープンソースソフトウェアポリシーをつくったか、その背景も含めてをご紹介いたします。

クックパッドとオープンソース

今でこそクックパッドは、多くのオープンソースソフトウェアを公開したり、その開発に貢献したりする会社となっています。しかし、私が入社した5年前には、会社として公開しているオープンソースはひとつもありませんでした。入社したばかりのときに「ちょっとしたライブラリをオープンソースとして公開したい」と当時のCTOである橋本に相談したときに、なぜそのようなことをするのか説明を求められて驚いた記憶があります。個人の活動としてオープンソースを公開している社員はいたのですが、企業の活動としてオープンソースソフトウェアに取り組む文化はありませんでした。

そこで、私はオープンソースソフトウェアポリシーの素案をつくり、会社に提案をしました。その素案はいくつかのフィードバックをもとに修正されたのち、正式に承認されたものになっています。

また、みんなのウェディングで仕事をするようになって、まず最初にやったのがオープンソースソフトウェアポリシーを策定することでした。その結果、みんなのウェディングでもオープンソースソフトウェアを公開したり、その活動をブログで紹介したりする成果につながっています。

なぜオープンソースソフトウェアが重要か

そもそも、なぜ企業としてオープンソースソフトウェアにコミットしなければならないのでしょうか。

第一に、私たちのようなインターネットサービス企業ではその技術基盤の大部分をオープンソースに依存しているという現実があります。かつて、企業の技術基盤は、大手ベンダーが開発するプロプライエタリ・ソフトウェアが中心となっていました。ごく初期のインターネット企業にとって、サン・マイクロシステムズのSolarisやオラクルのOracle Databaseは間違いのない選択肢でした。また、初期のクックパッドが、ColdFusionで開発されていたというのは有名な話です。そのような時代には、企業はベンダーのロードマップに従っていれば何の問題もありませんでした。

ところが、その状況が変化していきます。エリック・レイモンドが「伽藍とバザール」で示したようなバザール式の開発モデルが一般的となり、それが優れたモデルとして受け入れられていきました。バザールプロジェクトでは、その開発に誰もが自由に参加することができます。だからこそ、自分たちが利用しているプロダクトの継続的な進化や発展のために、そのプロジェクトにコミットしてくことが重要になってきたのです。

第二に、人材採用面でのメリットです。オープンソースプロジェクトには、技術力の高いエンジニアが多く参加しています。会社がオープンソースコミュニティの一員になることでそうした人材を獲得するチャンスが増えます。

また、それが企業内にオープンソースプロジェクトでデファクト・スタンダードになっている開発スタイルを取り入れ、健全な開発者文化をつくり上げる基礎となります。オープンでフラットな意思決定、具体性がない議論よりも動くコード、そういったものをエンジニアは好みます。

職務著作とオープンソース

企業にオープンソースソフトウェアへのコミットメントをしていくとしたら、整理しなければならないことのひとつに、著作権があります。著作権法では、仕事で作成するプログラムについて、次のように定められています。

第十五条

2  法人等の発意に基づきその法人等の業務に従事する者が職務上作成するプログラムの著作物の著作者は、その作成の時における契約、勤務規則その他に別段の定めがない限り、その法人等とする。

つまり、仕事でプログラムを作成したときには、原則として著作権は会社に所属することになります。もし、あるエンジニアが会社で利用しているオープンソースソフトウェアにバグを発見して、就業時間中にその修正パッチを作成したとします。そのパッチの著作権は会社に所属することになりますので、そのエンジニアの判断で勝手に公開してしまうと、著作権上問題のある行為となってしまいます。

ですから、企業としてオープンソースソフトウェアへの貢献していくためには、著作権の扱いをどうするか整理をする必要があります。そのための仕組みがオープンソースソフトウェアポリシーです。

オープンソースソフトウェアポリシーがなくても、暗黙的にうまくやっているという会社もあるでしょう。しかし、著作権の問題を考えるとあまり良いやり方であるとは思えません。オープンソースソフトウェアポリシーは、そこで働く開発者の行動を制限するものではなく、守るためのものです。

オープンソースソフトウェアポリシーのつくり方

では、オープンソースソフトウェアポリシーをつくりたいときに、どのようにすればいいでしょうか。

クックパッドのオープンソースソフトウェアポリシーは、一般社団法人情報サービス産業協会(JISA)がまとめた「オープンソースビジネスに取り組むSI企業のための企業ポリシー策定ガイドライン」を参考につくられました。「SI企業のための」となっていますが、オープンソースソフトウェアポリシーを策定するにあたって検討すべき項目が網羅されていますので、たいへん参考になります。

そのうえで、自分たちの実現したいことをきちんと議論し、その議論を反映させたものにすることも大切です。テンプレートのようなものがあったとしても、それを持ってくるだけでは自分たちの会社の理念に沿ったものにはなりません。ポリシーなのですから、それを自分たちの言葉で説明できなくては、価値あるものとして機能しないでしょう。

まとめ

クックパッドでは、ポリシーを定めることで、従業員が自由にオープンソースソフトウェアに貢献することのできる土壌をつくっています。また、そのことが優秀な人材を獲得し、健全な開発者文化を醸成することに貢献してきました。

最後に宣伝となりますが、みんなのウェディングはソフトウェアエンジニアを募集中です。「みんなの『大切な日』をふやす」を経営理念にユーザーファーストなサービスづくりを徹底的にやっていきたいと考えている会社です。ご興味のある方は、 株式会社みんなのウェディング採用情報からご応募ください。また、みんなのウェディングのブログもあります。こちらではエンジニアリングに関する話題をあつかっていますので、あわせてご覧ください。

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/