Ruby
Rails
GitHub
OSS

はじめてのOSSリリース記 〜なぜ無料でソースコードを公開するのか?

More than 1 year has passed since last update.

はじめに

先日、一年ほど前から運営しているWebサービスのコードをGitHub上で公開(いわゆるOSS化)しました。
※サービス自体は公式ホスティングサービスという位置付けで運営を継続しています。

小さなライブラリをOSSとして公開することはあっても、運営中のサービスを丸々OSS化するケースは割と珍しいかと思い、今回OSS化するに至った経緯とその狙いについてまとめてみました。

サービスについて

本題に入る前に、簡単に対象のサービスについて触れておきます。

Chibineko (https://chibineko.jp)

「世界で最もシンプルなテスト支援ツール」をコンセプトに、マニュアルテストの管理に特化した軽量なテストツールです。
Markdownライクにテストケースを書けるのが特徴で、リリース前テストなど100項目程度の簡単なテストをサクッと書いて、サクッと実行するのに向いています。

トップ画面

screenshot_top.png

テスト実行画面

screenshot_execute_test.png

テスト作成画面

screenshot_create_test.png

サービスの生い立ち

Chibinekoは2015年2月に一般公開してから長らくβ版として運営してきました。
その後、少しずつ機能追加を重ね、「マニュアルテストの管理」というニッチなサービスの割に多くのユーザーを獲得することができました。

そして2016年3月、UIの刷新やチーム機能の追加などの大幅リニューアルを機に正式版へと移行し、現在に至ります。OSS化したのもこのタイミングです。

※サービス誕生の経緯については下記が詳しいので、興味のある方はあわせてご参照ください。
ノンプログラマーが3ヶ月でWebアプリケーションを作ってみた

OSS(オープンソース・ソフトウェア)とは

OSSとは、簡単にいうとWebサービスやライブラリ等のソースコードを無料で公開し、誰でも自由に改良したり自分のソースコードに組み込んで使用することが許可されたソフトウェアのことです。

身近なところでは LinuxAndroid、Firefox、Redmine などが有名ですね。
最近ではGoogleが自社のサービスでも使用している人工知能エンジン TensorFlow をOSS化して大きな話題になりました。
またつい先日も、スタジオジブリなどで使われている Toonz というアニメーション制作ソフトがドワンゴによってOSS化されると発表されるなど、ここ数年世界中の企業が競うようにOSSを公開しています。

OSSとして公開するということ

OSSとして公開するということは、誰でも無料でそのソフトウェアの「全て」を手に入れることができるということです。

正確には、著作者が定めた「ライセンスの範囲内」でということになるのですが、OSSとして公開する場合、一般的には極めて制限の緩いライセンス(MITやApache Licenseなど)を選択するケースが多い(※)ので、基本的には自社の製品に組み込んで販売しようが、他人が作ったOSSを利用してサービスを立ち上げようが自由です。

それは裏を返せば、ひとたびOSS化するといくら著作権を持った開発者といえどもソフトウェア自体で直接収益をあげる事は難しくなるということでもあります。
にも関わらず、なぜ先進的な企業は率先して自社で開発したソフトウェアをOSSとして公開するのでしょうか。

※ OSSライセンスのトレンド
Open Source Software Licensing Trends
OSSライセンスの採用傾向に「変化」あり

OSSのビジネスモデル

少し古い論文ではありますが、オープンソースソフトウェアのビジネスモデルの研究(2012年発行)によると、OSSのビジネスモデルは大きく「寄生モデル」「共生モデル」「一体化モデル」の3つに分類されるそうです。

「寄生モデル」とは、OSS自体を販売や開発するのではなく,OSSを利用したいと言った顧客にOSSを導入する支援を行ったり,要員の教育を代行したり開発したシステムの保守を行うことを業務とするビジネスである。

「共生モデル」とは自社のビジネスにOSSを本質的に取り込み,差別化を図り戦略的優位性を獲得しようとするモデルである。Netscapeが自社のブラウザをOSSとして公開し,Microsoft社の製品に対抗しようとした動きや,IBMをはじめとする電機各社がLinuxをサーバ機のオペレーティングシステムに採用したことを指している。

「一体化モデル」は,小規模なアプリケーションに限られるようだが,ある業界に特化したアプリケーションをOSSとして公開し,業界の標準的な業務システム,プラットフォームとしての地位を狙うモデルとしている。

例えば、Googleの Android はOSを無料で公開することでスマホ市場を支配しようとしていることから「一体化モデル」の一種と言えますね。
一説によるとGoogleは、Androidで3兆6000億円以上の収益を上げているとも言われています。

なぜChibinekoをOSS化したのか

ChibinekoのOSS化にも一応いくつかの狙いがあります。
サービス視点、事業視点、エンジニア視点のそれぞれの視点から、今回ChibinekoをOSS化した理由についてお話ししたいと思います。

サービス視点

「ファンを巻き込んで成長を加速させたい」

言うまでもないですが、開発者としては自分で作ったサービスをできるだけ多くの人に使ってもらいたいものです。
そのためには、より魅力的なサービスになるよう日々継続して成長させていく必要があります。

それを考えると、このまま1人で開発を続けているよりも早い段階でOSS化してプロジェクトに賛同してくれる開発者を広く募った方が、今後のChibinekoの成長のために良いのではと考えました。

OSS化することで正直どこまで反響があるかは分かりませんが、これによってサービスの成長が加速するのはもちろんのこと、今までにない斬新なアイディアが生まれてChibinekoが自分も予想していないような成長を遂げることになったとしたら、それはそれで楽しいかなと思っています。

「リスク回避と親心」

Chibinekoは誕生からこれまで、ずっと1人で開発、運用してきたサービスです。
当初は業務外で始めたプロジェクトですが、現在は会社に正式に活動を認めてもらえているので、運用にかかる費用は会社の経費ですし、開発作業自体も業務の中で行うことが許されています。

しかし、いつまでもこのような状況が続くとは限りません。
例えば将来、自分が今の会社を離れることになったとして、はたしてこのプロジェクトは継続されるでしょうか。
おそらく一定数のユーザーがいる限りサービスとしては継続するかと思いますが、機能の追加等はされず「ちびねこ」の成長はそこで止まってしまうことでしょう。

その点、OSSであればソースコードが公開されているので、会社という枠を超えてこの先もプロジェクトに関わり続けることができます。
自分で生み出したモノは最後まで責任を持って育てたいという親心ですね。

またユーザー視点で見ても、将来何らかの事情でサービスがクローズすることになった場合、自分でChibinekoを構築すればそのまま使い続けることができるので、そういった意味でもOSSというのはユーザーがサービスを使うで大きな安心材料となるはずです。

事業視点

「マーケティングに徹する」

このChibinekoですが、現時点ではあまりマネタイズを考えていません。(リリース当初からずっと無料で提供しています)
そしてOSS化によって、よりマネタイズをすることが難しくなりました。

しかしボランティアかというと決してそうではなくて、Chibinekoは会社の「マーケティングツール」という位置付けで考えています。
具体的には、Chibinekoユーザーが増えることで「SHIFT」という会社を知る機会が増え、間接的にでも本業(ソフトウェアテストの請負)の仕事が増えることを期待しています。

とくに海外展開という意味では、GitHubでソースコードを公開することは全世界に発信するということなので、自社が現在力を入れている海外戦略にも何らかの良い影響を与えることができればと思っています。
OSS化することで開発が加速し、よりサービスが魅力的なものになり、ファンが増え・・・と良い循環が生まれれば嬉しく思います。

エンジニア視点

「新しいことにチャレンジしたい」

今回のOSS化は自分にとって新たなチャレンジです。
正直色々と不安はありますが、それ以上にOSS化した後の変化を想像すると、とてもワクワクするんです。

この「変化」とは、もちろんサービスの成長という意味でもありますが、それ以上に自分自身の成長という意味でとても大きな経験となるような予感がしています。
「OSSコミュニティ」という開かれた場で世界中のエンジニアと接することで、スキルアップはもちろんのこと、自身の視野が広がりエンジニアとして新たな道が開けるのではないか。
今よりもっと成長したい、そんな思いが今回のOSS化の大きな原動力になっています。

まとめ

ということで、はじめてのOSSリリースについて書いてみました。
この記事を読んだ方がOSSに興味を持ち、「自分も何かGitHubで公開してみようかな」と思うきっかけになれば幸いです。
「ちびねこプロジェクト」に参加してくれるエンジニアもお待ちしています。
みんなでOSSコミュニティを盛り上げていきましょう!