オープンソースがわからない

オープンソースがわからない

OSS活動をしているエンジニアが採用で有利だったり、なんかエライとかカッコイイみたいな空気がある。

オープンソースを主軸にしている会社で働きはじめてから、人が何を前提として、何を指して「オープンソース」と言っているのか、どんどんわからなくなってきた。いったいなぜOSS活動が良いとされるのか。

可能性1 ▸ ソースがオープンである

これは自明に思えるかもしれないが、本当にそうだろうか。ソースがオープンなのは良いことだという価値観は、そんなに広く受け入れられているだろうか。

たとえばうちの会社は「ソースはできる限りオープンであるべき」という信念を掲げているし、私にとってもそれは魅力的なポイントのひとつだった。さらには「すべてのソースはオープンであるべきで、オープンじゃないソフトウェアは使わない」という過激派も世の中には存在するが、いずれにしろこのようなオープンソース主義者が多数派であるとは思えない。せいぜい「人が書いたプログラムを無料で使えるなんて便利だな」ぐらいの考えがほとんどではないか。

なにより、「ソースがオープンなのがオープンソース(そしてそれは良いことである)」というこの純粋な定義を採用してしまうと、手前のコードをろくにオープンソースしていないのに求人ページに「OSS開発経験者歓迎」などと書いている会社は矛盾していることになってしまう。

可能性2 ▸ 世の中の役に立っている

ほとんど誰の役にも立ってないOSSはたくさんある。ソフトウェア自体は役に立っていても、第三者からすれば再利用性はまったくなく、ただソースがオープンだという場合もある。

もちろん、影響力の大きい有名OSSの創始開発者であったり、コア・コントリビューターになっているような人は相応の評価をされるべきだが、果たしてそれは「オープンソースであること」と関係があるのだろうか。クローズドソースでも、多くの人が使っていたり、めちゃくちゃ役立つものを作っているなら同じではないか。

可能性3 ▸ 無報酬でコードを書いている

「無報酬でコードを書くなんてやる気があって良い」「私が無料で使っているソフトウェアを無報酬で書いてくれてありがたい」という気持ちはわかる。しかしオープンソースと報酬はそもそも関係がない。大企業から十分な報酬を得てOSS開発をしている人たちは「OSS活動エライ/カッコイイ」査定においてどういう扱いになるのか。

無報酬がエライのならOSSなどとボカさずにはっきり無報酬と言えばいいではないか。求人ページの優遇条件に「無報酬でもコードを書いている」とはっきり書けばよろしい。

可能性4 ▸ 高いスキルが求められる

これも正直よくわからない。他の会社がどんな感じなのか知らないけど、すごく小さな会社で書き捨てのコードしか書いてないとかでなければ、要求されるスキルがオープンとクローズドでそんなに違うとは考えにくい。どうだろう。

実際、私も今の会社に入った途端ちょっとしたOSSのメンテナーみたいな感じで配属されて、当時はなんかビビリながらも「すごいなーOSS開発!」みたいに思った。「衆人環視でスキルも伸びるな!」と。でもその後、まだクローズドソース段階のプロジェクトに異動したら、やってることがほぼ同じで拍子抜けした。

未知のコードベースに飛び込んで理解する、誰でもわかるように全部しっかり説明する、いろんな人があげてくるバグ報告や要望を捌く…… べつにやることはどっちも同じである。イシューに社外秘を直リンクしても大丈夫とか、謎の横柄な輩が湧いてこないとか、そのぐらいの違いしかないように感じる。オープン/クローズドの差よりも、規模の差のほうが大きいだろう。


といった感じで、本来の意味であるはずの「ソースがオープンである」という定義に加え、人それぞれの含意が乗っかった状態で「OSS活動」「OSSに貢献してみたい」などと言われたときに、もはや何を指し示しているのかわからないことがある。

なんとなくこのような内訳のイメージが多いのではと推測するが、どうだろう。

無報酬60%、高スキル20%、ソースがオープン10%、役立ち10%
「OSS活動」でイメージするものの内訳

オープンソースは素晴らしい。再利用性がなくても、クオリティが低くても、潤沢な報酬を得ていても、ただソースがオープンであるというだけでオープンソースは素晴らしい。だから、エライとかカッコイイなどとは関係がないし、何より「OSS活動=無報酬でエライ」というアングルの美化は搾取的で危険だと思う。

便利な無料OSSを無報酬で作ってくれる人はたしかにありがたい。しかしそれは無報酬でコミュニティ活動をしたり指導ボランティアをしている人と同じありがたさであり、その人のエンジニアとしての優秀さとは関係がないし、ソースのオープンさとも関係がない。ましてや、可処分時間がなかったりプログラミングが趣味ではないエンジニアの能力ややる気を相対的に低く評価するほどのものではない。

そして無料OSSを利用してビジネスをしているなら、個人の無償労働をただ美化するのではなく、寄付金を出したり、従業員の就労時間の何パーセントかはOSS開発にあてるなど、 会社組織としてオープンソースの世界にギブバックしていくのがもっと一般化してほしい。

Up Next:

日本語で初対面の人と仲良くなるのむずい問題

日本語で初対面の人と仲良くなるのむずい問題