ボクココ

個人開発に関するテックブログ

オープンソース界隈で有名人になる方法

ども、@kimihom です。

f:id:cevid_cpp:20160820012330j:plain

今回 Github を中心とした OSS 界隈で有名になるいくつかの方法やメリットを挙げようと思う。私自身はまだまだ未熟者で、できていない部分もあるので、参考程度に読んでいただけたら幸いである。

OSS 界隈で有名になること

OSS界隈で有名になるとは具体的にどんなことかっていうと、「誰もが使っているライブラリを作った人」になるというのが端的な説明である。Ruby on Rails を作った DHH といったように、人気のOSS であればあるほどエンジニア界隈では知らない人はいないくらいなレベルに到達することができる。やがてそれに関しての勉強会やカンファレンスが開かれたりするようなレベルにまで達することもある。ギークなエンジニアの方々であれば憧れの一つとなるだろう。

んで、そうなるとどんな良いことが起こるかっていうと、自分が目指したソフトウェアを他の皆と作り上げることができるのである。これがソーシャルコーディングってやつだ。自分が欲しいと思った機能をプルリクエストによって他の誰かが作ってくれたり、バグを修正してくれたりするようになる。するといいプロジェクトはどんどんいいものになって、さらにみんなが使われるようになる循環が生まれる。

エンジニアのセルフブランディグとしての究極像だ。転職するときだけでなく、自らの自己紹介をするときに「あぁ、あのライブラリを作った方ですね」と思われるだけで一気に評価が高くなる。スペシャリストとしての信頼や信用が生まれ、特にフリーランスであればプレミアムな方として好待遇となることだろう。

オープンソースの作り方

よくある gem や npm ライブラリの作り方、みたいな方法論があるが、あれは結局最初の一歩を示しているだけであって、具体的にどんなものを作ればいいのかを示しているものではない。

私は優れたオープンソースを作るためには2つの方法があると考えている。

最も良い方法は、「自分のプロダクトの中で機能として分割できるものを分割して OSS 化する」ことである。まさに”副産物”という考え方にふさわしい。んで、これって作る最初の段階からある程度意識して作らないと、コアのシステムとライブラリが密結合してしまって切り出すことが困難になるので注意しよう。最初からモジュールとして分けて作るってのは難しいんだけども、作る前から意識するだけで 良い gem や npm ライブラリを公開できるのなら、検討する価値は十分にある。

2つ目に、新しい言語で他の言語の設計思想に基づいた新しいフレームワークを作ることである。ほとんどのプログラミング言語では Web アプリフレームワークがあるのと同じように、その他のあらゆるライブラリが存在する。例えば 機械学習や統計に強い Python のライブラリを Ruby クローンとして実装すれば、かなり有名な OSS 開発者になれる可能性がある。Python でできるなら Python 使えばいいやんって考える方々がほとんどな中で、それをやることに価値があるのである。今なら、 Elixir の Phoneix フレームワークの Rails クローンなライブラリを作れば、今後有名なOSS開発者になれるかもしれない。プログラミング Elixir も発売されるし!

プログラミングElixir

プログラミングElixir

日頃から発信することを意識しよう

んで、それを作っただけでは、他の誰でも知る機会を得ることができない。てことで、テクいブログをひたすら書き続けるってのが重要なアクションになる。その世界では読者数なんてのは関係なくて、ギークな一部の方々に好かれて読まれるような記事を書けばいいのである。自分の好き勝手に書いていいけど、「書き続けなければならない」っていう使命がある。

それすらもやらないと、いつまでもエンジニアとしての Value を高めることはできないだろう。

そうした日々の情報発信を通じて、いろいろなカンファレンスで発表する機会を得たり、何かの記事を書く機会を得たりすることができる。本を書くって方法もあるね。でもこれらはどうしても一時的な情報発信になてしまうので、やはりブログを書き続けるってのが一番大事なことだと私は考えている。

あとは英語。これは避けて通れない道である。日本語で書かれた Github の README は、日本語に特化した何かのライブラリでない限り誰も使おうとは思わないだろう。てことで OSS 界隈に足を踏み込んだら、真っ先に「英語をちゃんと勉強しておけばよかった」と後悔するパターンに陥る。今からでも遅くはない。私も頑張ってるので、共に頑張ろう。

終わりに

私自身が AWS Lambda を使ったオレオレバッチフレームワークを開発していて、これは他の人にも有用なんじゃないかと思うようになったことがきっかけで記事を書いた。腕の立つエンジニアってのは最初からそういうこと前提でソースコードを書いてるんだろうなぁと一つ思ったことがあって、自分への戒めとして書いている。

以上、自分/仕事へのマーケティングやブランディングとしてのオープンソース界隈で有名になることについての記事でした。