「開発の根幹はユーザーファーストの視点」
クックパッド株式会社
CTO兼 執行役 舘野 祐一

Pocket

トップ画像900p①

Q. 舘野様はいつごろ技術に出会われたのですか?

僕がプログラミングに興味を持ったのは、大学4年生のころです。研究室でプログラミングが必要になり、やり始めたのが最初のきっかけですね。ちょうどインターネットが普及してきたころで、自分が作ったソフトウェアを公開するとたくさんの人が使ってくれて、さらにオープンソースを通して、自分のソースコードをより良いものにしてくれる人もいたんです。僕はゲームばかりやっている内向的な学生だったんですが、プログラミングを通して一気に世界が広がった感じがしましたね。手を動かすだけで何でもできる万能感にも魅了され、プログラミングがどんどん楽しくなっていったんです。
実は当時、僕はすでに内定をいただいていました。しかし「プログラミングの仕事がしたい」という気持ちが膨らみ、入社1ヶ月で辞めてしまったんです。そして受託開発を行う株式会社ディノにアルバイトとして入り、エンジニアとして働くようになりました。
20代の頃は寝る時間以外はずっとプログラミングをしていた感じです。今でもプログラミングが楽しくて仕方ないんですよね。

 

Q. 当時、どんな開発をしていましたか?

趣味の範囲になりますが、いわゆる「ブログパーツ」の開発をしていましたね。ブログをカスタマイズして、いろいろな機能を追加できるというものです。自分が作ったものを何千人もの人が使ってくれることに、大きなやりがいを感じ、その後も一般のユーザーさんに「面白い」「楽しい」と感じてもらえるものを作ろうと、2006年に「はてなダイアリー」などを運営している株式会社はてなに転職しました。

 

Q. はてな時代はどういった形で技術に携わられたのですか?

最初の1~2年は、とにかくいろいろなサービスを作っていました。Webがまだまだ成熟していなかった時代なので、まさに試行錯誤でしたね。1~2日で開発してリリースし、ユーザーの反応を見てその先を考えるというサイクルを繰り返していました。
その後は「はてなブックマーク」を1からリニューアルするプロジェクトに、リードプログラマーとして参加しました。「はてなブックマーク」は当時の日本ではかなり大規模なサービスで、数百万人ものユーザーが使っていました。それを基盤から作り直すわけですから、開発者としてとてもいい経験になりましたね。以降は「はてなブックマーク」のマネージャーとして、チームのマネジメントにも携わりました。

IMG_7934

 

Q. その後、2010年にクックパッドに入社された経緯を教えてください。

はてなは素晴らしいサービスをたくさん提供していますが、「はてなダイアリー」や「はてなブックマーク」も含め、どれも「インターネットが好きな人」をターゲットにしているんです。新しいものが好きで、より便利なサービスを追求する層ですね。
一方、クックパッドが提供するサービスのユーザーは、主婦を中心とした一般の方々がほとんどです。僕がそれまで関わったことのなかった、生活に根付くサービスに特化しているんですよね。そこに強く興味を持ったことが、クックパッドに入社した1つ目の理由です。
もう1つは、開発環境です。はてながプログラミング言語にPerlを採用していたのに対し、クックパッドはRuby on Railsで開発を行っていました。僕はずっとRuby on Railsが大好きだったんですが、当時はごく一部の会社でしか使われていなかったんです。技術的にも自分がやりたいことができそうだという点が、転職の追い風になりました。

 

 Q. クックパッドに入社して、最初に手がけたのはどんなことでしたか?

入社した当初は、一言で言うと「やることがなかった」です(笑)入社したら「じゃあこれをお願いします」という話があるものだと思っていたんですが、「やることは自分で探してください」というスタンスだったんです。これには本当に驚きました。
その中でやることを探してみて、僕が気になったのは「情報共有ができていない」という点です。組織を強くするためには、1人ひとりがどんな仕事をして、どんなアウトプットを出しているのかをきちんと把握する必要があります。そこで僕は、情報共有をするための適切なツールを作ることにしました。
しかしいざ提案をしてみると、「なぜそれを作るの?」と問われたんです。それまで僕は自分の作りたいものを作ってきたので、かなり意外な展開でした。この背景にあったのは、徹底した「ユーザーファースト」の思考です。クックパッドは創業当時からユーザー目線のサービス開発を掲げており、「なぜユーザーのためにそれが必要なのか」を明確にする文化が社内全体に根付いていたんです。一般のユーザーさんに解りやすく価値を伝えるためにも、クックパッドの社員は「何のために」「誰のために」というのを解りやすい言葉で伝えられるよう、日々努力しています。そこで改めて「なぜ情報共有が必要なのか」「情報共有ツールがあると組織がどういう風に良くなるか」を説明すると、「それならどんどん作ってほしい」と賛成してもらえたんです。その時作った「Groupad」というブログ形式の情報共有ツールは、現在も社内全体で活用されています。

 

