読者です 読者をやめる 読者になる 読者になる

SEゼミをやったら♥OSSになった

学生向けに勉強会や開発イベントを開催していたら、♥OSSになった人がやったことや思ったことなどを書くことにしました

伽藍とバザールを読んで,まつもとゆきひろ:ネットを支えるオープンソース〜ソフトウェアの進化 という講演に行ってきた

OSS

f:id:sezemi:20150420174604j:plain

前回のエントリーの通り,OSSに関する開発イベントや勉強会を行うにあたり,伽藍とバザールを読んで,その背景となる文化を感じようと思い,その集大成として,

まつもとゆきひろ:ネットを支えるオープンソース〜ソフトウェアの進化 | Peatix

という講演に参加してきました.
# ハッカーと画家 も読んだのですが,同様に刺激的で,Lispサイコーという話が半分でした.Y combinatorの話とはまた違って,趣がありました(ここでは触れません)

 

伽藍とバザール

伽藍とバザール*は,一部のエリートプログラマ達がクローズドに作る,いわゆる伽藍方式の方が,品質が良いソフトが出来るとされていたところに,すべてオープンにして世界中のプログラマがよってたかって開発するバザール方式で開発したLinuxが大成功し,それが何故できたのか,探求していくというお話で,後半はそのOSS開発コミュニティをどう作るのか,というお話でした.

*ネットでも公開されていますが,私が読んだのは書籍となったもので,伽藍とバザール / ノウアスフィアの開墾 / 魔法のおなべ という3本の論文の和訳と第4章 エリック・レイモンド大いに語る / 第5章 ノウアスフィアはぼくたちの開墾を待っている / 第6章 訳者あとがき が収録されています 

伽藍とバザール

伽藍とバザール

 

 

その伽藍 v.s. バザールの大きな違いとして,バザール方式の以下のような点を挙げていました。

"はやめのリリース,しょっちゅうリリース"
早めのリリース、ひんぱんなリリース。そして顧客の話を聞くこと。

 

まさか,1997年の論文にこんなことが書かれているとは驚いたのですが,まさしくモダンとされる開発方法と同じなんですね.


以前にクリアコードの須藤さんから「今のアジャイルなどはすべてオープンソースの開発文化から来てるんだよ」と言われていたのを実感できてなかったのですが(スイマセンスイマセン),だいぶ時間がたって腹落ちした次第です.

 

なぜ,無償の活動にエンジニアは参加するのか

そして,次に重要になるのが,なぜボランタリーにも関わらず,世界中のプログラマが参加したのか,というところなのですが,伽藍とバザールでは,

そのしょっちゅうリリースの貢献者に,しっかりとしたエンジニア界での評価というご褒美があるから

とありました.

 

また,なぜ、そんな評価という無形のご褒美が効いたのか,訳者の山形浩生さんの 第6章 訳者あとがき には原著者のエリック・レイモンドさんがこう答えたとあります 

Raymondの答・・・・・・みんな暇だから。暇で、物質的にはある程度充足しているから。
 これは大事なポイントだ。そして、そういう物質的に充足した社会では、従来の市場による稀少資源の配分システムが機能しない。
 そのとき、別の原理が動き出す。贈与によって名声を得るという原理だ。これがハッカーたちにフリーソフトを書かせる動機なのだ! 

 

そして,この文化により,バグを作ってしまった人をDisるのではなく,バグを直した人が賞賛される文化になり,品質(機能も含め)が高まったとありました.

 

そして,この評価システム (例えば★やフォロー,コントリビューターを記載する) をうまく取り入れ,見える化したのがGitHubであり,全世界で920万人が使われる原動力が,ここにあったのかと目からウロコでした.

*何かのエントリーでGitHubはエンジニアのSNSだぜ,というのを見た気がしたのですが,ようやくそれが符号しました
*どこで見たんだろう?


ネットを支えるオープンソース ソフトウェアの進化 という講演に参加して質問した

こういった見地をもとに,この講演に参加してきました.

kci-salon05.peatix.com

プログラムとしては,第一部にまつもと ゆきひろさんの講演と,第二部にパネルディスカッション(まつもとさん,Mozilla Japan代表の瀧田さんがパネラー,TechCrunchJapan編集長の西村さんがモデレーターとなって進行) という,2つの構成でした.

まつもとさんの講演では,エンジニアから見たOSSの世界と,ビジネスの見地から見たOSSの世界と,この二極から講演され,エンジニアから見たOSSの世界では,ソフトウェアの歴史を紐解き,コードが自由に見れて改良できた牧歌的な時代から,幾つかの事件から商用ソフトへの流れ,それに対するオープンソース・ソフトウェアのムーブメントと歴史について講演されました.

この講演では,色々なお話が聞けて,リチャード・ストールマンさんという天才プログラマがいなければ,今のOSSはまた違ったものになっていたので,未来の教科書に載せるのはこの方だとおっしゃっていたり,ソースコードを読むことが優秀なエンジニアへの道だとか,ビジネスの観点からは,今後OSSを活用していかなければ,自社の差別化要素となるコアコンピタンスとなるソフトウェアの開発スピードが遅くなる,などなど30分の講演があっという間でした.

 

そして,この中で締めくくりとしてお話されたのがこちらでした.

技術者の楽園を守る = フリーソフトウェア/OSS がある意味

 

