サムネイル画像
インタビュー

Four Keysの指標は常にHighをキープ!自ら生産性向上を追求し続けるFindy開発チームの取り組みとは?

企業ロゴ
ファインディ株式会社

登場人物
神谷さん
Fintech企業の業務基幹システムの開発に約10年間従事した後、株式会社ドリコムへ入社し、『ダービースタリオン マスターズ』など数々のヒットタイトルの開発に携わる。その後、新しい領域への挑戦のため株式会社ZOZOへ。ファッションコーディネートアプリ「WEAR」の開発部長を務める。2021年11月〜ファインディ株式会社へジョインし、2023年1月にVPoEに就任、現在に至る。

浜田さん
SIerで約9年間BtoBのWebアプリケーション開発やデータ分析基盤の開発・運用など様々な案件に携わったのち、株式会社カカクコムで食べログのWebサイト開発や、エンジニアリングマネージャーとしてチームビルディング、エンジニア採用などに携わる。2019年4月からHR tech系スタートアップにてプロダクト開発をフルスタックに担当しつつ、エンジニアリングマネージャーとしてチームビルディングや採用も担当。2022年5月〜現在、ファインディ株式会社で「Findy Team+」の開発をリード。

スケールのカギは「多様性を認める文化」

──神谷さんは今年VPoEに就任されました。はじめに、エンジニア組織の責任者としてのミッションを教えてください。
神谷 VPoEには採用、組織づくり、メンバーの成長、開発チームの可能性を最大化すること、さまざまなミッションがあります。
特に現在は「採用」を重視するフェーズにあり、実際にここ1年でチームの人数が倍増しています。
私が入社した1年前の当時は、ファインディのエンジニアチームは10人ほどでしたが、去年の間に13人ほど新たなメンバーが加わりました。
現在は20人を超えるチームとなり、チーム構成も大きく変わりました。1年前と比較すると、全く異なる組織になっている感覚があります。

──組織が大きく変化するなかで、今後どのようなエンジニアリング組織を目指そうとしていますか。
神谷 そうですね。現時点で、具体的かつ明確な理想像を用意しているわけではありません。
組織がスケールしたり、メンバーがジョインしたりするタイミングなど、そのフェーズや状況にあわせて、最高のチームの状態を目指したい。まずそれが率直な考えとしてあります。
去年のインタビュー記事のタイミングでは、組織をスケールするためにジュニアメンバーの育成に注力したいという話をさせてもらいました。実際に、現在は浜田さんを中心に、ジュニアメンバーの育成に取り組んでいる最中で、去年できなかったことを実現できているという手応えを感じています。
一方で、いまがベストかと言われると、決してそうではない。今後組織を拡大するにあたって、他にも必要な要素があると考えています。
たとえば、私は今後スケールするなかで、「多様性を認める文化」が重要だと考えています。
組織が成長していく過程で、「こういう人しか採用しない」という方針を決めてしまうと、採用もうまくいかないし、組織の可能性も狭まってしまう。
しかし、チームにさまざまな考えや価値観を持っている人がいれば、その多様性が新たな価値を生み出すこともあります。このような文化を育てることができれば、より多様な人材が集まり、組織の成長につながると考えています。
今後、よりスケールするために必要なことは、私自身を含め、チームメンバー全員がお互いの違いを認め、尊重し合うことができる文化を育てることです。このような環境を作り上げることで、より多様な人材がジョインし、新たな価値が生まれるという好循環が生まれるのだと思います。

デプロイやリードタイムのプロセスを徹底的に自動化

──エンジニア組織の課題については、どのように考えていますか。
神谷 直近の課題としては、引き続きオンボーディングへ注力したいと考えています。いかに早くオンボーディングできるかも含めて、よりメンバーが成長できる状況を整えたい。
また開発組織としては、Findy Team+を活用して、メンバーが自分のデータや評価を振り返られる機会をつくることで、良い状態を保つことができています。
組織全体の大きな課題感はありませんが、会社目線で言えば、職種間連携やPdM採用、企画数などは課題としてあります。こうした領域にエンジニアがいかに踏み込んでいけるか。よりビジネス側にコミットできるエンジニアを増やせるかが重要だと考えています。
浜田さんが、まさにビジネスとテクノロジーの両輪を理解するエンジニアではあるので、第一人者として背中で示してもらえることを期待しているところです。