Q. ユーザー目線のサービスを作るために、常日頃から「解りやすさ」を徹底しているのですね。

そうですね。日々のコミュニケーションという身近なところからその意識が浸透していないと、いざユーザー向けのものづくりをするときに「解りやすさ」が抜け落ちてしまうんです。特にエンジニアは難しい専門用語を使ってしまいがちですが、それでは一般の人は理解できません。「誰に対しても解りやすいコミュニケーションをすることが、最終的にはユーザーのためになる」と考えています。
この「ユーザーファースト」の思考は、エンジニアとしてあるべき姿勢を教えてくれました。昔の僕も含め、エンジニアは言われたものを「何となく」作りがちです。しかし「何のために」「誰のために」作るのかという目的があると、より良いアウトプットが出せますし、エンジニアとしてのやりがいも大きくなります。
ですから今も、クックパッドのエンジニアには「何に役立つのか」「誰を幸せにできるのか」をしっかりと考えながら開発をしてもらっています。日々のコミュニケーションにおいても、技術の知識が深ければ、相手に伝わる言葉の範囲を推察できるはずです。そういうことの積み重ねが、本当にユーザーのことを考えたものづくりにつながるのではないでしょうか。

IMG_7975

 

Q. 「ユーザーファースト」の開発以外にも、御社のエンジニアに伝えていることはありますか?

エンジニアたちには「リーダーシップを持ってください」という話をしています。僕が考えるエンジニアのリーダーシップとは、技術に精通している立場からきちんと意見を表明し、サービスをより良くするための努力ができることです。いくら技術力に長けていても、言われた仕事をこなしているだけでは成果も出づらいですし、働く面白みもありません。マネジメントは得意・不得意があるので苦手な人はやらなくてもいいと思いますが、組織の一員として、自らリーダーシップを取れるようなエンジニアにはなってほしいですね。
僕も最初は「個人で成果を出せればいい」と考えていた節もあったんですが、クックパッドに入ってずいぶん意識が変わりました。「ユーザーファースト」のために組織全体に目を向けるようになり、「組織のボトルネックを発見し、それを技術で解決すること」が一エンジニアとしての使命だと考えるようになったんです。具体的には、当時のクックパッドにはなかったビッグデータの基盤作りなどに取り組みました。クックパッドでは「なぜそれが必要なのか」を解りやすく伝えて納得してもらえれば自由にやらせてもらえるので、自然とリーダーシップを持って提案、開発をするようになりましたね。

 

Q. では、クックパッド全体の新人教育についてはいかがでしょうか。

やはり軸にあるのは「ユーザーファースト」です。新卒研修では、オペレーションに近い部署で「ユーザーファースト」を学ぶ機会を設けています。例えば、「クックパッド」でレシピを作ってくださるユーザー専門のサポート部門などですね。より近い場所でユーザーの「声」を知ることが、「ユーザーファースト」の思考を身に付けるための第一歩だと考えています。
僕個人の考えでは、最初から「ユーザーファースト」に共感している必要はないと思うんです。もちろん共感した上で入社してくれるのが一番ですが、組織に文化がしっかりと定着していれば、働いているうちにその意識が身に付くはずです。それは私たちが教えてあげられることですから、初めの動機は「クックパッドはどんなことをしているんだろう」という純粋な興味でもいいと思うんですよね。クックパッドには「ユーザーファースト」がしっかりと根付いているので、新入社員にも自然に学んでもらえると思います。

 

Q. 舘野様は2014年にCTOに就任されたそうですが、その経緯をお聞かせください。

まず、技術部長としての成果を認めていただいたことが背景にあります。一エンジニアの努力で組織を良くするには限界を感じていたタイミングで、会社から技術部長の話をいただいたんです。「ぜひやらせてください」と即答し、エンジニアのマネジメントに取りかかりました。当時行ったのは、技術のスキルも含めたエンジニアの評価制度や、コードレビューなどの導入です。エンジニアにとってより良い環境を作り、スキルを向上させることが、組織全体の底上げにつながると考えました。
また、会社も組織力の強化に積極的で、グループ会社も含めて経営層、マネジメント層のポジションをどんどん広げており、それぞれ次のステップの役割を与えてもらえます。私の場合は、CTOでした。

IMG_7960

 

Q. クックパッドは海外展開もされているのですね。

