エンジニアとして経営をリードする。LIFULL CTO・長沢さんの挑戦
「あらゆるLIFEを、FULLに。」を掲げ、事業を通じて社会課題解決に取り組むLIFULL。エンジニアは、技術を磨き続けることで事業の可能性を切り拓き、プロダクトの持続的な成長と世の中の課題解決を牽引しています。今回は、約170名のエンジニアを束ねているCTOの長沢さんに、これまでのキャリアやLIFULLが目指すエンジニア組織の在り方、今後の展望について話を聞きました。
未知の領域に挑戦し、より大きな課題を解決したい。
——2008年にLIFULLに新卒で入社してから、現在までのキャリアを教えてください。
2008年時点では、社員数が約350名、うちエンジニアが約50名の会社でした。最初は、LIFULLの主力事業である「LIFULL HOME'S」のWebサイト構築からキャリアをスタートしました。当時社内では、不動産売却査定サービスという、不動産の売却を希望する個人のお客様向けのサービスの立ち上げに取り組んでおり、そのサイト開発を行いました。2年目にはiOSアプリの開発プロジェクト、4年目にはAPI基盤の刷新プロジェクトに携わり、その後、LIFULL HOME’SのインフラをオンプレミスからAWSに移行するプロジェクトなどを中心に担当しました。
10年目から現職であるCTOに就任し、その後は技術組織のマネジメント、情報システム部門の統括、技術系子会社のボードメンバーも務めています。
—―かなり幅広い経験を積まれていますね。
私は、解決されていない課題を発見し、どうすれば解決できるか考え、手を動かすことが大好きです。その過程で、自分にとって未知の技術領域に足を踏み入れて深めていくことも、私にとってすごく楽しいことなんです。
例えば、2009年、新卒2年目の終わりに参画したiOSアプリの開発プロジェクトは、当時iOSが世間に出始めたばかりだったこともあり、iPhoneを持ったことがなく、アプリが何かもよく知らない状態からのスタートでした。AWS移行プロジェクトの時も、バックエンドやインフラに精通していたわけではない中で、手を挙げて挑戦させてもらいました。
—―LIFULLにとって初のCTOに就任した背景を教えてください。
以前の私は、モノづくりに没頭したいタイプで、組織づくりにはあまり興味がありませんでした。ただ、より優れたプロダクトを開発しようとするためには、会社の課題やエンジニア組織が抱える課題を解決していくことが最も効果的なのではと考えるようになり、マネジメントのキャリアを選択しました。
入社9年目の時に、全社員の中から選抜されて参加した次世代リーダー育成プログラムでは、経営陣に対して「LIFULLのエンジニアがどうあるべきか」という方針を提案しました。そして翌年、その提案を実行する役割として、LIFULLの初代CTOに抜擢していただきました。エンジニアを代表し、技術の視点から経営上の意思決定をするプレッシャーは大きかったですが、挑戦に迷いはありませんでした。
エンジニアが、迷わず行動し成長できるように。
—―長沢さんがCTOに就任してから「LIFULLエンジニア像」を定めましたよね。どのような内容ですか?
「LIFULLエンジニア像」は、LIFULLで理想とするエンジニアの在り方を定めたものです。「エンジニアとして経営をリードする」と掲げています。
「エンジニアとして経営をリードする」というのは、エンジニアが新規事業を立ち上げたり、PLやBSを読めることを指しているわけではありません(もちろんそれが出来ることは素晴らしいことです)。「技術の力でビジネスの可能性を切り拓き、経営理念実現を先導する」という意味合いを込めています。
"LIFULLエンジニア像"の中には、私たちが追求する理想的なエンジニアの姿が詳細に描かれています。その内容や、それを組織全体にどのように浸透させているかについては、別のnoteで詳しく解説しています。ぜひご覧ください。
—―なぜ「LIFULLエンジニア像」を定めたのでしょうか?
LIFULLでは、社是「利他主義」や、品質基準「LIFULL Quality Standards」を通じて、我々が大切にする価値観や提供する価値を明確に示しています。しかし、”エンジニアとして”どのように行動すべきかについては、明確な基準を示していませんでした。
全社的な方針しかないまま組織が拡大すると、エンジニアとしての役割や行動基準は曖昧になってしまいます。例えば、新しいプロジェクトを発案したり、プロジェクトの細部に改善を加えたりすることには、ビジネス的な価値があります。ですが、エンジニアにとっての最大の価値発揮は、技術を磨き続けることで、プロダクトの持続的な成長や組織の長期的な発展に寄与することです。エンジニアには、ビジネス価値の発揮と技術力の両面における成長が求められます。
そこで、エンジニアマネージャーたちと議論して「LIFULLエンジニア像」を定義しました。それが、「エンジニアとして経営をリードする」です。これにより、エンジニアが迷ったときに立ち戻る場所ができ、一人ひとりが自律的に行動が出来るようになりました。
長期的な成長を見据え、アーキテクチャを刷新。開発生産性と開発者体験を飛躍的に向上
—―「エンジニアとして経営をリード」した具体的な事例を教えてください。
2021年に行った「LIFULL HOME’Sの売買物件詳細の刷新プロジェクト」です。これは本当に大きなチャレンジでした。
LIFULL HOME'Sのウェブサイトは、過去に一度リニューアルした後、ずっと運用してきました。その間、様々な改修が積み重ねられ、コードは複雑化し、開発スピードは下がってきていました。この状態のまま新機能の開発を進めることは、短期的によくても、中長期的には大きな課題になると危機感を感じていました。そこで、開発スピードを改善するために、アーキテクチャの刷新計画を立てました。言葉で言うと簡単ですが、実行には相当な困難が伴います。普通、アーキテクチャの刷新のような大規模なリファクタリングを行う際は、その時には新機能の開発の手が止まるため、一時的には事業成長を犠牲にしてしまうことがあります。そのバランスをとるのは非常に難しいことですが、事業状況を理解したうえでうまく両立させる計画を練り、提案しました。
提案はビジネスサイドにも受け入れられ、新しいアーキテクチャでLIFULL HOME'Sの売買の物件詳細の開発を進めることになりました。新しいアーキテクチャは、Kubernetes上の共通基盤に構築し、クリーンアーキテクチャを採用しました。開発言語もTypeScriptを使っています。そして、PCとスマートフォンのリポジトリも一つにまとめました。
開発は約1年後に完了し、開発生産性と開発者体験は大きく向上しました。PDCAサイクルもスムーズに回せるようになり、結果的に事業成長に貢献しやすくなりました。
一連の変化は、”エンジニアだからこそ”できた提案・事業貢献です。まさに、LIFULLエンジニア像である「エンジニアとして経営をリードする」の精神を体現した事例だと思っています。
職能別組織の導入とテックリードの選抜により、専門性の高い提案を可能に。
—―一般的にリファクタリングは、重要度は高いが緊急度が低いという特性上、どうしても後回しにされがちと言われます。LIFULL HOME'Sが、ここまで大規模なリファクタリングに踏み切れたのはどうしてでしょう?
事業部制組織から職能別組織へ、組織の再編を行ったことが大きかったと思います。
それまでのLIFULLでは事業部制組織を取り入れており、エンジニアは様々な事業部門に配属されていました。その中にはエンジニアが8名ほどいる部署もあれば1名だけの部署もありました。事業部制組織には、「事業単位での意思決定の迅速化」「事業単位の採算性の明確化」「事業ごとのナレッジ蓄積/深化」といったメリットがあります。
一方、職能別組織には「全社統一的な方針の浸透」「長期視点での戦術推進力向上」「人材の専門性向上/専門ナレッジ蓄積」などのメリットがあります。どちらの組織にも良し悪しがありますが、当時は職能別組織のメリットを積極的に取り入れたいと考え、組織を再編しました。
事業部ごとに在籍していたエンジニアをひとつの組織にまとめたうえで、数名のエンジニアを「テックリード」として選抜し、LIFULLの長期的な成長を見据えた技術的な提案をすることを依頼しました。すると、彼らは、エンジニアとしての立場から、開発者体験の改善に目をつけ、アーキテクチャの刷新計画を提案してくれました。
職能別組織のメリットをうまく取り入れ、専門的な立場からLIFULL HOME'Sの未来を考えることができたと思います。
エンジニアの活動を可視化し、昨年比115%の生産性向上を実現
—―リファクタリングは、他職種からその重要度を理解されにくいという難しさがあると思います。どのようにして、ビジネスサイドの理解を得たのでしょうか?
ポイントは「徹底的な見える化」です。
社内の他職種からの理解と協力を得るためには、職種問わず誰でもその重要度が分かる状態に可視化し、説明する必要があると考えています。
見える化したのは大きく3点です。
1つは「開発時間の見える化」。
LIFULLには、全社の制度である「日次採算制度」というものがあります。これは、社員が一日の中でどのような活動をしているかを記録し振り返ることで、各チーム・各個人での業務改善を促していくものです。エンジニアの場合は、「一日のうちにどれだけ開発に関わる時間があったか」を統一で把握することにしました。これにより、どの程度開発に集中できているのか、会議等の他のタスクに時間を取られすぎていないかを明らかにできるようになりました。他のタスクが多い場合は、時間の最適化を図り、プロダクトの開発に携わる時間を増やしていきました。
2つ目は「開発生産性の見える化」。
Githubのデータを活用して、一人あたりのプルリクエスト数を「開発生産性」と定義しました。そして、各チームごとの課題を捉え、改善に動きました。例えば、あるチームは大規模な変更を一度に試みる傾向があり、その結果ソースコードのレビューや修正に時間がかかっているケースがありました。他にも、レビュー開始までに時間がかかりすぎているチームや、他部門からの問い合わせが多く開発時間が短すぎるチームなども見受けられました。「開発生産性」を全体で統一して数値化したうえで、課題や原因についてはチームごとに捉えたことで、的確な改善ができたと思います。結果的には、昨年比で115%もの生産性向上を実現することができました。
3つ目は「ソースコードの複雑性の見える化」
各プロダクトのソースコードの複雑性を数値で示すスコアを取得するようにしました。このスコアが高いということは、そのソースコードの理解や変更が難しいということを意味します。
さらに、2つ目の「開発生産性」と、3つ目の「ソースコードの複雑性」には関係性があることを明らかにすることができました。つまり、ソースコードの複雑度が上がると、生産性が低下していくということです。これはまさに「エンジニアにとって当たり前」のことですが、他の職種からはわかりにくいことです。
このように、状態を可視化し各種指標を組み合わせていくことで、「リファクタリングしたほうがいい」などエンジニアの感覚ベースで話されることが多かった話を、「事業にとっていかに中長期的に重要なことなのか」を説得力持って説明出来るようになりました。
自分と組織に革進を生み、より良い未来をつくるエンジニア組織へ。
—―LIFULLで活躍しているエンジニアはどんな人ですか?
共通する部分は大きく2つです。
1つは、モノづくりの目的を考え続けられる人です。いくら優れた技術を持っていても、目的がずれると、ユーザーへの提供価値がずれたり過剰になったりしてしまいます。エンジニアとして活躍したいなら、技術の研鑽の手を抜かないことは当然の上で、「これは誰のどんな課題を解決するためにつくるのか」という目的を考え続けることが重要です。
もう1つは「自ら動き、自ら変える」人です。大小問わず、気づいた課題を放置せず、解決のための行動をとることが大事です。LIFULLは、年次関係なく、課題提起した人にチャンスが回ってくる会社です。それで成果が出ると、更にチャレンジングな仕事を任されるようになり、良い成長ループを描けます。
—―LIFULLのエンジニアとしてのキャリアを積む醍醐味は何だと思いますか?
自分の技術や専門性を使って世の中をより良くできることです。LIFULLほど一貫して社会課題解決に取り組み、メンバー1人1人までビジョンが浸透している会社は他に知りません。世の中の流れや課題を捉える目はこれからのエンジニアに必要なことだと思いますし、それを養う場としてのLIFULLは非常に良い環境だと思います。
—―今後、どのようなエンジニア組織を作っていきたいですか?
LIFULLのエンジニア組織は、日々変化する世界とともに自身も進化し続けるべく、絶えず新しい挑戦を追求しています。
2023年3月、私たちは2拠点目となる海外開発拠点を設けました。これは、日本だけでなく国外でも最高の仲間を集めるためです。しかしこの活動はまだ始まったばかり。将来的には、これらの海外拠点との連携を深め、人材交流を通じて、グローバルチームでの開発をしていきたいと考えています。
また、新たに生成AIプロダクトの開発にも挑戦しています。
例えば、2023年4月には、OpenAI社が提供するChatGPTの技術を活用した、LINEでいつでも住み替え相談ができるサービス「AIホームズくんBETA LINE版」のパイロット版を提供開始しました。ChatGPTの技術の取り入れは、国内不動産ポータルサイトで初となります(※自社調べ/2023年4月27日時点)。また、2023年6月には、ChatGPT向けプラグインの提供を始めました。自然な会話を通じて希望条件に最適な物件を探したり、街の特徴・評価や家賃相場などの情報を得たりすることができます。
このように、最新の技術をいち早く取り入れ、今までにない先進的な価値提供を実現することを目指しています。生成AIのような新技術はまだまだ未知数な面が多く、その可能性を最大限に引き出すためには、私たちがエンジニアとしての深い理解と技術力をさらに磨いていく必要があります。しっかりとした技術力を身に着けながら、組織的にもプロダクト的にも新しい挑戦を繰り返していきたいです。
LIFULLは「あらゆるLIFEを、FULLに。」を目指しており、私たちはエンジニアとしてそれをリードする存在です。目指す姿と比較すると、まだまだ道半ばです。それぞれのエンジニアが自己変革を遂げることで、組織全体の変革をもたらし、より良い未来を創造していく。それが、私たちが理想とするLIFULLのエンジニア組織です。
――最後に、就活・転職活動中のエンジニアの方々や、LIFULLに興味を持っている方にメッセージをお願いします。
技術力をつけるだけでは満足できず、誰のどんな課題を解決するのかを大事にしたい方。是非一度、LIFULLの話を聞きに来てください。LIFULLには、世の中の不を技術で解消したい仲間が集まっています。その本気度を感じ取っていただければと思います。
参考情報
◇LIFULL採用サイト
◇LIFULL Creators Blog