──浜田さんは、Findy Team+開発チームのリーダーとして活躍されていますが、現在どのような取り組みを進めていますか。
浜田 そうですね。そもそもFindy Team+は、開発生産性の向上を支援するプロダクトになります。それを開発している開発チームが、「実は生産性がとても低いです」とは言えない。それだと説得力が皆無になるので、私たちのチーム自体も常に生産性を意識しながら開発に取り組んでいます。
開発パフォーマンスを計測する有名な指標の一つに、「*Four Keys」というものがあります。Findy Team+の開発チームは、その指標でデプロイ頻度は1日4回。変更のリードタイムは、24時間程度を保っています。
Four Keysにおける評価は「High」「Medium」「Low」の3つに大きく分けられますが、Highの水準をキープできているので、開発生産性が高い状態をつくることはできています。

*…GoogleのDevOps Research and Assessmentチームが提唱した、ソフトウェア開発チームのパフォーマンスを計測する4つの指標
https://cloud.google.com/blog/ja/products/gcp/using-the-four-keys-to-measure-your-devops-performance

──なぜ開発生産性が高い状態を生み出せているのでしょうか。
浜田 デプロイやリードタイムのプロセスを徹底的に自動化することを大切にしています。
たとえばデプロイでいうと、デプロイフローは決められた時間にリリース用のプルリクエストが作成されます。それが作成されたら通知が来て、内容を確認してマージボタンを押すだけです。またマージボタンを押すと、本番のリリースまで全自動で動いてくれます。1日4回のリリースになると、その度に手動でテストをするのは難しい。品質を保つためにも、テストの自動化は欠かさず行っています。
また自動テストのカバレッジも、いまバックエンドだと98%程度カバーできていて、ほとんど全コードが自動テストされている状態です。フロントエンドのカバレッジは70%ほどですが、Storybookを活用したビジュアルリグレッションテストやE2Eテストなどと組み合わせて品質を担保しています。
ほかにも継続的にリファクタリングを行って技術的負債を解消したり、Findy Team+を活用して開発パフォーマンスを可視化するなど、開発生産性を高く保つためにさまざまな取り組みを行っています。

新メンバーのオンボーディングやマネージャーの負荷軽減にも貢献

──実際に、Findy Team+をどのように活用しているのでしょうか。
浜田 そうですね。Findy Team+開発チームでは週に一度、開発パフォーマンスを振り返る時間があります。そこで現時点の開発組織の状態や、ボトルネックや改善点を見つけるなど、チームの状態を正しく認識するために活用しています。
たとえば実際にレビュー数やレビューにアサインされる人の偏りなどが可視化できるので、レビューの質の向上やレビュアーの分散などができます。
またプルリクエストの数が落ちてる人がいれば、ジュニアメンバーや他のメンバーのサポートなど開発以外の負荷がかかっている状態かもしれない。そうした個人の状態も定量化できるので、すぐに状況を検知し、対策も考えることができます。

──開発組織全体としては、どのようにFindy Team+を活用していますか。
神谷 まずファインディには毎週金曜日に週報を書く文化があります。そのなかで、Findy Team+を参考に、自分自身とチームの働き方を振り返る項目があるのですが、まずそこで週1度データを確認してもらいます。
チームが良い状況にあるのか。それとも何か課題があるのか。自分の数値が落ちてたとしたら、その理由は認識できているのか、できてないのか。成長の余白がある領域はどこかなど、それぞれメンバーが独自に振り返ることができます。
加えて、新しいメンバーの立ち上げにおいても、Findy Team+は活用できます。たとえば、昨年11月にジョインしたメンバーのデータがあります。下の図では、左側がメンバーの働き方、右側が既存メンバーの平均値を表しています。

この最初の5日間のデータを見ると、既存メンバーのパフォーマンスとそこまで離れてないものの、まだ少し改善の余地があることがわかります。
もちろん入社してすぐに他のメンバーと同じようにバリューを出すことはできなくて当たり前です。しかし、ここで重要なのはデータを見ながらお互いに振り返りができることです。
通常、オンボーディングはどうしても定性的なフィードバックになりがちですが、Findy Team+を使えば既存メンバーとの差をデータで可視化することができる。そのため具体的に改善点をFBすることができます。
実際にこの方は、他のエンジニアメンバーにアドバイスを求めるなど、具体的なアクションにつなげていました。そして次の1週間では、すでに平均値を上回るポイントが出てきた。すると私たちも、「この方はもう立ち上がった。問題ないね」と自信をもって言えます。
このようにオンボーディングの場面においても、メンバーの迅速な立ち上がりやマネジャーの負荷軽減に貢献しています。