はい。現在クックパッドは国内外に約20社のグループ会社を展開しており、スペイン語圏、アラビア語圏、インドネシア語圏、英語圏などでレシピサイトを運営しています。スペイン語圏だけでも月間770万人ものユーザーが使うサービスに成長しているので、これからは国ごとの「ユーザーファースト」をしっかりと考え、サービスに反映させなくてはいけません。
海外展開において僕がやるべきことは、クックパッドの技術をグループ会社に広げ、組織全体を強くすることです。まだまだプロフェッショナルなエンジニアが不足している会社もあるので、本社のエンジニアを派遣してサポートするなど、いろいろな取り組みを行っています。今後も「ユーザーファースト」の考え方やクックパッドの技術的な資産を海外に広めつつ、他社のシステム面やユーザーに対する姿勢を学び、視野を広げていきたいですね。

 

Q. CTOとして、社内ではどういった取り組みを行っていますか?

技術に関しては、「モバイルファースト」を打ち出したことが大きいと思います。クックパッドはずっとWebに力を入れてきた分、モバイル開発が弱かったんです。しかし、どこかのタイミングでモバイル開発のスキルを身に付けないと、時代に取り残されてしまいます。それに、Webとモバイル両方の知識があれば、「今どちらの技術を使えばいいのか」という局面でも適切な判断ができますよね。そこで2014年に一気に舵を切り、丸1年かけてモバイル開発を学んでもらったんです。これは急務だと感じたので、Webの開発を1~2ヶ月止めてでもやりました。
もう1つはまだ構想段階ですが、いわゆる「マイクロサービス化」です。1つひとつのサービスを小さく切り分けて、開発速度を上げようという考え方ですね。
例えば「クックパッド」は一枚岩の巨大なアプリケーションなので、一部分だけを改善しようとしても全体に影響が出てしまいます。その分開発に時間がかかるので、効率が悪いんですよね。以前のように「クックパッド」がメインであればそれも1つの正解ですが、今はサービスが分散している分、素早く開発を回さなくてはいけません。状況に応じてアーキテクチャを切り替えていくのも大事なことなので、社内全体で推進しています。

 

Q. 技術選定にも携わられているかと思いますが、現在の開発環境について教えてください。

やはり中心になっているのはRuby on Railsです。HTMLやJavaScriptを利用したWebアプリケーションでは、未だにRuby on Railsがもっとも生産性が高いと考えています。ただ、より良い技術が出てきたときは、臨機応変に新しいものを取り入れていきたいです。モバイル開発では、AndroidアプリはJava、iOSアプリはObjective-CかSwiftといった、主流の言語を使っていますね。
技術選定の際に念頭に置いているのは、「組織が何を求めているか」です。例えば1社しかないのとグループ会社を展開しているのとでは、適切なアーキテクチャが異なります。そこに合わせて選んでいけば、おのずと答えは出てくるものです。クックパッドの場合は、「ユーザーに必要な技術は何か」も重要なポイントですね。特定の技術にはこだわらず、ユーザーや組織にとってベストな技術を考えて選定しています。

IMG_8012

 

Q. クックパッドの今後の展望をお聞かせください。

技術的な面では、今後弊社が取り組もうとしているのは、いわゆる「機械学習」のアプローチです。機械学習というとAIや人工知能が一般的なイメージですが、サービスにも応用できる可能性を秘めています。専門機関でしっかり研究が進められている分野でもあるので、今は研究職の方々と協力しながら技術力の強化を進めているところです。機械学習を「食」に活かすことができれば新たな価値を提供できると思うので、力を入れていきたいですね。
実は、これはあるメンバーのアイディアなんです。僕自身は機械学習にはそれほど強くないのですが、メンバーから私の知識には無い提案がどんどん上がってくるんですよね。メンバー1人ひとりが「ユーザーファースト」のサービスを考えられている、いい例だと思います。

 

Q. 最後に、エンジニアとしての成功をめざす若者へのメッセージをお願いいたします。

若いときは「やりたいことをやればいい」というのが僕の考えです。Webはまだ日も浅く、移り変わりも激しい業界ですから、若いうちからキャリアプランを固める必要はないと思います。それに、若い人にやりたいことをやらせてあげられるかどうかは、会社側の責任なんですよね。自分がやりたいことができている人はいい環境にいると思うので、全力でやりきればいいと思います。
ただ、中にはエンジニアとしてやりたいことが分からない人もいると思います。その場合は、コンピューターサイエンスの基礎知識を学んでください。アルゴリズムとデータ構造、最低限の数学の知識などは、どんな道に進んでも役に立ちます。本当に自分がやりたいことが見付かるまで、しっかりと基礎固めをしておきましょう。
僕は今までやりたいことをひたすらやり続けてきましたが、後悔したことは一度もありません。技術をしっかり突き詰めれば、マネジメント側に立ったときにも判断に迷うことがなくなります。興味を持ったことは中途半端にせず、ぜひ自分の「強み」に変えてほしいですね。

Pocket