開発もオープンじゃなきゃダメなんじゃない?
またすこし間が開いてしまいましたね。
急にプロジェクトが始まったりして、ぜんぜんブログにさける時間が捻出できないすぎもとです(基本的に時間の使い方が下手なのです)
いま、弊社は自社開発のプロダクトを2つ手がけてまして、両方をオープンソースでリリースしようと考えています。で、こういういち企業が主体となっているオープンソース製品って企業向けのものだとけっこう普通ですよね。で、いろいろ調べていて思ったのは、オープンソースだと銘打っているがリポジトリが公開されていないプロダクトがけっこうあるなーと思ったんですよね。ソースコードファイルを圧縮ファイルで固めてただ置いてあるだけだったりします。
単に単語だけ見ればソースがオープンであれば、オープンソースでいいような気がしますが……いや、もっと厳密にみてみましょう。本家はOSI(Open Source Initiative)による定義ですね。
翻訳がWikipediaにありましたのでそちらを参照します。
- 自由な再頒布ができること
- ソースコードを入手できること
- 派生物が存在でき、派生物に同じライセンスを適用できること
- 差分情報の配布を認める場合には、同一性の保持を要求してもかまわない
- 個人やグループを差別しないこと
- 適用領域に基づいた差別をしないこと
- 再配布において追加ライセンスを必要としないこと
- 特定製品に依存しないこと
- 同じ媒体で配布される他のソフトウェアを制限しないこと
- 技術的な中立を保っていること
これをみても、ほとんどのプロダクトはちゃんとオープンソースといえそうです。ソースコードファイルを圧縮ファイルで固めてただ置いてあってもぜんぜん問題ないです。
うーん……ただ、やはり開発者としてはソースコードが置いてあるだけだと、少しひっかかるものがあるんですよね。「開発がオープンじゃ無いなぁ」って思うのです。Githubをはじめ、外部開発者からの貢献について、やりとりがしやすい環境がかなり整ってきている今の状況に置いて、あえてソースコードファイルを圧縮ファイルで固めてただ置いてあるのだけを見ると、「ああ、これは外部開発者からの貢献は余り必要としてないのかな」って思っちゃうんですよね(もちろん、ソースコードがファイルで置いてあるからといって外部開発者が貢献できないというわけでもないでしょう。でも、バグや改善を手もとで行った際に、開発者がDiffとってパッチを送ってみて、ほんとうに喜ばれたりするんでしょうか? うーん、あまり開かれている印象がありませんね)
いち企業が主体になっている以上、すべての開発行動を明らかにする必要があるのか、というのは確かにそうです。リリースバージョンのソースコードのみをオープンにしつつ、開発を戦略的に行っていく上でクローズドにしておく必要がある、というケースが多々あるというのはもちろん理解できます。でも、リリースバージョンのソースコードのみをオープンにするケースだって、Githubは使えますよね。リリースブランチだけ外に見えるように置いておけば良いんですもんね。なので、それをもってソースコードを固めておくことにはあまりいい印象がありません。ソースコードをオープンにするのであれば、ぜひリポジトリも何らかの形でオープンになっていてほしいな、というのが開発者としての素直な感想なのでした。
実はいま開発している弊社のプロダクトもしばらくオープンになっていませんでした。単に作業上の問題もあったんですが、それを回避して公開しようとしたときにメインの開発者から「汚いコードとか試行錯誤が見えてしまうのに少し抵抗が……」といわれたりしました。そのとき、「そういうのも見せちゃっていいんじゃない? 強い気持ちでオープンにしよう」ということを彼に伝えたんですよね。そんなこんなで、現在はまだ正式リリース前ですが、ソースはもうオープンになっています。彼はたいへん優秀な技術者なのでそもそも見せたっていいわけですが、優秀な技術者じゃなくたってソースコードはどんどん外に出て良いと思っています。
まあ、実際、リリース前のコードだけあってもしかたなくて、ただの自己満足かもしれません。でもこれは姿勢の問題でもあるかなとおもってそうしています……ってやっぱり自己満足かもしれませんね。でも、それがオープンソースがめざす世界なんじゃないかなーとか、脳天気に思っています。いや脳天気ですいません。まあこのへんは、弊社の全体の方針と言うよりは、ぼくの勝手な考えではあるのですが、製品の責任者として任されてるのでこのへんは脳天気に進んでいこうと思ってます。
そんなわけで弊社のOSSプロダクトのソースコードは以下のふたつです。
(すみません、URLがまだメンバーの個人スペースになってしまっているため、変わると思います)
6月最初の週のリリースに向け、プロダクトの説明とかを整えているところで、なかなかできてないのですが、OSSコンソーシアムのBA部会でお時間をいただき、6/18にハンズオン形式で内容をご紹介するワークショップを予定してます(申し込みはリンク先からどうぞ!)
宣伝かよ!(はい宣伝です)