Findy Tech Blogをはじめました!

こんにちは!Findy CTOの佐藤(@ma3tk)です。

本日からFindyでテックブログを始めることにしました。Findyは「挑戦するエンジニアのプラットフォームをつくる」というビジョンを掲げていますが、昨年様々な方とお話したり面談させていただく中で、Findyの開発組織の良さを伝えきれていないという課題に気づきました。

Findyの開発組織は、カジュアル面談などを通じて知っていただくと「とても面白い」と言っていただけるのですが、その面白さを事前にお伝えできていないことがありました。今回のテックブログスタートがその課題を解決するための一歩になればと思い開始しました。

初回は、大事にしていることと開発ポリシーの観点からFindyの開発組織の紹介をしたいと思います。

Findyの開発組織で一番大事にしていることは5つのバリュー

Findyの開発組織は、次の5つのバリューを大事にしています。

前向き、誠実、チームワーク、スピード、No.1

Findyの5つのバリューは社内にいるメンバーが必ず意識するものになっています。

例えば、次のような形で意識しています。

  • 前向き…クソコードと呼ばずに「伸びしろ」と呼ぶ。些細な言葉遣いでも前向きな言葉を選ぶことで組織全体の雰囲気を良くする
  • 誠実…顧客に対しての向き合い方はもちろん、社内のメンバー間でのコミュニケーションもサービスに対しても誠実であり続ける
  • チームワーク…個人の成果以上にチームで良い取り組みを行う。チームや職種の垣根を超えて協力し合うことを大事にする
  • スピード…スタートアップだからこそスピード感を持って取り組む。技術にスピードは必要であり、技術の進化に常に追従し続ける
  • No.1…No.2を目指してもNo.1にはなれない。常にNo.1を目指すことで、自分たちの成長を促進する

もちろんこれ以外にも様々な観点で5つのバリューを体現することが大事です。

開発ポリシー

バリューを体現するだけではなく、僕らFindyの開発組織としての技術に対する考え方もあります。

  • 技術はモダンが当たり前
  • 爆速顧客価値提供
  • エンジニアがターゲットユーザー

今までこの3つを大事にしながら開発を続けてきました。

※今後組織の状況などに合わせて変わる可能性もあります。

1. 技術はモダンが当たり前

最近では多くのスタートアップがモダンな技術や環境を構築していることも珍しくはないですが、Findyもなるべく最新の技術に追従しながら開発を進めています。GitHub Copilot、TypeScript、Nx、Ruby on Rails、GraphQL、Terraformなど様々な技術を活用しています(執筆時現在)。

例えば各種ライブラリやフレームワークに関してはほぼすべてのプロダクトで最新バージョンを利用しています。一部最新バージョンに追従できないものは、ライブラリの最新バージョン対応ができていないなどの依存関係ですぐにアップデートが難しいためです。

ただ、多くの場合dependabotを活用し最新のバージョンにアップデートをすぐ実現できる状態にしています。これは、ユニットテストを充実化させ、プロジェクトによってはテストカバレッジ95%強、そしてカバレッジだけではなくテストの内容もバグが発生しにくいような意図を持った守れるテストになっているかどうかを確認しています。

また、CI/CDも整備しており、テストが通らないとマージできないようにしています。これにより、予期せぬバグやデグレなどを検知でき、リリース後のトラブルを大きく減らせています。守れるテストを書き続け、CI/CD環境を整備することで新しいアップデートがあってもテストで守り「これをマージしたらなにが起こるかわからない」という状況を減らす動きができています。

そのため、強気で「(アップデート内容を確認した上で)テストが通っていれば即マージ」ということができる環境になっています。

どんなプログラミング言語、フレームワーク、ライブラリを使うにせよ、最新のバージョンに追従することでセキュリティと開発効率の両方の観点でセキュアかつ高品質な状態を保てています。

2. 爆速顧客価値提供

モダンな技術を活用しているからこそ、僕らが提供する技術は常に爆速で、そして顧客に価値を届けるものであるべきだと考えています。

先ほど述べたように、Findyはテストカバレッジの高さとCI/CD環境が揃っている環境です。顧客に価値を提供してそれが万が一バグを含むものであったとしても、すぐに修正ができる状態です。また、ほぼすべてのプロダクトでフロントエンドとバックエンド両方で毎日リリース作業を行うため、リリース作業の自動化も行えるようにCI/CDを整備してきました。

