日本のNode.jsを牽引するのは、変化を恐れない柔軟で強靭なマインド
有名エンジニアの頭の中─Node.js古川陽介氏“ラベルを貼られるのはしんどい。でも成長できる”
第一線で活躍を続ける有名エンジニア。彼らが名を挙げたのは高い技術力だけでなく、それをどう活用するのか、といった思考力や発想力、さらに数ある困難の克服を可能にしたマインドセットによる部分も大きいことでしょう。本シリーズでは、そんな「有名エンジニアたちの頭の中」をご紹介。
第1回目は、Node.js日本ユーザーグループ代表で、コミッターとしても活動するリクルートテクノロジーズの古川陽介さん。古川さんが日本トップクラスのJavaScriptエンジニアとして、また一ビジネスパーソンとしてオンタイムにどんなことを考え、心がけているのか、その仕事脳に迫りました。
<目次>
Node.jsとの出会いは、キャリアを考えた時
エンジニアリングでは解決できない仕事の面白さ
Node.js日本のトップランナー古川陽介さんの頭の中
1.「技術を楽しむ」
2.「サービスへのWillはあるか」
3.「コミュニティの充実」
4.「自己実現は自己発信から」
5.「若手育成」
6.「人を幸せにできるか」
7.「やったことのないことをする」
8.「刺激的な環境に身を置く」
頭の中を覗いてみたいのは「Jxck」氏
古川陽介(ふるかわ ようすけ)
大学院を卒業後、有名複合機メーカー、大手携帯ゲーム会社を経て、2016年5月リクルートテクノロジーズ入社。現在はグループマネージャーとしてメンバーの教育を始め、Webアプリ作成用のユーティリティツールやフレームワークの開発を担当。さらにNode.js 日本ユーザーグループ代表として、海外のカンファレンスでも登壇するほか、勉強会「東京Node学園」やNode.jsの祭典「東京Node学園祭」も運営。家族は妻と1歳の娘で、趣味は漫画を読むこと。
Node.jsとの出会いは、キャリアを考えた時
─古川さんは新卒で有名複合機メーカーに入社され、文書管理ソフトの開発に携わられていたとか。その後、大手携帯ゲーム会社で文書管理ソフトとは関係のないWebアプリやゲームの開発をされていたそうですが、なぜ携帯ゲーム会社に?
実は複合機メーカーで作っていた文書管理ソフトもWebアプリで、僕はパフォーマンスチューニングやデータベース、全文検索なんかを担当していました。仕事はそれなりに面白かったんですけど、入社から数年経った頃、自分のキャリアをどうしようか考えた時期がありました。
2010年当時はHTML5が出てきたタイミングで、WebアプリのフロントエンドもJavaScriptを使って作るのが主流になってきていました。僕もどうせならWebアプリ全体を作れるようになりたい、そのためにはJavaScriptの技術を身につけておく必要があると思いました。そんな時ちょうど技術系のブログ記事を読んで、Node.jsの存在を知りました。
─JavaScriptも色々ありますが、Node.jsを選ばれた理由とは?
Node.jsはサーバーサイドのJavaScriptなので、文書管理ソフトのサーバー周りを手がけてきた僕には学びやすかったんですよね。あとは当時、WebSocketという新しい通信規格が登場して、リアルタイム性に優れたWebアプリを作れるようになってきた頃でした。そのWebSocketをNode.jsだとすごく簡単に使えると知って、将来性を感じたという理由もあります。
それでNode.jsの日本ユーザーグループのコミュニティに参加して活動するうちに、携帯ゲーム会社から声をかけてもらいました。
─それから携帯ゲーム会社に勤務される一方でコミュニティのスタッフになり、その後、代表に就任されたんですよね。最近では海外のカンファレンスにも登壇されているようですが。
シンガポールで開かれた「JSConf.Asia Singapore2016」やオランダの「Node Interactive Europe 2016」で発表を行ないました。
日本には多くのエンジニアコミュニティがあって、東京23区内だけでも数え切れないほどです。それはエンジニアにとって便利だし心強い状況なんですが、一方で技術も視点もローカライズされがちだという問題があります。
そんな中、海外のカンファレンスに出て世界のエンジニアたちと話すことで、自分が一日本人エンジニアとして世界のどこにいるのか、グローバルでの価値が分かるんですよね。あとアメリカやヨーロッパなど、海外のエンジニアが使っているツールや考え方についての最新情報を仕入れて、日本に共有できるというメリットもあります。
─例えばどんな情報を日本に持ち帰られたんですか?
例えばオランダのカンファレンスでは、Node.jsのコアコミッターJames Snell さんによるNode.js にも HTTP/2 を取り入れようというスピーチを聞き、興味を持ちました。それでJamesさんほか数名の海外有名エンジニアの方をNode学園祭という日本でのイベントに招き、発表してもらいました。
また、nowというサーバー構築自動化ツールについての発表を聞き、それを手がけているZEIT社の社員の方にも同じくNode学園祭に登壇してもらったことがあります。
─逆に、海外のエンジニアが知らない、日本のエンジニアが発信できるJavaScript界隈の情報というのはあるのでしょうか?
たくさんあると思いますよ。例えばタワーズ・クエストの和田卓人さんが作っているpower-assert というアサーションライブラリは、日本では非常に有名なんですけど、海外ではまだそんなに知られていません。その哲学や活用方法について発信したら、注目が集まるはずです。
あとNode.jsは日本でも普及していますが、メインターゲットは現状、開発者ライアン・ダールの母国アメリカやヨーロッパのユーザーです。だから日本のマーケットが重要であることを知ってもらい、海外と日本のエンジニアとの垣根を低くしたいですね。そして知識や経験を共有し合う場を作って、Node.jsの技術発展に貢献していきたいと考えています。
エンジニアリングでは解決できない仕事の面白さ
─現在はリクルートテクノロジーズ社で、Webアプリ作成用のユーティリティツールやフレームワークの開発などに携わられているとか。
リクルートは大きな組織ですが、その中でReactやReduxを使ったフレームワーク開発など、先進的な仕事を任されているので、やりがいを感じています。新しい技術に触れるのは楽しいし、手がけたツールやフレームワークで開発が効率化されて、現場のエンジニアのやる気がアップしたり、Webアプリの品質が良くなったりすると、やっぱり嬉しいですね。
最近はグループマネージャーになって、マネジメントにも気を配るようになりました。経営視点を求められるので、会社との距離が前より近くなった気がします。例えばメンバーのモチベーション維持方法など、実際にやってみて気付くことも多いです。
─ご自分でまだソースコードは書かれていますか?
はい。量は減りましたけど、ネガティブには取らないようにしています。
─それはなぜですか?マネジメント職に就いたエンジニアの中には、プログラミングの量がプレイヤー時代より減ってしまうことをつらいと感じる方も多いようですが…。
仕事には当然、エンジニアリングで解決できるものとできないものがあって、全体的に見ると後者のほうが多いんですよね。そんななかプレイヤーとして技術を追求しているだけだと、どうしてもコミットできる仕事の領域が限定されてしまいます。
でも今回、管理職になったことで、例えばチームの方針やメンバーの動かし方、上手い情報共有の方法はないか、などと考えるようになって、プレイヤー時代より関われる仕事の幅が広がりました。そしてまた別の仕事の楽しみ方ができるようになった感じがします。
Node.js日本のトップランナー古川陽介さんの頭の中
─では古川さんがエンジニアとして1人のビジネスパーソンとして、オンタイムにどんなことを考え、心がけているのか、教えて下さい。
1.「技術を楽しむ」
テック系ブログを眺めるだけでもいい
僕がNode.jsに触れたり、こうして取材を受けているのも全て、技術が好きで楽しんでいるからです。
新しい技術が出てきたら、眺めるのではなく実際に触れて試してみることを大切にしています。エンジニアには技術寄りの人間とサービス寄りの人間がいて、なかには「技術なんて気にしないから、サービスさえ作れればいいでしょう」という考えもあります。それも真理です。
でもそうすると言語や技術はただの道具でしかなくなり、新しいもの好きで、まだ無いものを作ってみたいというエンジニアスピリットが死んでしまうように感じます。僕に言わせればそれだとつまらないし、プログラミングで迷う場面も増えるはずです。
またエンジニアリングの歴史には、先人たちが解決策を見出してきた多くの事例があります。本などからそういう情報を得るのはすごく重要ですが、意外にできていない人も多い気がします。毎日テック系のブログにサッと目を通すだけでもいい。技術の情報にひんぱんに触れるようにしています。
2.「サービスへのWillはあるか」
ダンジョンに入り、ドラゴンを倒せ
僕はどちらかというと技術寄りのエンジニアですが、「サービスをどうしたいのか」というサービスへのWillや愛情は、つねに持つように意識しています。
技術に偏ったエンジニアは、RPGに例えるとただ自分の武器を磨いたり、新しい武器を作ったりしているだけの状態です。だから時にはダンジョンに入り、ドラゴンを倒すことも必要になります。ユーザーの課題を解決してマネタイズするのは、技術そのものではなくサービスですが、とかく大きな企業では、サービスを作るHowの部分に議論が集中しやすい傾向があります。
もちろん議論も重要だし、楽しい工程ですが、時には「これ以上話していても分からないから、いったん実装してみましょうよ」などと伝えて、意識的に議論を打ち切るようにしています。サービスへのWillは、エンジニアが技術でサービスに貢献する度に強まるものだと思います。技術とサービスの両方を疎かにしないように心がけています。
3.「コミュニティの充実」
スーパーエンジニア誕生?
そして僕には、Node.jsのコミュニティが充実していることが、やっぱり大切です。僕自身こうして勉強できているのは、コミュニティの存在が大きいんですよね。なので、エンジニアが情報共有や会話をできる場を積極的に提供していきたいと考えています。
その中で、メンバーの声もなるべく活かすようにしています。例えば東京Node学園という勉強会では参加者のスキルレベルが分かれてきたので、ビギナーを対象にしたコミュニティを用意したり、Node Girlsという女性向けコミュニティも立ち上げました。
アメリカなどでは、色んな性別・人種の人たちが集うのがコミュニティのあるべき姿だとされていますが、日本の勉強会では女性エンジニアの姿が少ないですよね。日本は遅れています。だからそうした取り組みは、続けていきたいと思います。結果、未来のスーパーエンジニアがコミュニティから誕生したら、それ以上嬉しいことはないですね。
4.「自己実現は自己発信から」
間違いを指摘されることは幸せ
実現したことや面白いと思ったことは、内に秘めるのではなくブログやGitHub、講演などで発信するようにしています。でないと、エンジニアとしての自分の価値を認めてくれる人の数はどうしても限られてくるし、発信していくと「この人はこういうことができる人なんだ」というラベルを、世間から貼られるようになります。
楽なことではないですが、それが成長のきっかけになり、自己実現につながります。例えば僕の場合、Node.js日本ユーザーグループ代表で、Node.jsができる人だというラベルを貼られています。だから日本で一番Node.jsに詳しいエンジニアにならないとマズイと思い、真剣に勉強するわけです。そして学んだ内容を発信していくと、また新しいラベルが貼られて、自己実現に結びついていきます。
よく「発信するのは怖くないんですか?」と聞かれますが、万一間違っていれば誰かしら指摘してくれるし、それは幸せなことです。指摘されると、確かに一瞬、自分自身を否定されたような気になることもありますが、自分の間違いに気付くということは、成長したということ。怖がって発信しないのは、もったいないですね。
5.「若手育成」
教えるほうが勉強になる
グループマネージャーになり、また社内で開発の内製化が進められていることもあって、若手を育成する機会が増えました。例えばWebアプリやOSS開発の手法など、自分が経験や諸先輩方から学んできた具体的なノウハウを教えるなかで、もっと上手く指導できないかと考えるようになりました。
教えるということは、自分の頭の中にモヤッと存在する知識を洗い出して、体系立てて分かりやすく伝えるということで、その過程で得られるものはたくさんあります。例えば試験勉強で「教わるより教えるほうが勉強になる」という人がいますが、それに似ています。
また、教える相手のリアクションが読めないのも、面白いところです。一人ひとり知識量が異なるので、人によっては「あ~、それ俺知ってるわ」と少々生意気な態度をされることもあるし(笑)、「全く分かんないです。どうしよう…」と不安そうな時もあります。柔軟な対応は簡単ではないですが、できると大きな手応えを感じます。
6.「人を幸せにできるか」
世界中の人に使われるサービスを作りたい
僕がエンジニアをやっていて良かったと感じるのは、技術でサービスや仕事に貢献して、「これは便利だ」とか「使って良かった」などという言葉をもらった時です。
今はアプリ作成用のユーティリティツールやフレームワークを作っていて、それを使う現場のエンジニアに喜んでもらえると嬉しいですが、将来的には自分の作ったものが世界中で使われて、イノベーションが起きて、社会に貢献ができたらすごく幸せだろうなと思います。
例えばiPhoneやSuicaを開発したエンジニアは、エンジニア冥利に尽きるはずです。そういう人たちのように、例えばNode.jsを使ったサービスを作って、世の中を良くできるといいですよね。
7.「やったことのないことをする」
いずれはデザインからサーバーサイドまで
これは自分への戒めなんですが、ある技術を身につけて得意にすると、その分野のことばかりするようになりがちです。僕の場合、Node.jsでWebアプリを作ることはたくさんやってきていて、日本ではかなり詳しい方だと思います。でもそればかりだと、エンジニアとしての成長は見込めません。だからNode.jsを軸にピボットしてやったことのない領域に挑戦し、できることを増やしていくようにしています。
例えばNode.jsならその下にV8のJavaScriptエンジンが動いているわけですよね。C++で書かれていて僕はまだ読めませんが、分かるようになったらもっと面白いはずです。もしNode.jsが無くなっても、その知識は生きるかもしれません。
また、いずれデザインも勉強してみたいと考えています。自分一人でデザインからクライアント、サーバーサイドまで思い通りに作れたら、きっと楽しいですよね。
8.「刺激的な環境に身を置く」
知らないことを知る人が、たくさんいる場所へ
これまでの転職条件にも挙げてきたことですが、自分よりデキる人がいて、つねに刺激を受けられる環境に身を置きたいと考えています。
今勤めているリクルートテクノロジーズには、僕より前にNode.jsのコミッターをやっていた方がいます。その方と話すと面白いし、エンジニアとしての知見もすごく深くて、学ぶことがめちゃくちゃ多いんですよ。それも入社理由の1つになりました。
あと、お伝えした通り僕はクライアント側も多少分かるんですけど、当然、本職の社員たちのほうが断然詳しいんですよね。大きな企業で働くメリットは、僕の知らないことを知っている人がたくさんいることだと思います。
僕がNode.jsを学び続けたのは、当時のコミュニティには高校生なのにコミッターをしているメンバーがいたり、僕と同じ歳で国内外でガツガツ発表しているメンバーがいたりして、自分もそんなふうになりたいと感じたのが理由です。ちょっと負けず嫌いなのかもしれませんね(笑)。
頭の中を覗いてみたいのは「Jxck」氏
─ちなみに、古川さんが頭の中を覗いてみたいと思う人はいますか?
ええっと…、WebエンジニアのJxck(ジャック)さんですね。Node.jsのコミュニティ立ち上げメンバーで、僕がNode.jsを学び始めた時、彼がSocket.IOについて発表や啓蒙活動をしているのを見て、凄いやつがいるなと思ったのを覚えています。僕より4つぐらい年下なので、当時はすごく負けた感じがしました(笑)。
今はNode.jsに限らず色んなことをやっていて、今の日本でWebアプリについて彼以上に詳しい人はそういないんじゃないかな。すごく刺激を受けたし、考え方も影響されたので、彼の思考回路は覗いてみたいですね。
─3年後、ご自分の仕事脳はどう変わっていると思いますか?また、今後エンジニアとしてビジネスパーソンとしてどう進化を遂げていきたいですか?
難しい質問ですね。あんまり分からないというのが正直なところです(笑)。個人的には、ビジョナリーであること=優れたエンジニアの必須条件ではないと感じています。LINUXやGitを生み出したリーナス・トーバルスは、発明王エジソンと、エジソンと電流戦争を起こした天才発明家ニコラ・テスラについて、次のようなことを言っていました。
「テスラはビジョンを持ったすごいアイデアマンだけど、エジソンは凡俗で悪く言われることが多いし、ビジョナリーではないかもしれない。でも、実際に世界を変えたのはどちらだろう?」と。そしてリーナスは自身をテスラよりエジソンに近いと言い、「5カ年計画なんて持っていなくて、やっているのは地面を見て、目の前にある穴を落っこちる前にどうにかしたいと考えること。私はそういう人間なんだ」と語りました。
僕も3年5年先の未来より、「近々これをやりたいな」というような身近な目標を叶えていき、結果、会社が良くなったり、チームのメンバーが立派に育って社内外で活躍してくれるようになったら、すごく幸せですね。
─ありがとうございました。
「レバテックフリーランス」があなたのブレーンになります
フリーランスエンジニア向けエージェント「レバテックフリーランス」では、Node.jsを使った案件を複数ご用意しています。最新の業界動向や技術に詳しいスタッフが、そもそもフリーランスとは何か?というご説明から、業務内容や契約まわり、スキル、メンタル面まで、きめ細やかにサポート。時にブレーンとして相談役として、あなたのフリーランス活動を力強く支えます。
エンジニアのみなさん、フリーランスとしての第一歩をレバテックと一緒に踏み出してみませんか?ぜひお気軽にお問い合わせください。
※記事内容は、2017年4月末取材時点の情報を元にしています。
<参考>
TED「リーナス・トーバルズ Linuxの背後にある精神」
https://www.ted.com/talks/linus_torvalds_the_mind_behind_linux
フリーランス(個人事業主)とは、特定の企業・...