Four Keys 他社事例 01

エンジニア組織を強くする 開発生産性の教科書 ~事例から学ぶ、生産性向上への取り組み方~を読んで、自分の言葉に直しました。

背景

開発生産性導入の経緯として、経営層の目線として、組織の急成長に伴い組織の生産性を可視化する必要があった。

Four Keysを導入に伴い、それぞれのチームにおいて、以下の二つのアクションを実施した。

  • Pull Request作成数を「リードタイム改善」の指標として設定(ジュニアエンジニアが多いチーム)
  • リファインメントとレトロスペクティブの再設計(スクラムを導入しているチーム)

Pull Request作成数を「リードタイム改善」の指標として設定

チームメンバーとテックリードの間でPull Request作成数に差があったことがあり、目標として設定した。

課題

  • Pull Requestの作成を増やすためには、単位を小さくする必要がある
  • そのためには、タスクの粒度を小さくする必要があり、仕様の深い理解が必要

取り組み

  • 1on1において、個人における生産性のふりかえりを行う
  • レトロスペクティブにおいて、チームの開発生産性の確認をする

成果

  • Pull Requestが三ヶ月で二倍に増加し、一つ一つのPull Requestの負荷が下がりデプロイ頻度が上がった。
  • 見積りの精度が上がったことでスケジュールの後ろ倒しが少なくなり、心理的安全性の改善にもつながった。

リファインメントとレトロスペクティブの再設計

「フロントエンド」や「ドメイン知識」の知識が属人化しており、稼働できないメンバーがいる時に開発が完全に止まってしまう課題があった。

リファインメントの見直し

全員が実装イメージをはっきり持てるようにするために、全てのチケットが無くなるまで、1h/一回のmtgを行った。

  • 社員、業務内容を問わず、参加できるメンバーは全員が参加
  • 全員がストーリーポイントの実装イメージをはっきり盛れるまで議論し、詳細化する
  • ストーリーポイント付けの根拠をエンジニア全員が発表し、認識のずれを矯正

プランニングの見直し

二つの方針に従って、プランニングの進め方を整備した。

  • チケットを見るだけでメンバー誰もが、「作業内容の共通イメージ」を持てるようにする
  • チケットを見るだけでメンバー誰もが、「なぜその作業を行うかの共通認識」を持てるようにする

具体的には、

  • ストーリーチケットの作業内容を深掘りし(プランニングに参加していないメンバーでも同等の認識を得られる程度)、具体的な作業内容を細かく書く
  • 記載した具体的な作業内容を元に、全員の合意をもとサブチケットをきる

成果として、

  • 手が空いているメンバーはどのサブチケットも引き受けられるようになった。
  • メンバーの負荷軽減につながり、知識量や技術力不足により進められなかったメンバーの開発生産性向上に繋がった。

レトロスペクティブの見直し

KPTやフリーテーマを行っていたが、開発生産性の指標に焦点を当てたふりかえりへと設計し直した。

話し合うことは、

  • 1日あたりのPull Request作成数の変化をスプリント間で比較すること
  • スプリント内でマージまでに時間のかかったPull Requestの理由を深掘りすること

Pull Requestの目標やルール設計

一日当たりのPull Request作成数と、Pull Requestの変更行数などを具体的なルールとして設定した

  • 一日一人当たり二つ以上のPull Requestを作成する

    • 具体的にどの程度のPull Request作成数があると、開発生産性が高いのか明確にするため。
  • 1Pull Requestあたりの変更行数は100行以内

    • Pull Requestの分割の粒度について、思統一が当初から難しかく、実験的に設定したが実際に導入してみるとうまくいった。

参考

エンジニア組織を強くする 開発生産性の教科書 ~事例から学ぶ、生産性向上への取り組み方~