OSSコミッターへと一歩踏み出すには?

――コミュニティではスタッフとしてどんな活動をしていたのでしょうか。
ブログを書いたり、メーリングリストへの投稿に回答したり、飲み会の幹事もやっていました。また2か月に1回、Node学園という勉強会や、年1回開催されるNode学園祭という大規模なイベントのスピーカーを検討したりなど、コンテンツを決める会議にはよく参加していました。
――コミュニティのスタッフとして活動することでどんなものが得られるのでしょう。
スタッフとして活動していると、どんな新しいことが行われているか、そしてこの技術なら誰が詳しいかといった情報が入ってくるんです。そしてその人を通じて、新しい技術をいち早く学べたりする。そういう意味では、コミュニティ活動を通じて、情報収集ができるというのがメリットとは言えますが、大事なのは「この技術にコントリビューション(貢献、寄与)したい」という気持ちです。その技術に対する愛がないと続かないと思います。
――今はNode.jsのコミッターとしても活動されていますね。いつ頃から始めたのですか。
2015年にNode.jsがフォークされ、io.jsとしてリリースされました。日本のNode.jsのユーザーからすると、Node.jsを使えばいいのか、io.jsを使えばいいのか迷います。そこでNode.jsの日本の代表として、「どっちを使ってもいいよ」ということを発信しようと思い、Node.jsとio.jsの間で乖離がないようにしました。どちらのコードを使っても同じ動きをするよう、io.jsのコードが変更されると、Node.jsも変更しました。それがコミッター活動として認められたということです。僕としてはNode.js代表の立場として、技術の混乱を避けたいと思っただけなんですけど。
ただ、この活動をしたことで、海外のエンジニアとも話をするようになりましたね。
実は僕のような活動は、Node.jsの世界では、コミッターではなく「コラボレーター」と呼ばれています。コミッターの中にもヒエラルキーがあり、一番上にいる方たちが「テクニカル・ステアリング・コミッティ」と呼ばれる、コアコミッティがあり、偉い人たちが合議制で技術の方向性を決めています。その末端にいるのがコラボレーターと呼ばれる人たちで、何回か良いコミットしていると、コラボレーターとして任命してくれるんです。
コミッターやコラボレーターを特別視している人も多いかも知れませんが、たいしたことではないんです。直面している問題に対して、直す気があるかどうかなんです。直す気のある人が単にやっているだけなんですよ。
――コミッターへと、一歩踏み出すにはどうすればよいでしょうか。
やっぱり自分の中で解決したいと思っていることがあるかが大きいと思います。僕自身の話でいうとNode.jsとio.jsの混乱を避けたかったということがきっかけで、直したかったからやったというのが実情です。それは他の人たちを見ても同じです。同じくNode.jsのコミッターとして活躍しているYahoo! Japanの大津さんは、OpenSSLというセキュリティライブラリの脆弱性を解決するために、定期的にアップデートをするという活動を行っています。何か問題意識があり、それを解決したい気概があることが第一歩でしょう。もちろん、気概があってもOSSのライブラリに詳しくないとできないので、いきなりステップアップすることはできませんが、いずれにしてもどうすればいいのかなと悩み続けるうちにそういうことができるようになると思います。
若手のうちは技術をがむしゃらに追ってほしい
――地道な勉強が実を結ぶと言うことですね。現在はどんな業務に従事しているのでしょうか。
現在、ITソリューション統括部 インフラソリューション2部 APソリューショングループに所属し、Tech Leadという役割を担っています。仕事は大きく3つあります。第一はコードレビューや、社内でのテクニカルな相談事を解決すること。第二に新しいWebアプリケーションを作るにあたってツールを揃えること。第三はその作った技術を使って、Webサービスを作ることです。通常、Tech Leadというと第一の仕事を担う人ですが、私の場合はプレイヤーとしても活動しています。
――Tech Leadとしてメンバーの教育も行っているのでしょうか。
メンバーには、どういう気概を持って仕事に取り組むべきかと言う話をしています。その第一が「正しいもの(validate)を正しく作る(verify)」。正しいものとは価値のあるものということ。そしてそれを正しく作れているかということ。つまり価値があるものかどうかを見立てられるエンジニアになろうということです。両方を満たせる人材になることを理想論で、現実にはどこかで折り合いが必要となりますが、前提として「正しいものを正しく作る」を持っていてほしい。そしてもう一つ、最近、よく話しているのが、アウトプットしないとインプットできないということです。
――古川さんにとって、コミュニティ活動やオープンソース活動は自分のキャリアにどう生かされているのでしょう。
DeNAへの転職は、Node.jsとは関係ありませんでしたが、一人でWebアプリケーションを作りたいという思いから決めました。勢いもあり、エンジニア一人の裁量が大きい。そういう環境だったため、OSSで活動していたWebアプリケーションの技術が仕事に役に立つ一方、仕事でやっていることにより、OSS活動でやれることも増えていきました。これはリクルートテクノロジーズに入っても同じです。リクルートテクノロジーズで仕事をすることによって、OSS活動でやれること、例えば講演の仕事なども増えた気がします。リクルートテクノロジーズではReactやReduxなどのフロントエンドの新しいOSSも、仕事で使っています。OSSとして活動してきたことが転職したことで仕事にも直結できている。OSSでの活動はキャリア形成と良い相互関係にあります。
――古川さんが30歳前後に戻ったとして、2017年の今、チャレンジしてみたい「プラスα」の技術とはなんでしょうか。
機械学習ですね。学生時代に学んでいた機械学習を学び直してみたいと思っています。自分が興味のあるモノにチャレンジし、若手のうちはがむしゃらに技術を追っていってほしいです。そして学んだことをブログなどで公開するんです。そうすると新しいムーブメントが起こる可能性がある。プログラミングの言語として注目しているのはRust。コミュニティも熱いので、面白い人たちが集まっていると思うんです。自分が28、9歳だったら、そういう新しい技術に飛びついていると思います。
今の年齢の自分なら、学びたいと思っているのは組織論ですね。ソフトウェアを作る上で、人との関わりや組織も重要な要素だと思うので。
――古川さんご自身は、今後のキャリアをどうしていきたいと思っていますか。
Tech Leadになったばかりなので、技術的な解決策を模索していける人として一人前になることです。今後はマネジメントにも興味があるので、組織の効率化を最大化することを考える人になりたいと思っています。
――20代後半で新しい技術に取り組み、コミュニティ活動を通じて技術を研鑽。今度は若いメンバーにOSSで培った知見を伝えているのですね。古川さんのTech Leadとしての取り組みが今後も楽しみです。本日はありがとうございました。