そして新機能開発や機能改修などの振り返りにおいても、自分たちがFindy Team+を活用し、開発サイクル上の課題がある部分を特定しその問題を対処し解決することで、Findyの開発組織において効率の良い開発スタイルを継続できています。

Findyのプルリク数とリードタイムの変化

例えば2020年1月のFindyの開発組織においては、プルリクを作ってからマージするまでに3〜7日(70時間〜150時間)ほどかかっていましたが、2024年2月現在では、5.2時間と13.4〜28.8倍ほど高速化できています。

Findyの開発者数と一人あたりのプルリク作成数

また、一人あたりのプルリク量も、1日0.7件から4.7件と6.7倍ほど増加しています。開発人員も3.3人から26.6人と8倍の人数規模に増えました。トータルで1日2.8件ほどしか出ていなかったプルリク量も、1日129件と46倍に増加しています。

通常、人数が増えると生産性は低下傾向にあります。コミュニケーションコストが大きくなり、調整コストがかかるためです。しかし、Findyの開発組織は人が増えてもうまく回るようなオンボーディング施策や、コミュニケーションコストを下げるような施策も増やし、開発生産性を高め続けてきました。

その結果、新しい機能を追加するスピード、なにかが起こった時に切り戻すスピードが高い状態を実現でき、顧客価値を追求できるようになりました。また、それだけではなくGitHub Copilotもエンジニア希望者全員に貸与している状況であったり、なるべく開発生産性を高め、エンジニアであってもKPIやKGIなどの結果指標に貢献できるような動き方を常に模索し続けています。

3. エンジニアがターゲットユーザー

Findyの開発組織は開発生産性が高い状態だからこそ、「どんな成果を出すべきなのか」を考えることができ、PdMとの連携が取りやすい状況になってきています。

我々Findyは「挑戦するエンジニアのプラットフォームをつくる」というビジョンの元、エンジニアが挑戦しやすい環境をつくり、多くのエンジニアの方にとって横で伴走できるような存在としてあり続けたいと思っています。

エンジニアに向けた事業展開をしているため、エンジニアである自分が欲しいものを生み出せる良さがあり、本当に欲しいものを提案したり議論しながら開発できる環境です。

さらに、プロダクトマネージャー、デザイナーと連携を取るだけではなく、営業メンバーにもフィードバックをしたり、逆にフィードバックしてもらえるいい環境です。営業メンバーもエンジニアのことを知れると対外のエンジニアユーザーに価値提供ができ、結果として自分の成果にも繋がります。エンジニアも単純に言われたものを作るのではなく、顧客が本当に欲しいものはなんなのかを知るようなユーザーインタビューに同席したり、社内の営業メンバーと連携をして顧客の解像度を上げることにもチャレンジしています。

Findyに関わる全てのメンバーがお互いにコミュニケーションを取り続けるメリットが生まれるため、エンジニアとしては真に届くサービス開発をできることが最大の魅力です。

Findyのこれからのエンジニアリングとは?

Findyは高効率で常にCI/CD環境とユニットテストを充実させ続け、1人あたりの生産性も上げるような動き方をしてきました。直近でも、効率よく開発ができる環境を求めて入っていただいている方が何名もFindyにジョインしています。これからも人が増えてもずっと効率よく開発ができるように開発生産性を高め続けたくさんのアウトプットを出し、直接的に貢献が難しいKPIや売上などのアウトカムに貢献できる状態を作り挑戦し続けたいと思います。難しいことかもしれませんがそこに挑戦できる組織がFindyにはあります。

Findyは現在5つの事業を展開していますが、これからもさらに多くの事業を通じてエンジニアに価値を提供して、「挑戦するエンジニアのプラットフォームをつくる」ことを実現していきたいと思っています。今後の数年でエンジニア規模も2-3倍になり、新事業の立ち上げ、事業間連携、イネーブリングチームの組成、認証基盤やインフラ基盤の構築など会社・技術的に面白いフェーズに入っていきます。

これから一緒にみんなで最高の開発をしていきたいと思っていますので、興味のある方は是非ご連絡ください!

Findyの採用情報はこちら↓

herp.careers

おわりに

今回はFindyの開発組織の紹介をしました。

面談や面接、イベントなど含め様々な機会でお会いできることを楽しみにしています!