開発生産性向上のための振り返り会の始め方

こんにちは、カズシです。最近ネックスピーカーを購入して、テレワークで愛用しています。イヤホンのように耳が塞がれないので、1日中つけていても快適です。

アトラスでは2024年の初めにトライアルしていた Findy Team+を、今年度から正式に導入し、開発生産性向上に力を入れています。アトラスがどのように開発生産性の向上に取り組み始めたかをご紹介します。

Findy Team+ Award 2024を受賞しました

まずは少し自慢させてください。Findy Team+を導入してまだ半年の我々ですが、なんとFindy Team+ Award 2024で「開発組織全体で自己組織化が促進されている企業」として受賞いたしました!

Findy Team+ Awardトロフィー

受賞式では素敵なトロフィーをいただき、懇親会では受賞企業の皆様と交流を楽しみました。他社での取り組み事例の情報交換も活発に行われ、大変有意義な時間となりました。

Findy Team+ Awardに関する詳細や、受賞式の様子はnoteFacebookに掲載していますので、ぜひご覧ください。

振り返り会を始めてみた

開発生産性を可視化するSaaSを導入したとはいえ、データ解析と開発生産性については皆で勉強中です。そのため、いきなり画期的な取り組みをするのは難しいので、まずは実装を担当するエンジニアでの振り返り会を始めることにしました。

振り返り会のアジェンダは以下の2つで、明確に時間は区切らずに、その会の盛り上がりに合わせています。

アジェンダ① Findy Team+を全員で眺める

Findy Team+でデータが可視化されたわけですが、「何を見て、どのように解釈すれば良いのかわからない」というのが率直な感想でした。チーム詳細では下記の画像のように指標がたくさんありますし、プルリクエスト(以下PR)ごとのサイクルタイムも計測されており、まさに情報に溺れている状態です。

Findy team+チーム詳細ビュー

データを効果的に活用するために、まずは着目する指標を絞ることにしました。開発のリードタイムを短縮するために、PRの粒度に関わる、以下の指標に着目することにしました。

  • サイクルタイム
    • コミットからPRオープンまでの時間 (実装の所要時間)
    • レビュー開始からアプルーブまでの時間 (レビューと修正の所要時間)
  • 変更行数
  • 変更ファイル数

振り返り会では、上記の指標を確認して、値の増減について「今週は試験フェーズで、細かい調整が多かったから、実装時間が短くなっている」、「リファクタリングの横展開で変更ファイル数は大きくなったが、変更行数は変わらない」など解釈を話し合いました。また、変更行数やファイル数が大きいPRに関しては、PRを分割できないか個別に確認しました。

アジェンダ② レトロスペクティブの実施

残りの時間はNotionにボードを用意して振り返りました。レトロスペクティブのフレームワークとしては、Keep Problem TryやFun Done Learnなど様々ありますが、アトラスではGood (よかったこと、他メンバーへの賞賛)、Problem (課題に感じること、反省点)、New (どちらにも属さないが、共有したいこと、ちょっとした疑問) の3レーンを用意しました。

挙がった意見を共有しながら、チームやプロダクトの課題とすべき内容はGitHubのissueとして登録するなど、それぞれ適切な場所で課題管理するようにしました。

Notionの振り返りボード

振り返り会は最初に決めた形式にこだわらず、何度か開催してチームに合う形式を模索しました。

開催頻度は隔週で30分

毎週実施することも試してみましたが、1週間前との変化が小さく、意見が挙がりにくい傾向がありました。一方、1ヶ月に1回だと直近の内容しか話題にならず、話題に挙がる前に忘れてしまうのは勿体ないと考え、間をとって隔週の開催としました。

少人数のチームに分割

振り返り会は5人程度を1チームとしました。担当プロダクトやプロジェクトが近いメンバーを同じチームとすることで、プロダクトや開発プロセスに対して近い課題感で深い議論が可能となります。少人数にすることで、参加者全員が発言しやすい環境を作り、各メンバーが十分に意見を共有できる時間を確保することを目的としています。

振り返り会で生産性は向上したのか?

結論として、現時点では「リードタイムを5%短縮した」といった具体的な成果は得られていません。しかし、振り返り会を実施したことで、各チームで「サイクルタイムを短縮するために、3時間以内にレビューを返すように心がけてみよう」、「テストしやすいように共用のテストデータを作りませんか?」など様々な課題や提案が挙がっています。まずは、これらに取り組んだ上で、開発生産性の指標にどのような影響があるのかを確認していきたいと考えています。

一方で挙がった課題をいつ、誰が取り組むか?ということも考えなければいけません。担当するプロジェクトとの優先順位の兼ね合いもありますし、プロダクトのリファクタリングが必要な場合は影響範囲も考慮する必要があります。これらは実装担当のエンジニアだけでは判断できないので、今後は振り返り会にプロジェクトマネージャーも参加して、課題の対応方針についても一緒に議論していく予定です。

開発生産性を可視化する価値

生産性を可視化したことで「あるチームで特定の人にレビューが偏っている」などいくつか課題が見つかりました。しかし、今後も潜在的な課題が次々と見つかるとは限りません。ただ、生産性可視化の価値の本質は課題の発見ではなく、開発生産性を可視化できている状態、そのものにあると考えています。システムの運用監視におけるメトリクスと同じイメージで、開発生産性の現在地や一定期間で生産性が改善と悪化どちらの傾向にあるのかを把握することで、より効果的な改善策を講じることができるのではないでしょうか。

開発生産性向上は続くよ、いつまでも

Findy Team+による生産性の可視化と定期的な振り返り会の実施により、開発生産性を継続的に向上していくための、良いスタートを切れたと感じています。

しかし、具体的な成果は今後に期待といったところです。そして、開発生産性の向上にはゴールなどありません。今後も振り返りは継続しつつ、新たな切り口として、SPACEフレームワークによる定性的な開発生産性の計測にもチャレンジしていく予定です。