執行役員CTO(最高技術責任者)
吉川 崇倫 -Takamichi Yoshikawa-
2008年株式会社サイバーエージェントに入社。アメーバブログや共通基盤システムの開発に従事。2012年クックパッド株式会社に入社。決済や認証などの共通基盤をはじめとした開発基盤全般に携わる。
サイバーエージェント、クックパッドで活躍できたのは全体を見る視点
――これまでの経歴を教えてください。
大学卒業後、2008年に株式会社サイバーエージェントへ専門職採用第一期生として入社しました。最初はアメーバブログの開発に携わりまして、サービス(フロント)からバックエンドまで一通りやっていましたね。
その後、マネージャーに抜擢され、複数のチームを見るようになりました。当時すでにブログをはじめさまざまなサービスごとにシステムが分離されたアーキテクチャになっており、それらが共通して利用する基盤や相互に連携するための基盤が必要だったのですが、専任のチームがありませんでした。
そこで社内で自分でエンジニアを集めて、基盤チームを立ち上げました。複数のサービスで使える共通基盤を作って、認証まわりなども整えました。
そして、2012年にクックパッドへ転職しました。
そのきっかけとなったのが、海外のカンファレンスに参加したことでした。そこには、AmazonやTwitter、Netflixなど、著名サービスを作っているシリコンバレーの企業が登壇していたのですが、それを見てカルチャーショックを受けました。
アメーバも当時すでに国内ではかなりのトラフィック規模になっており、技術的にもいろいろな取組みを行っていました。しかしNetflixやAmazonの取り組みは非常に先進的で、Webのアーキテクチャをある程度把握できているつもりになっていた自分に焦りを感じました。
そう考えたときに、1つのプロダクトにじっくり腰を据えて、技術的なチャレンジができる環境に身を置きたいと考えました。
まさに、当時のクックパッドは著名エンジニアが集まってきていて、国内の他の企業がやっていないような技術を取り入れていました。おもしろい、と思い入社しました。
――クックパッドではどのような経験をされたのですか?
入社後はまず、バラバラに実装されていた決済機能を共通基盤として統合し、社内共通で使えるようにしました。開発基盤チームに所属していたので、決済以外の基盤機能やテスト環境の整備といったところにも手を広げていき、全体的なアーキテクチャも見るようになっていって、2015年にグループ長として開発基盤全体を見るようになっていきました。
――クックパッドの経験を通して、どのようなことを学びましたか?
クックパッドで特に感じたのは、データモデルが多く、中のロジックがとにかく複雑だということです。ゲームやソーシャルメディアなどは更新・参照ともに非常に激しいトラフィックを捌かなければいけないのですが、そういった難しさとは別種の難しさがありました。「料理」のようにかなり生活に密着した領域ならではの複雑なロジックをいかにスケールさせていくか、というのは技術的にも非常にやりがいのあるテーマだったと思っています。
――優秀なエンジニアが多くいるなかで、吉川さんが活躍できた要因は何だと思いますか?
僕はサイバーエージェント時代も含め、かなり色々なシステムに触ってきたこともあり、全体を見て設計することに強いのかなと思います。
例えば、特定のデータベースのスペシャリストがいたとしても、データベースだけで動いているわけじゃない。業務的ロジックやビジネス的要求をふまえて、必要な技術を考えていくようなことができたからだと思います。
出発点は、自分自身が家探しで感じた疑問
――オウチーノのCTOになろうと思ったきっかけは?
きっかけは本当に単純で、ここ半年から1年で、自分自身が家を探し始めたんです。いま住んでいる場所が気に入って、住宅街なので買おうかな、と。
ただ、情報が色々あってよく分からない。新築がいいとか、中古がいいとか、賃貸がいいとか、結局どれがいいのかもよく分からない。 しかも、周りにも同じように悩んでいる人がすごく多かったんです。1年くらい悩んでいる人もいて。
なんで、みんなこんなに悩んでいるんだろう。なんで解決できていないんだろう。というのが最初の出発点でした。
また、クックパッドの経験を通して、生活に密着している領域は難しく、技術的にやりがいがあると感じていました。
そんな時に、オウチーノがいまだに情報の不平等さが残る不動産業界で、ユーザーファーストの目線に立ってサービスを設計したいという話を聞き、感銘を受けました。やりがいがあるな、ミッション的にすごくいいな、と。
実際に家を購入する際には、地域や医療、教育、税金など、ものすごくたくさんの情報が必要になります。
クックパッドで、レシピ1つとっても、ものすごく複雑なロジックを色々やらなきゃいけなかったのに、それ以上に色々なドメインの様々なデータを結合して、瞬時に抽出して、適切なアドバイスをするって、ものすごいバックエンドが必要だろうと。
そういうふうにプロダクトが高い技術を要求しているというのは、やはりやりがいがあります。
いくらすごい技術があっても、プロダクトやビジネスがそれを要求していなければ空回りになってしまう場合もあります。
プロダクトがすごく高い技術を要求しているということは、自分自身にも、そこに集まるエンジニアにも様々な技術が要求されます。ということは、エンジニアにとって非常に面白い環境が作れるのではないかと思いました。 そのように、プロダクトの要求と、エンジニアにとっての技術的なやりがいが一致して良いプロダクトを作っていけるのは理想だなと。
オウチーノがやろうとしていることは簡単ではないかもしれません。しかし、経営陣がよく知っている方たちばかりで、このメンバーがいるならやれるだろうと思っています。
また、すでにユーザーがいて過去の負債を含めて多くの課題を抱えている、というのはゼロから作るより大変かもしれませんが、だからこそエンジニア魂に火がついています(笑)
ユーザーの家探しに寄り添えるようなサービスを
――オウチーノでは、どのようなことをやりたいと考えていますか?
自分自身が家探しをしてみて思ったのが、「分からなすぎて、何が分からないのか分からない」ということでした。自分が住んだことのないエリアはよく知らないですし、税金がどうなるのか、頭金はどうなるのか、もまったく分かりませんでした。
また、ネットなどで調べられる情報も限界があり、結局自分の足で見に行く羽目になったりします。
自分のニーズにマッチする物件があれば、通知してくれればいいし、全然知らない地域だけど自分に合っている物件ならレコメンドしてくれたらいいし、自分が良さそうと思っていても「合わない」と言ってくれる機能があってもいい。
そういう、技術的に解決できそうな部分はしっかりと整備したいですね。
ユーザーのニーズにマッチする情報を提供するためには、そもそもマッチするかどうかを判断しなければいけません。先程も触れましたが、家を決めるときの判断基準は本当に多岐にわたります。そういったドメインの異なる大量のデータをストックし、かつ瞬時に組み合わせて取り出せなければならない。
またデータだけあってもだめで、それを適切にフィルターする必要もあります。機械学習を使うアプローチもあるかもしれませんし、コミュニティというアプローチもあるかもしれません。そういった複雑な機能を継続して改善していけるような設計も必要です。
UIの面でも、専門的な情報を並べるだけではなく、初めて家を検討するユーザーでも悩まないようなものが必要です。また、1回検索して終わりというようなものではないので、ユーザーの家探しに寄り添えるようなものができるといいなと思います。
そこに至るまでにはステップを踏む必要があると思っているので、まずは分断されているシステム、データベースを統合して、1つのアプリケーションにします。
次のフェーズでフロントエンドとバックエンドの言語を分けて、再利用できるような形で切り出します。最初はRuby on Railsで集約しますが、その後バックエンドで違う言語を入れようと思っています。
なぜかというと、フロントは柔軟なUXを提供し、裏では色々な業務ドメインのデータをカチっと扱いたいから。性質の違うものに対して、性質の違う技術を導入していきます。
エンジニアに大事なのは、好奇心と責任感
――吉川さんが考える「エンジニアにとって大事なこと」は何ですか?
1つは、好奇心ですね。新しいものがでたら触ってみる、どうしてこうなっているんだろうと調べてみること。
もう1つは、責任感です。自分が作っているものが、どう使われるかをちゃんと考えること。どうしたらユーザーにとって使いやすいか、ユーザーはどういうところに困っているか、そのエラーはなぜ起きたのか、などまでちゃんと見て、そこに責任を持つことが大切ですね。
――吉川さんが一緒に働くエンジニアに求めることは何ですか?
考えること、想像することです。なぜそれを作っているのか、なんのために作っているのか、これがなかったらどういう影響があるのか、を想像してほしいですね。
例えば、これがほしいと言われて1~2ヶ月かけて作るが、実際求められていたのは全然違う物で、しかもそれは既に世の中あって、なんだったんだ、というのがよくあります。これは、依頼が来たからといって何も考えずに作ってしまうから起きてしまうことですよね。
――どんな人がオウチーノに向いていると思いますか?
初期では、古いものを直すことに抵抗がない人、どんどん新しいものにしていくという気概がある人、ですね。
あとは、全体を意識してほしいです。事業目標はどうなっているのか、サービス開発チームはどこを向いているのか、インフラチームはどこを向いているのか。
それを「関係ない」とするのではなく、お互いがいて成り立っている、という意識を持てる人がいいですね。
向いている方向が同じであれば、想いは一致していなくていいと思っています。みんな同じ思想じゃなくて、むしろいろいろな目線があった方がいいですね。
――この記事を読んでいるエンジニアの方々へ、一言お願いします!
家は、生涯でもすごく大きな買い物になります。ずっと賃貸暮らしだったとしても、ものすごく大きな出費ですよね。
そういった領域こそ、トライすべきところだと思っています。多岐にわたる技術を集約して、社会を変えるようなことをやってきましょう!