2024年1月末まで在籍していますが昨年12月に業務は終えていて、いまは有休消化期間中です。2010年から約14年間勤めてきた、自分の生き様そのものとも言えるクックパッドを離れるのには、表現しきれないほど大きく、複雑な思いがあります。 僕がこの14年間でやってきたことを振り返ってみます。
入社
クックパッドに入社した時は新卒3年目相当で、26歳でした。もともと料理と Ruby が好きで、当時まだ珍しかった Ruby on Rails でサービス開発をしているらしいという点や、当時からネットウォッチしていた @ryo_katsuma さんが所属していること、直属の上司の井原さんが転職したことが決め手になり、体当たりで飛び込みました。当時の僕はほとんど実績もなく、入れてもらえるかギリギリのところだったと思いますが、おそらく井原さんが頑張って交渉してくれたのだと思います。本当に感謝しています。このときのクックパッドはマザーズ上場3年目でエンジニア組織は十数名という規模でした。
若さもあって入社して何をするのかを一切気にしないまま入社に至ったのですが、渡された自分の名刺に「サービス開発エンジニア」と書かれているのを見てロールを知ったのを今でも覚えています。
入社初日に創業者直下のプロジェクトが始まるのを知り、誰かやらないかと言われて誰も手を挙げなかったのを見て、今日入社の成田です!やります!と言って参画したところ、それからの1ヶ月は会議室(通称タコ部屋)から出られず、同僚から大いに心配されました。今思えばこの時の創業者との開発体験が強烈なオンボーディングとなり、その後のクックパッド人生の礎になりました。
この当時のサービス開発の現場では、「この機能は本当に料理が楽しみになるか?」といった会話がエンジニアのあいだで日常的に行われていました。これは僕にとって衝撃でした。どうすればこの空気感が、会社が大きくなっても保ち続けられるのだろうか?どんな大企業でも、創業期はカオスで、エキサイティングな毎日だったはず。では多くの会社はどの時点で面白くなくなってしまうのだろうか?クックパッドに入社したとき、会社がまだ小さいからこそのこの「良さ」をスケールさせたい、それが大きい会社からきた僕の使命であると感じたのを覚えています。
開発基盤・インフラエンジニア時代
2010年当時、クックパッドではエンジニアの開発効率が課題になっていました。CIが遅かったりデプロイが難しかったりといった問題や、オンプレの不安定なストレージサーバに起因する問題、DBのスロークエリなどといった、バックエンドやインフラに起因する問題が多くありましたが、開発基盤やインフラ領域を専業とするエンジニアが手薄でなかなか改善の手が回らない状態でした。そういった背景で僕はユーザーフェイシングな開発ではなく、開発効率やサービスの安定性といったいわゆるDevOps(当時このワードが日本で流行り始めていました)領域に仕事をシフトしていきました。
特に印象深かった仕事は2011−2012頃のAWS移行とそれに伴うパフォーマンス最適化、また同時期に画像配信システムTofuを開発したことです。
現在ではAWSのようなクラウドでサーバを運用することは普通の選択肢になりましたが、2011年当時は「クラウドで本当に大丈夫なのか」といった声も国内では多かったです。何よりAWSの東京リージョンが開設されたのが2012年なので、それまでは日本からの最寄りのリージョンがシンガポールで、レイテンシも大きく選択肢にはなかなか挙がりにくかったのではないかと思います。物理サーバの調達や管理、ハードウェア故障の対応など、オンプレ特有の運用作業に少ないエンジニアで当たらなければならず、本質的な改善が難しい状態だったため、長期で考えると、少数精鋭のエンジニアでユーザの課題解決を行なっていく組織であろうとするとマネージドなインフラに移行していくべきという経営判断があり、AWSへの移行を行いました。東京リージョンの開設の直後にAWSへ移行できたため、先行事例として社外から多く参照されました。
オンプレ時代のDBはSSD付きのサーバで動かしていたのですが、当時のEC2にはまだmagneticディスクしかありませんでした。SSD前提で動いていたクエリが磁気ディスクに流れ込むとどうなるかというと…。移行直後はスロークエリまみれになり、レプリケーションは遅れまくり、毎日のピークタイムには危険な状況になりました。また、ActiveRecordにモンキーパッチを当てて無理やりread/write splittingしていた秘伝のコードにバグがあり、スロークエリが不用意にmasterに行ってしまったりして大変な事になっていました。このときには僕がインフラのパフォーマンス担当としてSQLのチューニングやモニタリングの整備などをしていきました。自分がサービス開発出身だったこともあり、UIの見せ方を工夫しながらDB負荷を下げるなど、複数スタックにまたがった改善を強みとしていました。この時代の経験から、MySQLやActiveRecordの知識が身につきました。
画像配信システムTofuの開発については、僕の代表作のひとつとなりました。かつてはユーザがレシピ等の画像をアップロードをした際に、大、中、小、などの数パターンのリサイズやクロップをしてオンプレのNFSストレージに格納して、さまざまな画面やデバイスから利用していました。たとえばレシピ画面のデザインを変えたくなったとしても、過去にアップロードされた数百万枚(当時)の画像をすべてリサイズするのは困難であり、サービス開発の制約になってしまっていました。また、NFSストレージが不安定で障害が多く発生していました。画像のリクエストがあった際に動的にリサイズすればいいのではないかと考え開発したのがTofuです。当時のクックパッドはまだオンプレで動いていましたが、AWS移行の機運が見え始めていた時期だったので、先行してTofuはAmazon S3をストレージとして採用し、たまたま前職で経験のあったApacheモジュールとして実装をしました。現在であればマネージドな画像リサイズのサービスの選択肢がありますが、当時は動的にリサイズをするなんて計算リソースやユーザ体験的に大丈夫なのか、という先入観があるなか、入念にチューニングやベンチマークを重ねてリリースにこぎ着けました。実はTofuの開発自体はそんなに大変じゃなかったのですが、Rails アプリケーションコードで画像を利用している箇所すべてをTofu化していく必要があり、完全置き換え完了までに1年以上かかった覚えがあります。あれはかなり地味でしんどかった。Tofuはそれから10年以上、今でも現役で稼働している、クックパッドでも最長老クラスのマイクロサービスになりました。これはS3が長期にわたって安定して動いているおかげで、泣きながらNFSの障害対応をしていた頃を思うと本当にありがたい。
インフラ部長時代
2014年頃には、当時所属していたインフラ部の部長になりました。多いときでも10人に満たない小さな部でしたが、キャリアにおいて初めてマネージャーになったのがこのときでした。当時のクックパッドは事業の多角化を進めていて、新規事業の立ち上げやM&Aによるサービスの巻き取りなどにともなって、インフラ部で管理するサービスが次々に増えていく時期でした。またクックパッド本体のトラフィックも増え続けていて、毎年のバレンタインデーには最高RPSを更新するというのが続いていました。そんななかで、DBを中心としたボトルネックを解消してスケーラビリティを確保したり、オペレーションの効率を上げたりといった課題に向き合いました。この時代にはまだDockerコンテナでの本番運用が一般的でなく、いわゆるInfra as Code、Immutable Infrastructureといった用語が流行していました。インフラ部ではsugawaraさんがridgepoleやroadworkerなどのIaCツールを立て続けに生み出したり、@ryot_a_raiが軽量プロビジョニングツールitamaeを生み出したりといった、優秀なメンバーが先進的なツールを生み出すことでインフラが日々進化していく、本当にエキサイティングな日々を過ごすことができました。
この時期は僕自身も開発は続けていて、アプリケーションサーバのオートスケールシステムや、リアルタイムモニタリングツールなどを開発していました。
インフラという仕事は裏方というイメージがあるかもしれませんが実はトラフィックを通じてユーザにかなり近い仕事で、リクエストの増減でユーザの生活を肌で感じることができました。「一行のログの向こうに一人のユーザがいる」というのがインフラ部伝統のフレーズで、僕の好きな考え方でした。僕は日々本番サーバのログを tail -f
しながらさまざまな気付きを得ていました。現代ではそんなことをするSREはなかなかいない(技術が発達してその必要がなくなった)ですが、生ログを眺めた日々が僕の原点になっている気がします。クックパッドのサービスが一時的に落ちても、ユーザが金銭的な損失を受けたり、危険にさらされたりといったことは考えにくいのですが、誰かにとって「おいしいごはんが食べられるはずだった」1回の食卓は、もしかしたらその後の人生を左右する特別な1回かもしれません。毎日の食卓の意思決定に携わるインフラは、そういった覚悟で取り組むべきと考えていました。
また、インフラは経営と伴走する仕事でもありました。新規事業を立ち上げる時やM&Aをするときなど、インフラに関して調査・検討する必要がその都度あるため、経営の動向を早い段階で知ることができていました。結果として、そういった環境でマネージャーをしていたことが後のキャリアに生きています。
執行役CTO
2016年には会社としてのクックパッドは大きな転換点を迎えることになります。社長であった穐田さんが退任して創業者である佐野さんの体制に戻り、それまでの生活領域への多角化を撤回し、家庭の料理の領域に回帰する方針となりました。この大きな方向転換に対して社内には混乱が起こりました。この時期にはさまざまなことがあり、人間として大きく成長できたと思います。この経営交代では経営層の多くが入れ替わり、2016年の11月に僕は執行役CTOになりました。 肩書としては執行役でしたが、現場上がりの僕が最初から経営者らしいことができたかというと全然そんなことはなく、経営会議や合宿では感情にまかせた青臭いことを言ったり、メンバーのことや目の前のばかりに目が行ったりして、いわゆる目線が低い状態だったと思います。この頃の僕は確かに尊大で、自信に満ちていて、自分ならもっとうまくやれると信じて疑いませんでした。ただ、経営メンバーのなかでは唯一のエンジニアであり、社歴もトップクラスであったため、人一倍、既存事業とユーザ、社員、とりわけエンジニア組織に対する思いは強かったのだと思います。
僕は「毎日の料理を楽しみにする」というミッションが本当に気に入っていて、このフレーズは天才的な発明だと思っていました。多角化をやめ、もう一度料理に集中するとなったときに、社会を巻き込む大きな混乱のなかで、失望や怒号が飛び交うなかで、ひとり正直ワクワクしてしまったのです。それってクックパッドじゃんと。クックパッドという会社は変な会社で、ミッションのためには、普通の会社では誤りとすらされる大胆な判断をできるし、普通の会社が普通にこなせるようなことは苦手だったりします。この偏りは愛おしく、時には働きにくさでもあるのですが、クックパッドが変な会社であるということは僕にとって、心から大切にしている価値なのです。
この価値観があったからこそ、事業や組織がうまくいってないときでも、胸を張って社内外に未来を語ることができたし、エンジニア採用活動を続けることができました。
僕を経営者として育ててくれたのは、次の社長となった岩田さんでした。至らない僕に根気強く機会を与えてくださったり、経営者としての考え方を指南してくださったりしました。長い時間、さまざまな悩みや経営判断を岩田さんと共にしました。CTO時代にやったこと、考えたことの多くは岩田さんの教えに影響を受けていて、岩田さんがいなければ経営者としての僕はなかったと思います。
僕が入社した2010年、クックパッドは「テクノロジーカンパニー」を自称していました。その当時はお世辞にも実体は伴っているとはいえなくて、毎日のようにサービスには障害が発生しているし、開発やデプロイ、運用にまつわる初歩的な技術的課題は山積みの状態でした。ではクックパッドのような事業会社におけるテクノロジーカンパニーとはなんなのか。それは要素技術の品質の差ではなく、技術を正しく理解した経営ができるかということに尽きるのだと思います。技術の正しい理解というのはつまり、その時代の技術のあるべきレバレッジを正しく引き出しきるということです。優秀なエンジニア達が素晴らしい開発をする、というのとは少し違う次元で、いま適切な技術投資とはなんなのかを徹底的に経営者が理解する必要があるということです。マイクロサービスやウェブフロントエンドだけではなく、モバイルや機械学習やセキュリティ、ブロックチェーンなども含んだあらゆる分野の動向を把握し続けるのは僕一人の能力ではとても無理ですし、できると思うべきでもないです。幸いにもクックパッドでは各分野の専門家を集めることができていたので、各技術に関しては彼らに判断を委譲し、僕は経営者として彼らと対話することでCTOの業務をおこなっていました。
エンジニア組織は2010年の入社時には十数名で、僕のCTO時代では最大で百名程度になりました。最大時には、CTOの僕に加えてエンジニア統括マネージャー(いわゆるVPoE相当職)を2名、テックリードを20名程度置き、組織運営を行いました。
執行役としては、エンジニア組織や技術のことだけではなくさまざまな領域に携わりました。広告事業の所管をしたり、スマートキッチン事業の立ち上げをしたり、人事部長をしたりと多岐に渡ります。
人事部長時代は特に印象に残る体験がいくつもありました。2021年の当時はコロナ禍であり、出社方針を作ったり、ワクチンの職域接種を手配したりもしました。また、そんななか恵比寿から横浜へのオフィス移転を決定し、移転に関するさまざまな人事系の意思決定や社内外へのメッセージ発信、社員へのコミュニケーションなどを担当しました。人事系のhard thingsもいくつも経験しました。人事部長時代には、社会人になって初めて精神状態に少し異常をきたしました。自分では元気にやれてるつもりだったのですが周囲からはお前大丈夫か?と心配されていました。このとき確かに僕は執行役として、CTOとして、人事部長として、期待された結果を出せないことばかりで責任を果たせておらず社員に申し訳が立たないと考えていました。もう頭を丸刈りにするしかないと思い立って、でも坊主は似合わないだろうなと思ってZOZOでニット帽を買って、朝起きたら坊主頭が寝てたら家族がびっくりするだろうと思っていったん妻に相談をしました。坊主は似合わないから金髪くらいにしときな、と妻に言われ、その後半年間くらい金髪になりました。やはり何かがおかしかったようで、なんやかんやあって一ヶ月の休みをいただくことになりました。2021年9月のことです。
その後ちゃんと回復できたのは、2021年の冬にイギリスとスペインのオフィスに出張にいったことがきっかけでした。イギリスのオフィスには後のCTOとなる星くん(@kani_b)がいて、彼は僕と同時期に入社してインフラをやってきた戦友です。そこでは二人で時間を作ってクックパッドのエンジニアとはなんなんだろうという議論をし、エンジニアマニフェストをまとめ上げました。
結局のところ僕はどんなCTOであったのか、CTOとして何を成し遂げたのかを振り返ると、至らなかったことも多岐に渡りますが、代表的な功績としては、クックパッドのエンジニアらしさの守護者だったのかなと思います。クックパッドってなんか優秀なエンジニアがいるらしいよ、という評判を耳にしたことがあるかもしれません。僕は6年間、エンジニア採用や組織運営を通して、必死でその評判を作っていました。
僕のCTO時代のエンジニア文化は、集団でひとつのゴール向かった開発をする組織力よりも、個人のとがった技芸を集めた集団にしようという意図でデザインしていました。一人一人の「面白い」と思う力、情熱を集めて、とがった人たちにそれぞれやりたいことに熱中してもらう。理想的なマネージャーの仕事は、そのとがった人達は好き勝手やっているだけなのに、そのエネルギーの向き先を上手く整えて結果として目標を達成している、といった状態をつくること。僕はずっとエンジニア統括マネージャーやテックリードと手分けをして、百名のエンジニアがやりたいことができているのかをチェックしていました。また、組織全体の熱量を上げていくためには、結局のところ採用活動であり、採用基準なのだと思います。僕は中途採用でも新卒採用でも、自分や今いる社員より優れた能力を何か一つでも持っていて、かつ情熱を持ち込める人を採用するように心がけました。自分より優れた人を採り、僕の仕事は彼らの活躍の邪魔をしないこと。邪魔をするものがあるのなら取り除くこと。彼らから学ぶこと。抜擢し、引き上げ、難しい課題に巻き込むこと。これらを意識して組織運営していくことで、若い世代からも次のリーダーがどんどん生まれていきました。これは「会社が大きくなっても初期の面白さをスケールさせる」ためのデザインでした。
僕のCTOとしての最後の仕事は、2022年の11月に開催したCookpad TechConf 2022でした。コロナ明け3年ぶりの開催であったため、過去のTechConfを見たことがないエンジニア・デザイナーも多くいました。そんななかトークを社内に公募すると、枠数に対して2−3倍のプロポーザルが集まったのは本当に嬉しかったです。みんなが主体的にイベントに取り組んでくれて、それぞれの事業課題、技術課題に関して生き生きと発表をしてくれました。懇親会では、参加者から「どうしたらうちの会社もクックパッドのようになれるんだろう?」という声が聞こえてきた時には泣きそうになりました。そうなんだよ、これがクックパッドなんだよ。いいでしょ?僕がやってきたすべてがここにあるな、と感じる最高のTechConfでした。
エンジニアに戻る
2022年末、CTOを後任の星くんに譲り、僕はマネージャーでもなく現場のエンジニアの一人になりました。CTOを6年間務めたことになります。僕がCTOになったとき、「CTOには賞味期限がある。僕が役に立たなくなったら降ろしてほしい」と社長の岩田さんにお願いしたほど、当初から引き際を意識していました。技術も、事業も、組織も、社会も、ずっと変化していくものなので、会社のフェーズや社内外の環境変化に合わせて適切な人材も変わるはずで、それは僕自身もいつかは適切ではなくなるだろうと当初から考えていました。6年間、うまくいかないことは沢山ありましたが、それらはとても難しい課題ばかりだったので、他の人がやるよりは僕の方が真剣に取り組めるはず、と信じて課題に向き合ってきました。それでも6年間の後半は、自分の限界がクックパッドの可能性の限界を作ってしまってるなと感じることが多くありました。これまでの課題で自分を絞り出し過ぎて、引き出しに何も残っておらず、新しい課題に対しても既存の打ち手しか思い浮かばず、それによって課題自体を軽視してしまうような感覚に陥りました。
かつて僕のCTOとしてのキャリアプランは、クックパッドを成功に導いたCTOになることでした。成功するまでやり続ければなれると信じていたからです。ですがクックパッドの成功について考えると、いまは僕ではない別のアイデンティティを持った人物がエンジニアをリードをした方が何かを変えられるかもしれない。僕が見えてないものを見てほしい、僕の意見と違う判断をしてほしい、という願いを込めて星くんにCTOを交代することにしたのでした。彼に交代したあと、なるべく僕の意見に影響されてほしくないので、引き継ぎや助言は最小限にとどめていました。
さて、2023年の1月から、僕は晴れていちエンジニアに戻ることができました。部下もおらず、いわゆるIndividual Contributorでした。会社としてはさっきまで経営者だった人を平社員にするのはさまざまな意味で面倒なのですが、メンバーも持ちたくないという僕のわがままを受け入れてくれた会社に感謝です。この時点でクックパッドには13年勤めていて、経営としての視座も、社内の信頼貯金もある状態で、いち開発者をするのはめちゃくちゃ楽しかったです。
CTOの責任とは、そのとき一番重要なところに飛び込んでいって、技術やエンジニア組織を使ってなんとかすることなのだと考えていました。クックパッドの一番重要なところは今も昔も常にプロダクトであり続けていると思っています。しかし僕はCTO時代にはプロダクトの外側に居続け、僕が直接できたことはエンジニアを送り込んだり評価したり仕組みを作ったりするといった間接的なことばかりで、僕自身はプロダクトの中に入ってものづくりに影響を及ぼすことはできてこず、それをずっともどかしく感じていました。CTOとしての最後の1年はエンジニアとしてのポジションを無理やり用意してもらって開発に足を突っ込んでみたものの、僕は経営課題に向き合いつつ足元のコードも書く、という立ち回りは全然できませんでした。なので、100%開発だけをしていてよい、というポジションになれたことはとてもワクワクしました。
6年の現場ブランクは果てしなく、現代のサービスは「名前も仕組みも知ってるけど自分で触ったことのない技術」の組み合わせで動いていました。ただ、やっていればいつかはできるようになるということも分かっているので、手を動かしながらキャッチアップしていきました。今さら学ぶことばかりで、少しずつできるようになっていくのが本当に楽しかったです。 最初の半年はクックパッドマートという生鮮ECの新規事業で、ハンディスキャナを使った倉庫管理システムを作ったり、流通基盤に関わる開発をしていました。ハードウェアも少しだけ触りました。残りの半年はクックパッド本体(レシピサービス)で、これまた初めて触るAndroidやiOSアプリの速度改善をしていました。KotlinやSwiftを覚えるところからだったので難しかったですが、周りのつよいエンジニアが根気強く助けてくれたのでなんとかいくつかの改善を出すことができました。開発の仕事はどれも楽しくて、「最近楽しそうにしてるね」とみんなに言ってもらえるようになりました。
CTO時代、クックパッドで一番かっこいい仕事はエンジニアである、と信じてエンジニア組織を作ってきました。その結果、新卒からベテランまで、僕が憧れ、尊敬するエンジニアたちの集団であり続けました。僕もそんなかっこいいエンジニアにもう一度なることができるだろうか。僕に教えてくれていたエンジニア達を技術面で追い越すことは、彼らが経験してきた時間を追い越せないのと同じで、もう無理なのではないか。だとしたら僕は一体何になれるんだろうか。何年も頭を悩ませてきた数々の経営課題から距離を置いたことで、今まで見て見ぬ振りをしてきたある問いが今もずっと頭にあり、26歳で入った会社で40歳を迎えた今、焦りに変わりつつあるのです。
「僕はもう一度なにかに卓越することはできるのだろうか。」
転職
CTO時代の6年間を経て、ついには会社と自分を切り離すのが難しいほどになっていました。会社で起こっていることは、自分の経営判断でなかったとしてもすべて自分の責任と重く捉えるようになっていました。自分のキャリア=クックパッドの成功と位置づけていたため、個としての自分のキャリアにはたいして興味を持っていませんでした。なのでCTOから降りることはなんともない、むしろ会社のためになるポジティブなことと捉えていました。ただ、降りてみて改めて、僕は自分の実力以上に「クックパッドの執行役CTO」という肩書で仕事をしてしまっていたことに気付かされました。この肩書があれば、この人は何かすごいのだろう、何か特別な能力があるのだろう、という先入観を持って接してもらえるし、初対面の相手からも敬意を払ってもらえることが多いです。
いちエンジニアとして過ごした2023年の後半は、正直にいうと、かつてあんなに没頭していたユーザや料理のことよりも、自分のことで頭がいっぱいになってしまっていました。やればやるほど、あの問いがずっと頭をリフレインしていて、それが怖くて仕方がないのです。そして自分がそうなってしまっていることが悔しいし、悲しい。
この14年間何度も、今すぐ逃げ出したいと考えることはありましたが、辞めたいという気持ちよりも圧倒的に、自分の愛する、自分自身ですらあるクックパッドで挑戦し続けたいという気持ちが勝っていたため、転職を検討したことはありませんでした。しかし2024年現在になってついに、違う環境でもっと学んで、もっと成長して、もっと強い自分になりたい。かつて解けなかった難しい課題にまた当たっても、その時までに強くなって今度こそ乗り越えたい。という欲望が、とうとう辞めたくない気持ちを上回ってしまいました。
おわりに
僕の14年ぶり2回目の転職は、IVRy(アイブリー)という、電話自動応答サービスのスタートアップです。CTO相当職ではなく、プリンシパルエンジニアという肩書をいただき、2月から再びいちエンジニアとして働きます。なぜIVRyに決めたのかの詳細はまた別の機会にまとめようと思います。
最後に、クックパッドは「毎日の料理を楽しみにする」という超長期のミッションに取り組む会社です。僕がいなくなっても、どれだけネガティブなニュースが出ても、このミッションがある限りあらゆる大胆な手を使って挑戦し続けるだろうことは疑いはありません。こうしてる今だって、ワクワクするような次の開発が続いています。クックパッドは今後も変な会社であり続けますし、そんな偉大な会社に携われたことは僕の人生の誇りです。14年間、本当にありがとうございました。
2024年1月26日 成田 一生 (mirakui)
参考
前回の転職: blog.mirakui.com