OSS準備室長を務めていた ymmt (@ymmt2005) です。 過去形なのは、OSS準備室は 7 月末で解散したためです。
OSS準備室では、サイボウズ社員がオープンソースソフトウェアに関する活動を行いやすくすることを主な目的として、会社の基本方針を「OSSポリシー」という文書にまとめる作業を行いました。
完成したOSSポリシーはCC0 (いかなる権利も保有しない、いわゆるパブリックドメイン)で広く他の企業の方々にも活用いただけるよう以下で公開しました。本記事ではその内容と、サイボウズにおけるオープンソース活動のこれまでとこれからを紹介いたします。
オープンソースについて
オープンソースソフトウェア(Open Source Software, OSS)とは、オープンソースの定義に基くライセンスで利用可能なソフトウェアのことです。オープンソースの定義(The Open Source Definition, OSD)は http://www.opensource.jp/osd/osd-japanese.html にて和訳が公開されています。短いものですのでぜひ一度目を通していただければと思います。
OSSの利用に際して大事なことは、問題が発生しても作者が解決してくれる保証はないということです。不具合や脆弱性は、基本的に利用者自身が解決する必要があります。有償でのサポートを提供している会社もあります。
OSSポリシー策定前の状況
昨今のソフトウェア開発でOSSを利用しないことはほとんどないと思います。当社ももちろん例外ではなく、kintone や cybozu.com のインフラでは数えきれないほどのOSSを活用しています。
利用に際して当然不具合をみつけたり自前で修正するということも良くあるのですが、会社としてこうしましょうという方針はなかったため、たとえば開発元に報告するといったことは各自の判断でされたりされなかったりしていました。
具体的に、当時のOSSに関する社内規程は以下二つしかありませんでした。
- OSSの利用前にライセンスを確認する(そしてライセンス条件に従う)
- 自社製のOSSを公開する際は所属部署の部長の許可を得る
そんななかでも、多くはありませんが以下のような活動をしていました。
OSS準備室について
OSSがここまで発展してきたのは、多くの人が様々な形でその開発に貢献してきたからに他なりません。 私達も多くのOSSを利用するにとどまらず、OSSの発展により寄与する存在でありたいと思います。
そこで社員のオープンソース活動を支援し、また貢献を促すようなOSSポリシーの策定を目的として、昨年12月に「OSS準備室」を設立しました。法務を含め、OSSに関係する各部門の代表者からなる部署横断の組織です。当時運用本部長だった私が起案し、責任者を務めました。
以下の成果をあげたのちに、後継組織である「OSS推進室(英語名称:Open Source Program Office, OSPO)」に業務を引き継いで 2018 年 7 月末を持って解散しました。
- OSSポリシーを策定し、全社規程として起案(承認済み)
- OSSポリシーを補完する細則にあたる「OSSガイドライン」の整備
- 職務著作となる条件を大幅に制限(あとで解説します)
- 他社の貢献者ライセンス同意書(CLA)の調査
- 経営陣並びに社員向けにOSSポリシーとガイドラインの説明会を実施
- OSSに関する専門組織「OSS推進室」を後継組織として起案
OSSポリシーの策定にあたっては、以下を参考にさせていただきました。
- Google Open Source docs
- オープンソースビジネスに取り組む SI 企業のための企業ポリシー策定ガイドライン
- オープンソースソフトウェアポリシーをつくろう - クックパッド開発者ブログ
OSSポリシーの内容解説
公開しているOSSポリシーは、全社規程であるため取り扱う範囲を著作権、特許、商標のライセンスに限定しています。OSSに関する業務はライセンス関係以外に多々ありますが、それらは細則にあたる「OSSガイドライン」で取り扱っています。
前文
ポリシーを定める背景と目的を書いています。短いのでそのまま転記してしまいます。
本規程の第一の目的は、当社ならびに当社従業員が OSS 関連活動を過大な負担なく行えるよう支援することである。 そのために、当社、当社従業員または他者の著作権、特許権および商標権に関する事項を定める。
本規程の第二の目的は、当社がオープンソースコミュニティにおける良き一員であるために必要な規定を定めることである。 そのために、ライセンス違反への対応方針ならびに社員が発見した他者 OSS の不具合を報告する努力義務を定める。
注目いただきたいのは「社員が発見した他者 OSS の不具合を報告する努力義務」です。 サイボウズで働く社員は、利用しているOSSの不具合を発見したら開発元に報告するよう努めねばなりません。
著作権の帰属
会社の業務で作成した著作物は会社が著作者になります。正確には著作権法の職務著作の要件に該当する場合に限られますが、当社では入社時に以下のような誓約書に同意してもらっていました。
私がサイボウズでの業務遂行上、著作物を作成したときは、サイボウズの法人著作となる場合を除き、その著作権(著作権法第27条、第28条に規定する権利を含む)を別段の意思表示を要することなく、創作時にサイボウズに帰属させます。また、著作者人格権をサイボウズならびにいかなる第三者に対しても行使いたしません。
この規程そのままですと、例えば業務中に編集した .emacs
や .vimrc
が会社のものということになってしまいます。また当社は働く時間も場所も非常に柔軟ですので一日のうちいつ業務をしているかが人によりばらばらで判断しづらい事情があります。
そこでOSS準備室で議論し、誓約書の内容を無効化し、会社に帰属する職務著作に該当する条件を以下のように絞りこむこととしました。
2.1. 当社の著作物 以下のいずれかに該当するものについては、その著作権が当社に帰属するものとする。
当社の極秘情報を含むもの
上長の明示的な指示または承認のもと作成されたもの
この規程により、「業務時間中であっても指示なく自発的に作ったソフトウェアは個人のもの」となります。
先述の .emacs
はもちろん、自発的に書いたOSSのパッチも個人の著作物となるので、会社のルールに縛られません。
次に 2.2.2 の規程:
従業員が自己の所有する OSS プロダクトに対して自己が業務で作成した著作物を取り込む場合は、前項に定める手続きをしなくとも、当社から当該従業員に対し著作権が譲渡されたものとみなす。
これは個人で開発したOSSを業務で利用していて、業務中に必要な機能を追加することを想定した規程です。
指示された業務中に開発しているので会社の著作物が個人のOSSに混ざることになるわけですが、OSSであれば会社の著作物にしなくても誰でも利用できるわけですから、手続き不要で従業員に譲渡をしてしまおうというわけです。
従業員個人の著作物のオープンソース化および当社商標の使用
社員が自発的に当社製品に関する OSS を開発することがあります。
その際「kintone」や「サイボウズ」といった当社の商標を利用することが想定されるため、無用なトラブルを招かないよう注意する点を定めています。
当社著作物のオープンソース化
当社が管理する場所(github.com/cybozu 等)であれば、自由に作ったOSSを公開していいルールとしました。従来は所属部長の許可が必要だったのですが、まだ一行もコードを書く前に形式的に申請をするケースが多かったので、社員の良識を信じて承認不要としました。
利用しているOSSにパッチを送る場合、最近は貢献者ライセンス同意書(CLA)への署名を求めるところが多くあります。CLAは多くの場合英語の法律文書ですので、主要な CLA をあらかじめ法務にて分析し、「署名可能 CLA 一覧」を作成することにしました。
署名可能 CLA 一覧にある CLA であれば、従業員は自分の判断で署名が可能です。多くの場合上長の同意も求められるのですが、個々の開発者が自分の判断で上長欄に署名して良いのです。
他者 OSS の利用
他者の OSS を利用する場合、ライセンスを確認して使用条件に従うことを書いてあります。
また前文で触れたように、利用している OSS の不具合を発見した場合は開発元に報告する努力義務を定めています。
当社 OSS への他者著作物の取り込み
当社が所有する OSS に他者の著作物を取り込むルールを記載しています。
6.1 は当社の CLA への同意としていますが、まだ CLA は準備中であるため運用していない規程です。
6.2 ではパッチをいただいた開発者への謝意をこめて、CONTRIBUTORS
等のドキュメントに明記することを定めています。
ライセンス違反への対応
当社のOSSのライセンスに違反する利用を発見しても、60日以内なら訴えませんよとしています。
逆に当社内で違反があった場合、速やかに報告・是正することとしています。
OSSガイドラインの内容
OSSポリシーは全社規程ですので、具体的なことは書かれていません。 そのままでは社員が困ってしまいますので、詳細は「OSSガイドライン」にまとめています。
以下のような内容で構成されています。
- 著作権や特許の基本
- OSSライセンスの種類と使い分け
- OSSにおける英語の使いかた
- 署名可能 CLA 一覧
- GitHub のリポジトリ管理
社内の事情が書かれているためすぐに公開はできないのですが、広く有用な部分はいずれ公開できると良いなと考えています。
OSS推進室(OSPO)について
OSS準備室の後継組織として常設の「OSS推進室 (OSPO)」を設置しました。 Open Source Program Office は Google や Microsoft も設置している、OSS活動に関する専門機関です。
詳しい説明は opensource.com の解説記事や Linux Foundation の記事にあります。Google の OSPO は先述のように OSS 活動全般の方針をドキュメントで公開してくれています。Microsoft は github.com の管理などに利用できる、OSPO のためのツールを公開しています。
サイボウズの OSPO ではポリシーとガイドラインのメンテナンスに加え、社外のOSS組織への支援などに取り組んでいく予定です。
まとめと謝辞
OSSポリシーの策定にあたっては相当な期間と手間が必要でした。 当社と同じく、これからOSSポリシーを定めていかれる方が参考にしていただけるように、策定したOSSポリシーの全文を CC0 ライセンスで公開しています。ご活用いただければ幸いです。
また、ご覧いただきました通り当社は社員のオープンソース活動を公私にわたり支援しています。 OSSに理解のある企業をお探しの技術者の方は、是非当社も候補に入れていただければと思います。
末尾となりますが、OSSポリシーの策定にあたっては、奥一穂氏(@kazuho)ならびに当社技術顧問の小崎資広氏(@kosaki55tea)にご協力をいただきました。ここに感謝の意を表します。