# まつもとさんの講演の締めくくりの言葉そのものはリチャード・ストールマンさんがよく使う,Happy Hacking! でした.(どこかで使いたいなぁ)

# Happy Hacking Tシャツがある! 

GNU Press | Free Software Foundation Online Shop | Buy GNU t-shirts, books, stickers and stuffed gnu toys


どういうコントリビュートが良いのか?

そのあとのパネルディスカッションでは,どちらかライセンスやOSSコミュニティの意思決定についての話が多かったのですが,途中,OSSの世界に足を踏み入れたときのことを,Mozilla Japan 代表の瀧田さんがお話されていて,最初はコントリビュートするとか非常に面倒くさくて,敬遠してきたのですが,その壁を超えたとき、世界中のエンジニアが反応してコメントをもらったりしたのが感動だった,とお話されていました.

これをもっと聞きたいなぁと思い,講演終了後にまつもとさん,瀧田さんに突撃質問して,下記2点を伺ってきました.

はじめてのコントリビュートで必要なこと

コードだけじゃないというのが御両所のご意見で,自身ができることでコントリビュートすれば良いということでした
もちろん,タイポの修正でも良いし,エラー発生を挙げてもよいし,ドキュメントのローカライズでも良い(瀧田さん曰く,学生にはオススメですということで,実際にMozillaのあるプロジェクトで入試英語の試験勉強のためにローカライズで活躍していた高校生コントリビューターがいたとのこと),ただし気をつけて欲しいのが,Pull Requestの粒度やコーディンスグタイルやコントリビュート方法をしっかり読むことを挙げて頂きました.

まつもとさん,瀧田さんのはじめてのコントリビュートが何だったのか

まつもとさんは使っていた Chain Mail* というフリーソフトに対してパッチを送ったら,「もう開発をしていないので,あなたが引き継いで下さい」と言われたのが,はじめてのコントリビュートだったそうです.(*その後,メンテナーになられたまつもとさんがcmailと変えています)
# るびま にその時の模様が出ていました 
 Rubyist Magazine - Rubyist Hotlinks 【第 1 回】 まつもとゆきひろさん

続いて,瀧田さんに伺うと,Mozilla Firefoxローカライズがはじめてのコントリビュートだったそうです.

# ちなみに瀧田さんに関するWeb記事の連載の締めくくりのタイトルは "学生の内にオープンソースの世界を踏み台にしろ!" でした
 挑戦者たちの履歴書(144):学生の内にオープンソースの世界を踏み台にしろ! - ITmedia エンタープライズ
 

コントリビュート方法については,伽藍とバザールでも書かれており,上記のまつもとさん,瀧田さんのお答えとは,ばっちり合う内容でした.

4.利用は最大の賛辞ーーそしてカテゴリーキラーは追随ソフトよりもよい。
5.むずかしくて退屈な作業(たとえばデバッグドキュメンテーション書き)に継続的に貢献するのは、面白くて簡単なハックをいいとこ取りするよりも賞賛すべきことである。
6.機能の大幅な(non-trivialな)拡張は、低レベルのパッチやデバッグよりもいい。

 第2章 ノウアスフィアの開墾 13 どれほどすばらしい贈り物? より(番号は文中より)

 

上記の5.6.は一見すると,矛盾しているように見えますが,文中ではOSSプロジェクトでは相互作用していると補足されています.

ハッカーに、独自の新しいツールを開発するのと,誰か別の人のツールの拡張と、どっちで有名になる見込みが高いかときいたら、答えはまちがいなく「新しいツール」になるだろう。でも、次の二つならどうだろう。

  1. 一日ほんの数回、だれにもわからない形でOSから呼び出されるだけの真新しいツールだけど,急速にカテゴリーキラーになるもの
  2. ことさら新しくもないしカテゴリーキラーでもない既存ツールに対する拡張をいくつか。ただしそのツールは毎日使われて、毎日多くの人の目に直接触れる

この場合,ハッカーは最終的に前者に落ち着くにしても、かなりためらうはずだ。この両者は、だいたい同じくらいの地位を持っている。

 第2章 ノウアスフィアの開墾 13 どれほどすばらしい贈り物? より

 

まとめ ーOSS開発文化とは?

ということで,フリーソフトウェア/OSSの開発をほとんど知らなかった人間が,その開発文化に触れて感じたことをつらつらと書いてきましたが,まとめると,

OSSの開発スタイルはモダンな開発スタイルと同じだよ!(というよりOSSの方が断然早いんだよ!)
・エンジニア同士が互いに賞賛する文化があるよ!
OSSの世界で活躍することで,ハッカーハッカーと認めてもらえる,得難いチャンスがあるよ!
・貢献するには知っていたほうがよいお作法があるけど,自分に合ったコントリビュート方法があるよ!

ということでした.


さらに,今まで企業の採用ページでOSS活動を推奨します,とあっても「ふーん」ぐらいだったのですが,企業はちゃんと戦略的に,OSSコミュニティでの活躍を期待していて,そこで賞賛を獲得することが企業のブランディングに繋がっていることに,いまさら気付きました! 

sezemi.hatenablog.com

 


そして,最後は繰り返しになりますが,OSS Hack Weekend という開発イベントとリーダブルコード / GitHub / OSS Hack 4 Beginners という3つの勉強会を開催します.

 

sezemi.hatenablog.com

 

まもなく公式ページをオープンしますので,ぜひご期待ください!(まだ作っています)