趣味でOSSコミュニティに潜入しております。調査対象は、お世話になっているHadoopの開発コミュニティです。
昔からOSSに対して疑問だったことがあります:
こいつら仕事でもないのになんでプログラムなんて作っているの?
OSS開発に潜入して、OSS開発者の正体や文化を調べたいと思っておりました。社会学的フィールドワークです。
これまで最初が踏み出せず、できていませんでしたが、やっと重い腰を上げ調査を開始しました。
潜入を開始したのは、単に気まぐれの思いつきなのですが、背景としては2点あります。
1点目は、これまでにHadoopのバグをいくつか見つけて、かつ直して自分で持っていました。簡単なバグなのでほっといても勝手に直っていくと思っておりました。確かに、私がパッチを投げなくても、今は治っています。今から思えばもったいない話なのですが、その時分にコミュニティに投げておけば私が一番早かった。私の仕事が無駄だったのか、OSSを直した人の仕事が無駄だったのかはわかりませんが、いづれかの仕事は必要なかったわけです。OSSの利点はこの無駄を無くせることです。他社のものまねの開発なんて下らなくて仕方がありません。
2点目は、バグがゴロゴロと存在していることから分かるように、注目されているOSSといえどもそこまで特別なものではないということです。中身はただのJavaのコードです。理解不可能な特殊アルゴリズムが使われているわけでも、JVMとかカーネルの深いところを意識した特殊なテクニックが使われているわけではありません。作っている人は私とスキルが大きく離れているようには思えません。ただ、規模が大きくて理解するのに時間がかかるというだけでした。
要するに私にもできそうだと確信してました。そういう状態で、ふと思いついたので、2つほどつまらないパッチをコミュニティに投げました。ApacheではJIRAというプロジェクト管理ツールが用いられています。そこにIssueを発行するだけです。
初めて見た名前のやつで、英語が下手くそで、何やねんこいつと思われたことでしょうけど、そこは忖度してくれました。ひとつはtrunkに取り込んでいただけました。次版からHadoopのソースコードをgrepしたら私の名前が出てくるかもです。
まだ、非常に浅いところしか見れていませんが、わかったことがいくつかあります。
感謝される
コードを書けば、感謝される優しい世界でした。貢献に対してはお礼をするというマナーがあるようです。逆に、コードを書かなければ貢献とみなされない雰囲気は感じました。
企業の人がやっている
コミュニティで見かけたのは、Cloudera, Hortonworks, NTT Dataといった企業の人ばかりです。Cloudera、Hortonworksは、Hadoopの商用パッケージを売っているのでコミュニティに中心にいて当然ですが、NTT Dataが思っている以上に活発に活動していることに驚きでした。
OSSは仕事として開発が行われているようです。要するに金のため。
ボランティアがみんなの幸せのためにしているというイメージは誤りのようです。OSSというと、反商業的な印象、あるいは社会主義的な印象を昔は持っていました。この印象は改める必要がありそうだと感じてはいましたが、実際に企業の人しかコミュニティにいない事実を見て、ヒッピー的なOSS開発者のイメージは完全に捨てました。
ヒッピーコミューンとしてのOSSなら仕事でなくても貢献してもいいですが、企業が商業目的で行っているなら、今後は仕事でなしに開発するのは辞めます。プライベートで企業に利することをする理由はないので。
中国系が多い
ClouderaもHortonworksもシリコンバレーの企業ですが、名前から中国系と思われる人が多い印象を受けました。シリコンバレーはアメリカにあるけど、実際は中国系やインド系ばっかりだという話は聞いていましたが、本当のようです。欧米のハッカーが優れているというのは誤った偏見らしいです。これはからは中国系とインド系がIT業界を支配しそうです。
表面的なところで気付きはありましたが、まだ裏のルールはわかっていません。誰がコミュニティのなかで発言権があるのかとか、新機能のパッチが提供されたらそれを取り込むかどうかは誰が決めるのかとか、重要な変更はどのように決まるのかとか。
もっと潜入捜査を行わないと分からなさそうです。どうしようかな?