(Photo by: Dave Fayram)
このような方におススメ
- オープンソースの開発プロセスに興味がある。
- 開発プロセスの標準化・明文化に関心がある。
都内で開催されたAmazonクラウドのイベント「AWS Summit Tokyo 2015」での基調講演であった「オープンソースへの貢献プロセスはGitHubで標準化した(URL:http://www.publickey1.jp/blog/15/githubaws_summit_tokyo_2015.html)
」がネット上で話題になりました。
GitHubという特定企業のサービスで標準化されたという話は乱暴じゃないかという意見がある一方、オープンソースプロジェクトの管理をGitHubで行うメリットは広く知られています。
オープンソースプラットフォームは、SourceForgeからGoogleCode。そしてGitHubと変遷を辿り、主流となるバージョン管理システムはCSVからSubversion。そしてGitと変わってきました。GoogleCodeのサービス終了がアナウンスされてからは、GoogleCodeからGitHubへの以降が順次進んでいます。
本記事では過去のオープンソース開発プロセスについて取り上げた論文とホスティング環境を振り返りながらGitHubへと繋がった道を再確認してきます。
(Photo by:Ryo FUKAsawa)
伽藍とバザール
すっかりバザール方式と言う言葉を聞く事もなくなりましたが、オープンソースを成功させる重要な要因となる「独自性を尊重」と「個人中心」を事例交えて説明した論文です。会社組織のように縦割りで重厚な命令系統よりも、シンプルな横の繋がりで興味がある同士で進めるマネジメントの方がソフトウェア開発には向いており、オープンソースプロジェクトでは結果が出ているとして「小さくて強い組織の重要性」が生産性に貢献する点が協調されています。
伽藍とバザールURL
http://cruel.org/freeware/cathedral.html
アジャイル開発やここ数年で流行したDevOpsの特徴も含まれており、GitHubにはここで説明されている趣旨を円滑に実現するための機能が含まれている事を考えると、オープンソース開発の真理が垣間見える今読んでも参考になる論文です。
魔法のおなべ
ノーベル経済学賞を受賞し、つい先日交通事故で亡くなったジョン・ナッシュ氏の「ゲーム理論」をオープンソースの開発に適用した分析を行った論文です。クローズドなプロダクトをオープンソースにするメリットをビジネスの戦略としてどう判断できるか?について説明されています。
魔法のおなべURL
http://cruel.org/freeware/magicpot.html
オープンソースの寿命について述べる中で「オープンソース・ソフトは広く使われることで、その価値を高める」として利用者からパッチ・情報の提供を「放牧すればするほど草が増える」と例えています。
プロジェクトホスティングで求められる最も重要な目的の1つはバイナリの配布でした。そこにWikiや文書の共有、リクエスト・イシューの送信、ソースコードのオープン化、ソースコードへのパッチ送付、プロジェクトへの応援とファンを付ける仕組み、と機能が増えて行きました。このように利用者がプロジェクトに参加できるようになったことで「消耗して行くだけの牧草地」に開発者と利用者の相互関係が生じて「新しい草が生える牧草地」へ変わって行きます。
SourceForgeとCSV
(Photo by:trophygeek)
2000年頃、バージョン管理システムの主流はCSVでした。バージョン管理を知らないし必要ないという意見も多かった時代でCSVサーバーを自分たちで準備して利用するのが当たり前でした。1つの会社組織に集まっている訳ではないフリーウェア/オープンソース開発者たちが必要としていた「ソースコードの管理」と「バイナリ配布」がSourceForgeを使うと出来るため人気が集まりました。プラットフォームとして開発者同士が協調してソフトウェア開発を行うための機能が備わっており、SourceForge内でプロジェクトが人気になるとランキングに表示される機能に魅力がありました。
GoogleCodeとSubversion
2005年を過ぎたあたりに、当時主流になりつつあったSubversionをサポートしたプロジェクトホスティングとしてGoogleCodeが人気になりました。当時革新的なウェブサービスを多数発表していたGoogleが出したサービスですので一躍脚光を浴びて多くのプロジェクトで利用されるようになりました。GoogleCodeには機能が多い訳ではありませんが、Googleの他サービスを使う事で必要機能を補いながらオープンソース開発を行えました。利用者にとってUIが分かり易いサービスでした。
GitHubとGit
今現在プロジェクトホスティング最大手となったGitHubです、特徴はなんといってもGitを利用できる事でした。Subversionへのアンチテーゼを含めて開発されたGitと、SNS機能を備えており開発者とプロジェクトの関係が分かり易く整理され、利用者がプロジェクトの動向と情報を追いかける事ができます。開発者、プロジェクト、利用者の3点が相互作用しコミュニケーションを取り易いように設計されています。
Gitのソースコードホスティングを主体としてオープンソース開発者が必要とする機能を次々にリリースし、今までSourceForge、GoogleCode、他サービス、独自管理されていたオープンソースがGitHubに集中しつつあります。
(Photo by:Luke Anderson)
今まで企業向け機能を分けて提供されているサービスが多かった中で、同じサービス内で有料と無料の両方を利用できるようになっています。そのため個人と法人でソフトウェア開発のやり取りに辺り、共通のルールで開発を行う事ができるため個人と法人の垣根が今までの同種サービスと比べると小さくなったのが特徴です。
まとめ
バージョン管理ツールやプロジェクトホスティングの進化によって、考え方として述べられていたオープンソース開発モデルが標準化とまでは行きませんが、理解しやすいプロセスモデルに具現化されつつあります。
冒頭に挙げた論文の伽藍とバザールでは、個人ベースで行われる「バザール方式のオープンソース開発」と企業ベースで行われる「伽藍方式の商用ソフトウェア開発」に大きな隔たりがあり、この2つを混ぜると失敗するとされてきました。
それがSourceForgeとCSV、GoogleCodeとSubversionと経て、GitHubとGitに至り、企業も個人とで共通のソフトウェア開発プロセスを適用させられる環境が構築されつつあります。
本記事では取り上げませんでしたが、ノウアスフィアの開墾(URL:http://cruel.org/freeware/noosphere.html)で述べられているオープンソース開発者のメンタルモデル、魔法のおなべで説明されたオープンソースのビジネスモデルも同じように埋まらない溝としてオープンソースと企業ソフトウェアの間に存在していました。これもオープンソース開発モデルが企業ソフトウェアのビジネスでも一部適用されつつあり、存在している溝が少しだけ小さくなりました。
今までSourceForgeとGoogleCodeが辿ったように、次の時代に合ったサービスが登場するとGitHubから徐々に移行が始まります。その時に重要視されるのはバージョン管理システムなのかコミュニケーション機能なのか不明ですが、オープンソース開発者たちと利用者の関係に付加価値が生まれ「消耗されるだけの牧草地」だったソフトウェア開発が昔のものになったように、ソフトウェア開発者とその利用者がより利益を得られる新しい付加価値の登場が今から楽しみです。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments