Findyがモノリス環境をやめて得られたユーザへの爆速価値提供
こんにちは、Findy CTO の @ma3tk です。最近はジムで傾斜をかけた有酸素マシンをしてから朝風呂に入るのが趣味です。やりすぎて朝の時点で体力のピークを迎えてしまうのを改善したい今日このごろです。
先日爆速開発をしていくためのFindyの取り組みという記事を書きました。
この記事で言及したように、Findy の開発がぐんぐん伸びていて様々な指標で開発の効率や生産性が上がっていることを示唆しました。リポジトリ分割のお話は上記 note をご参照ください。
※タイトルにモノリス環境と入っていますが、モノリス環境を批判するものではありません。組織やサービスのフェーズとしてそう選択したというお話です
本日は、前回お話しきれなかった様々な指標を公開してみたいと思います。
リポジトリ分割後のリリース回数は9.1倍になった
こちらのグラフはリポジトリ分割を行ったあるチームにおける、1月(青線)と6月(赤線)の1日ごとのリリース回数です。
1月は10回のリリースでしたが、6月は24日時点で91回リリース作業を行っています。変更の内容などは完全にスルーすると、修正変更を9.1倍の量ユーザに届けられていることになります。
リポジトリ分割後にはフロントエンドはバックエンドを気にせずマージができたりしたこと(逆もしかり)、このタイミングからやっとセマンティックバージョニングを取り入れたことで大きなバージョンアップの変化などがあるときに重厚にQAを行う、ないときは十分なユニットテストがあればOKなどでメリハリをつけたことなどでリリースできる回数を増やしました。足りないときは当たり前ですがユニットテスト追加するなどの実施をしてきました。
マージ回数は6.0倍になり、日々のアクティビティが活発に
赤線が6月のマージです。マージはリリース前に一気に行っていたフローだったため、マージされる日にばらつきがあったのが1月でした。(アクティビティが少ないのは土日も含まれているから0の日があります)
価値提供スピードをもっとあげていこうということで、最近は毎日リリース作業ができる環境になったため、お休みの日以外はほとんどリリースが行われるため、レビュー後即マージして最新のdevelopになっている状況が保てるようになっています。
後述しているプルリクのクローズまでの時間も早くなっていることで1プルリクの生存期間が短くなっています。プルリクがマージされてからもリリースされる回数が多いため、最新のdevelop環境に近い環境で本番環境を提供できています。タスクを着手してから実際にユーザの手に届くまでが早くなっています。
プルリククローズまで35倍も早くなった
このチームに限ってプルリクをクローズするまでにかかった時間は土日のバッファや週2〜3での稼働のみの業務委託のメンバーなどを含めて156.4時間ほどかかっていました。これはプルリクが出てから6.5日ほど経ってマージやクローズされるという状況でした。ほぼ一週間かかって完了していた状態です。
この状況はライブラリのバージョンアップにより開発環境が変化していたり、サービスが成長したことにより過去に課題でなかったことが表面化してしまっていたのが原因でした。なんとか課題がある状態でもリリースすべきものは安定してリリースをしていこうとした結果、このような状態になっていたのでした。Findyはサービスが落ちたりするなどがあまりなかったのですが、この時期あたりにたまに小さな障害が出ていたりしました。
現在6月になってからは、平均プルリククローズ時間も10時間を切り、直近では4.4時間になっています。土日含めても当日にプルリクがクローズできている状態ができている状態です。様々な改善の努力もあり、マージまでのスピードも1月と比べると35倍も早くなりました。
合わせて、レビューをするまでにかかる時間も28.4時間から1.6時間まで17.8倍スピードアップしました。なるべく大きなプルリクは作らず小さなプルリクを作りメンバーの1回あたりのレビュー負荷を下げ、代わりにレビューの回数を増やしました。Nice to Have系の修正は次のプルリクで直すなどでプルリクに大きな方針違いがなければ進める、というスタイルで開発しています。メンバーも大きなプルリクを全部修正したものを見た時に最初から見直し状態になってしまうので、現状でいいものは先に取り込み、最初からレビューしなくていい状態を保つことができます。
GitHub上のアクティビティ数が4倍になった
GitHub上のプルリク作成、イシュー作成、コードコミット、レビュー数などの積み上げ棒グラフで見ても、おおよそ4倍になりました。
圧倒的に活動量は成長傾向にあります。個人開発の場合はこのアクティビティ数が少なくてもそんなに影響はないのですが、チームだとこの全体数が落ちてしまうと開発フローの中でどこかに課題が出ている状態になります。
「アクティビティ数が多いチームは優秀」ということではなく、「いいチームほどこのアクティビティ数が多くなっている」というのをでいろいろな会社さんと話していて感じます。Findy Teamsでいろいろな会社さんと話していて感じます。
6ヶ月を振り返ってみて
ここまで見ていると、単純に数が増えたから、スピードが早くなったからといっていいものを提供できているかどうかは別じゃないかという議論があるかと思いますが、たしかにまだその評価ができているわけではありません。
しかしながら単純に価値提供は9.1倍行えてますし、35.0倍早くプルリクをクローズできるようになりマージされたプルリクの数は6.0倍になりました。自分の体感値としてもめっちゃ早くなったなぁと感じますし、ユーザからの声やお問い合わせに対しても声を上げていただいてからほとんどが当日に課題をクローズすることができるようになっています。
例えば、Twitterの声なども 6/25 11:20 に挙がったのを確認し、当日15:40には解決されている状態まで持っていけています。
爆速に価値提供できるための素地づくりはこの6ヶ月でできたのではないかなと思っています。
次はメンバーを増やして提供できる価値の量を倍増
ここまでスピードが上がってきたという話とアクティビティの量が増えてきたというお話をしてきました。
あくまでアクティビティは増えましたが、サービスがこれ以上に成長しているため、僕らの開発したい内容がすべてクリアできているかと言うとそうなってはいません。まだまだこれの3〜5倍くらいの量を捌ける状態にしないと組織としては成長していかない状態です。
課題はめちゃくちゃ山積みで、やれることやもっともっとこれらの指標を高い状態にしていきそれを保てる状態を求めていく必要があります。
そんな課題が山積みのFindyで一緒に開発しませんか?求人はこちらです!
フロントエンドテックリード
https://herp.careers/v1/findy/hZxTLu24TQTq
バックエンドテックリード
https://herp.careers/v1/findy/8eBmIwP3W2pW
フロントエンドエンジニア
https://herp.careers/v1/findy/n3GYFS0yUnAH
エンジニアマネージャー
https://herp.careers/v1/findy/ypgJQ5_ObYex
ファインディ株式会社 の全ての求人一覧
https://herp.careers/v1/findy
コーポレートサイトはこちら
https://findy.co.jp
Findyでは最高に楽しい企画と課題を準備してお待ちしています。お気軽にご応募でもTwitterでDMいただいても大丈夫です。もちろんジムで一緒に傾斜をかけた有酸素運動するところからでもOKです。もっともっとエンジニアリング組織の成長率の傾斜を高くして成長していきたいと思っていますので、お気軽にどうぞ〜!