良いチームは「プルリク数」も伸びている。認知負荷を下げ、心地よく開発に向き合える環境

──目標設定などにも活用できそうですね。
神谷 そうですね。たとえばFindy Team+のデータを参考に、プルリクの数やリードタイムなどを適切に設定することも可能です。
ただ、その数値を必ず達成しなければならないというわけではありません。あくまで自分が目指す働き方のために必要なアクションの認識を合わせることが大切です。
浜田 Findy Team+のデータを参考に、適切なアクションを決めるというのが、Findy Team+の良い使い方ですよね。
私自身もプルリクの作成数は、個人の振り返りでよく見ています。Findyに入社して3ヶ月で、プルリク数が1ヶ月目と比べて5倍になったことは純粋に驚きました。
入社当時は、単純に「プルリク数は増やせばいいというものではない」と思っていたのですが、実際に増やしてみると、認知負荷を低めに保ちながら、心地よく開発に向き合えている感覚があります。
神谷 チームの状態が良い時は、プルリク数は伸びている傾向にありますよね。
プルリク数があまり伸びない場合は、たとえば不具合改修やバグ対応、問い合わせ対応などに時間が取られている可能性もあり、シンプルに働き方や役割、開発プロセス全体を見直した方がよいかもしれない。
私自身、開発者体験を向上するために「結局、KPIとしてどの数値を見るべきか」という質問をよく受けるのですが、シンプルにプルリクの数を見ることをおすすめしています。
経験上、プルリク数が高く保たれてる状態は、チームの状況が良いという裏返しであることが多いです。プルリクの数が伸びていれば「チーム状態は良いね」と言えるし、数が少なければ「チーム状態に伸びしろがある」ともいえる。
そうしたチームの状況を正確に認識するためにも、Findy Team+は活用できるはずです。

求めるのは「好奇心」と「前向きさ」

──今後、Findy Team+の開発において取り組んでいきたい課題は何かありますか。
浜田 Findy Team+は2021年10月の正式版リリースから約1年半経ちました。去年からエンジニアも増え、必要な機能も一定揃ってきたため、今後は機能開発と並行して、アクセシビリティなどの非機能要件も強化していきたいと考えてます。
また、Findy Team+はコミット数やプルリク数などの開発アクティビティを蓄積していくプロダクトのため、今後グロースしていくにつれてデータ量がどんどん増えていくことが想定されます。
なので、大量データにも耐え得るようなバックエンドやインフラ構築にも力を入れていく予定です。

──ありがとうございます。最後に、開発者体験の向上を目指すファインディで働くメリットを教えていただけますか。
浜田 まず開発者体験の観点としては、エンジニアサイドに理解がある人が多い企業なので、調整業務などでストレスを抱える環境ではないです。
ほかにもファインディはエンジニア領域にフォーカスしたプロダクトを展開しているので、当事者である自分自身が一ユーザとして必要に感じる機能を開発することができます。
また様々な意思決定を現場に任せてくれるなど裁量が大きいので、自分の成長を実感する機会が多く、非常にやりがいを実感しやすい環境だと思います。

──どんなスキルやマインドセットを持ったメンバーと働きたいと考えていますか。
神谷 日々技術トレンドが移り変わるなか、そうした情報に感度が高く、好奇心が強い方だと嬉しいです。最近だとChatGPTをはじめ生成AIが盛り上がっていますが、そうした最新技術をすぐに試したい、プロダクトに実装したいと思える方はとてもマッチすると思います。
加えて、マインドセットとしてはバリューへの共感が全てだと思います。物事を前向きに捉えて、実行できる方には働きやすい環境なはずです。
私たちは、「挑戦するエンジニアプラットフォームをつくる」というビジョンを掲げていますが、このビジョンを実現できれば社会に貢献できると本気で考えるメンバーが集まる組織です。
ファインディのビジョンやバリュー、そして働き方や考え方などに少しでも興味を持っていただけた方は、ぜひ一度気軽にカジュアル面談でお話しできると嬉しく思います。