一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル
ソーシャルゲームブームを皮切りにしてエンジニア不足が叫ばれるなか、主婦向けのレシピサイトという一見エンジニアからほど遠いWebサービスに、なぜ一流のエンジニアが魅力を感じて次々と集まってくるのか。その秘訣とエンジニアのスキルセットについて、クックパッド技術部長の小川伸一郎氏に伺った。
重力に引かれるように、いいエンジニアが集まってくる
――なぜクックパッドには優秀なエンジニアが集まるのか、その秘訣をお聞きしたいと思います。まず、小川さんはどうしてクックパッドに入られたのでしょうか。
外から見た時には、Rubyの業界で知れ渡った、優秀で知名度の高いエンジニアが、数多く在籍していたから、ということがあります。2010年頃に、当時技術部長だった井原さん(編注:井原正博氏)が、優秀なエンジニアを多数採用するという方向に舵を切りました。その頃から、RubyのコミッターやRuby界隈で知名度のある優秀なエンジニアを、積極的に採用し始めました。ある程度のエンジニアが集まると、その重力に惹かれるようにエンジニアが集まってきました。
――優秀なエンジニアを採用しようという舵を切ったきっかけは何ですか。
当時のことは詳しくは知りませんが、2010年には第1回の24コンテスト*がありました。これは、アプリやWebサービスを、募集開始から24時間で作ってくださいというものです。高い開発力や技術力にシフトして、エンジニアがサービスや会社を主導していくという強い思いがあったのだと思います。高い技術力によっていいサービスが作れてこそ、ユーザーにいい価値を届けられるのだという思想でした。
※編注:正式名称は「開発コンテスト24」第1回の受賞作品ページはこちら
――ユーザーに使いやすいのがいいサービスですが、クックパッドのユーザーの多くはITに強い人ではないと思います。それと優れた技術者を集めるという方向性が、なんとなくしっくりきません。
ユーザーに価値ある物を届けるためには、「ちゃんとした物」が必要です。それは、しっかりした技術力がないと作れない可能性があります。「ちゃんとした」というのは、バグが少ないとか、少ない工数で実装できるとかです。当時は上場前でしたので、ユーザーを増やさなければいけないというフェーズでした。そのためには、どんどん新しいサービスを開発し、ユーザーからのフィードバックを迅速に取り込んで改修する必要がありました。その時に、バグだらけだったり、開発に1カ月、改修に2週間というようなスピードではユーザーが離れてしまいます。ユーザーを増やすためにも「ちゃんとした物」を作らなければならない、そのためにはしっかりした技術者を集めなければならない、ということだったと思います。
――ITに詳しくない人の方が無茶な使い方をしがちなので、そのためにバグが表面化するということもありそうです。
それはありますね。その場合でも、経験をつんだエンジニアであれば、「ここはまずそう」ということが直感で分かります。経験が浅いとそれに気づけませんので、問題があるまま世に出てしまい、うまく動かないといったことになります。エンジニアのレベルを上げることで、そういうことを少なくし、よりよい物を作っていこうということです。
当時は挑戦的なこともたくさんしていたので、エンジニアのリソースという面ではかなりたくさん必要でした。かといって、人数だけ増やせばいいわけではないという感覚は、当時も今もあります。だからこそ、優秀なエンジニアを採用してきました。いいエンジニアが集まると、「あそこは良さそうだ」ということで周りの関心が向いて、より集まってくるというサイクルになっています。
――開発者ブログも注目されていると思いますが、採用に影響していますか。
今年はけっこう開発者ブログを更新しています。あれは、中途採用にはそこまで影響しませんが、新卒採用には効いています。学生さんはよく見ているようで、「勉強になります」という話はよく聞きます。中途で来た人も見てはいるようで、「あれだけ更新するほどネタがあるんですね」という話は聞きます。
――優秀なエンジニアを積極的に採用しているということは、社内で育てるという方向性はあまりないのでしょうか。
そんなことはないです。優秀なエンジニアといっても定義が難しいですね。もちろん、技術的にハイスキルなエンジニアは有り難いですが、ユーザーにきちんと向き合ってサービスを作りたいという人も、それなりの数がいなければ困ります。僕の個人的な考えですが、エンジニアはエンジニア視点でユーザーに向き合うべきだし、ユーザー視点の人は別にいた方がいいでしょう。クックパッドでは、ディレクターとエンジニアがペアになってサービスを作ります。
ディレクターはエンジニアではないので、技術的なことはそれほど詳しいわけではない。一方、エンジニアはたいてい男性ですから、女性視点はあまり分からない。お互いが見るべきところや考えることが同じである必要はないと思います。お互いがお互いを尊重しあって議論しつつ、サービス作っていく必要があります。自社のサービスやビジネスモデルをよく分かったうえでそれを収益につなげるということ考える人は、やはり社内で育てなければならないだろうという感覚はあります。
また、クックパッドの社員はクックパッドのサービスに慣れすぎているので、そうではない人の意見は、やはりユーザーインタビューを繰り返す必要があります。その時に、エンジニアは論理的に考える人ですから、ユーザーの意見に論理的考察をきちんと入れて欲しい。それをしたうえでサービスを磨くと、ユーザーがより理解しやすいものになると考えています。そのためにも、ディレクターとエンジニアの二人がペアになって、同じ所を目指すけれど、違う観点から見続けて、議論しあってサービスを作っていってもらいたいと思っています。僕もそうやってきました。個人的にはそれが一番のやり方だと思っています。
できる人に囲まれていると、自分も成長できる
――エンジニアにとっての働きやすさについてはどう考えていますか。
先ほどの話と重なりますが、優秀なエンジニアが多いので、困ったことがあったらだいたい社内で解決することができます。社内にはいろいろな情報発信をしている人が多いので、そういう人に巷で話題になっていることを直接聞くことができます。そういう環境を社外に用意するのはけっこう大変です。今はコミュニケーションツールが発達していて、ツイッターで疑問を飛ばしたりもできますが、社内で直接疑問を解決できるのはエンジニアにはたまらない魅力です。
――専門分野に特化した人は、社内にいなくても業務委託や技術顧問という方法をとっている場合もありますね。
業務委託の人は、うちにも4人くらいいます。もちろん、社員になってフルコミットしてくれた方が有り難いですが、そうではない働き方をされる方もいますので。有名なエンジニアを技術顧問にするのは、いいエンジニアを集めるための採用目的が多いという話はよく聞きます。あとは、小さな会社でエンジニア組織ができあがる課程にあると、どういう開発フローを導入するのが自社に合っているかを、客観的な視点で語ってくれる人が必要ということもあると思います。技術顧問のあり方は、その2つだと言われていますね。うちには、今はそういう役職の人はいません。
――他に働きやすさに関わることはありますか。
始業が9時半なので、エンジニアは朝が弱い人が多いので、そこは働きやすくはないですね。僕自身も朝が弱くて、夜はいくらでも遅くまで起きていられるのですが、そうすると体調がどんどん悪くなり、一日ぼーっとしている。なので、朝きちんと起きてビジネスタイムに仕事をする方が、効率がいいと僕は考えています。クックパッドの利用のピークは昼と夕方ですから、ユーザーと近い感覚でいた方がいいとも思います。
あとは、支給されるPCやモニタはかなりハイスペックですし、一般的な開発環境は整っています。必要なソフトウェアも購入できますし、勉強会には会社の経費で行っていいとか、そのへんはどこの会社でも一緒だと思います。変わっているところでいえば、社内にキッチンがあります。食材は会社が用意してくれるので、そこで朝昼晩自炊するのも、やろうと思えば可能です。でもやはり働きやすさで一番大きいのは、優秀な人がいるので、その人が作り出す物とか考え出す物、発言することに対してみんなが触発される、それでみんながいい物作っていこう、自分ももっとああいうことをしようと思えることです。
――技術的に優秀なエンジニアでも、企業内で自社サービスに即したサービス寄りの考えを持てるかどうかはまた別問題ですよね。技術的に尖っているという面だけを見て憧れて入っても、社内でうまくいかないということはありますか。
うまくいかないことはないです。技術的に尖った人には尖った人なりのやるべきことはたくさんあります。サービス寄りだけでなく、サービスを開発するための環境を整えるという仕事もありますので、どんなタイプのエンジニアにもやる仕事はあります。
例えば、技術部では開発基盤グループといって、クックパッドのサービスを作るエンジニアの生産性を上げるために働くチームがあります。インフラ寄りの仕事ですね。よくあるのは、CI環境の構築をしたり、開発時の検証のための環境を用意して、高速化の工夫をするという仕事。そういう仕事には幅広い知見と洞察力が必要なので、技術的に尖った人にもやるべき仕事がたくさんあります。
――技術部がインフラ部分を担っているのですか。
インフラ部はまた別にあります。インフラ部と事業部の間に技術部がある、3階層になっているイメージです。サーバを見ているのがインフラ部で、技術部はRubyやMySQLのインストールといったセットアップを効率化する部分などを担っています。全部手動でセットアップするのは時間がかかるので、それをコマンド一発で自動化する仕組みを作ったり、デプロイを効率化したり。デプロイに関しては、開発基盤上で百台以上のサーバに一度にデプロイするような仕組みを作りました。以前は15分くらいかかっていたのが、6~7秒で終わるようになっています。そういう仕組みを新しく考えて実装するのが技術部の仕事です。インフラではなく、よりRails寄りというかコード寄り、アプリケーション寄りなので、インフラ部ではなく技術部で担当しています。
コミュニティ活動は仲間を見つける場
――社外のコミュニティで活動されている方が多いですが、会社として、外で活動していこうという方針があるのですか。
なるべく外で活動しましょうということは言っています。ただ、人前でしゃべるのが苦手という人もたくさんいるので、ノルマにしているわけではありません。なるべく外でしゃべりましょう。もしくは、週に一度テックミーティングという社内勉強会をやっているので、そこで発表してもらっています。コミュニティ活動とのバランスについては、しゃべる人は放っておいてもしゃべるので、そこはあまり気にしていません。勉強会がある時はぜひ行ってくださいと、個人的には思っています。なるべくそれが可能なようにしてもらっているところです。
今までのエンジニアはほとんど社員紹介で入っています。それがなぜうまくいっているかというと、エンジニアのことが一番分かるのはエンジニア。しかも勉強会で何回か会っていると、あの人はこういうことに興味を持っているということが分かってきます。お互い顔と名前が分かっていると、打ち解けて話ができて、人となりも分かる。この人ならうちで活躍できそうだというのが肌感で分かる。ということで、仲間を見つけるという観点からも、なるべくコミュニティ活動をしてもらった方がいいという話はしています。
また、クックパッドが取り組んでいないことについての知識は外に出ていかなければ得られません。クックパッドはRubyがベースの会社ですが、最近の流行でいうとScalaとかElixirといったものもあります。どこが実際に使っているのか、使っていて何か問題があるのかといったことは、そのコミュニティに参加していろいろ聞いてみるのがいいと考えています。
――あまり外に出て行くと、そこでスカウトされて人材流出という恐れもありませんか。
無くはないです。でも、その人がやりたいこととクックパッドが目指している方向がまったく乖離しているのに、無理矢理頑張って働いてもらうのはお互い不幸ですから。クックパッドは生活に即したサービスなので、エンタメ性はあまりありません。ゲームを作りたいという人に無理に働いてもらうのは、正しいかどうか。そういう意味で、ある程度の人材流出は仕方ありません。でも、いいエンジニアがたくさんいるので、うちよりいい所は、国内にはあまりないと思います。
広く浅い知識よりは、ひとつでも得意分野がある人材がいい
――エンジニアのスキルセット、いわゆるフルスタックエンジニア論についてどうお考えですか。
当然、いろいろな分野を見られる方がいいと思います。いいとは思いますが、カバーすべき範囲が年々拡大しているので、完全に全てを理解するのは、もう無理だと思います。iOSもAndroidも、下手したらIoTだとハードウェアの設計までしなければならない。インフラも、昔は物理サーバだけ見ていれば良かったけれど、今はクラウドを見なければならないし、クラウドということは仮想環境を見なければいけない。一方で、例えばPaaSを使えば、インフラについて考えなくてもしばらくは大丈夫です。そういう状況ですから、フルスタックで全てが浅い知識であるよりは、ひとつのことを深く知っている方が強いと、僕は思っています。
――社内にいろいろなエンジニアがいれば、補いあえるということもありますね。
それもあります。浅く広く知っている人が大量にいてもうまくいかない感じがしますが、この分野は誰よりも知っているというエンジニアが複数人いることで、お互い補いあえるし、その人がいることによって知見を学べたり、情報交換できます。いろいろなことを知っておいた方がいいには違いないけれど、何かひとつ強みがある方がいいでしょう。
――開発のイメージとして、アプリならiOSのエンジニアがいて、Androidのエンジニアがいて、Webのエンジニアがいる、というように分かれているのですか。
そうですね。だいたい分かれています。中には、AndroidとWebの両方とかiOSとWebの両方できる人もいますが、全部やってくださいということはありません。一人で何でもできる人はそんなにいないし、分散するよりはひとつのことに注力した方がいいという感覚はあります。
――これからエンジニアになろうとしている学生や就職先を探している若いエンジニアに向けて、どのようなエンジニアになって欲しいかというメッセージをお願いします。
こだわりを持って欲しいです。「開発できれば何でもいいです」みたいな人だと、あまりよくない。何がやりたいのかを、明確に意識として持って欲しいです。こだわりは何でもいいです。例えばエディターでも、ロボットでも、そのためにいま何をしているか説明できるなら、何でもいい。エンジニアというのは、何かしらこだわりがあるものです。学生さんや若手のエンジニアが道に迷っているなら、何がやりたくてエンジニアになったのか考えるといいと思います。その先にきっと答えがあるので、それを目指している人だと応援したくなるし、「うちでどう?」と声もかけやすいです。
――ありがとうございました。
2015年10月21日(水)に、Think IT主催の開発者向けセミナー「実践現場から学ぶモバイル開発の勘所とビジネスへのインパクト」を実施します、小川さんと同じ技術部で活躍されている藤氏が基調講演に登壇します。
2016年1月23日(土)に、テックライフ(開発者ブログ)の執筆者が、クックパッドでどのようなことをしているか発表するイベント「Cookpad TechConf 2016」が開催されます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 21言語67ヶ国に展開するレシピサービス、クックパッドグローバル化の裏側
- Serverspec誕生からインフラCIの今後までを開発者に聞いてみた
- クックパッド流「ユーザーファースト」の秘訣について聞いてみました
- 「前例がないことへの挑戦」ー まつもとゆきひろ氏インタビュー 15周年を迎えた「Ruby City MATSUEプロジェクト」のこれまでとこれから
- クックパッドの開発体制、モバイルアプリを取り巻く環境と課題解決―Think IT Mobile Developer Seminar 2015レポート
- Dockerを使いこなすには。Dockerはこの先どこへ向かうのか? Docker座談会(後編)
- 新卒2年目と11年目のエンジニアが、お互いの仕事を通して感じた「ギャップ」を振り返ってみた
- どのような企業がDevRelを行うべきなのか
- テスト駆動インフラ/インフラCIの潮流、Serverspecが果たす役割
- メルカリファンド等から4億円調達したジラフに、優秀な人材と未経験者が集まる理由|株式会社ジラフ麻生氏・佐々木氏