はじめに
みなさん、こんにちは。しくみ製作所の西原です。 弊社では2024年6月からFindy Team+を導入し、いくつかのチームで開発生産性の計測を開始しました。今回は主にツール導入に至るまでの経緯について、書いてみようと思います。
何を指標とするか、様々に語られる開発生産性
開発生産性に関しては、昨今様々な議論がなされてきていると思います。私自身もこれまで、期間当たりに何行のソースコードを書いたかといういわゆるLOC(Lines Of Code)を生産性の指標として仕事をした経験があります。「リファクタリングで行数が減ったときは生産性はマイナスになるか」と気にする同僚もいましたが、あまり納得のいく回答は得られていなかった記憶があります。笑。
個人的には「投じたリソースでプロダクトにどれだけの付加価値を届けることができたのか」というのが広義での開発生産性かなと思っています。ただ、顧客のプロダクトの受託開発を行っている場合、開発チームだけで全体の開発生産性を高める(プロダクトの価値を高める)のは難しく、プロダクトオーナーやマーケティング部門などと協力していく必要があるとも思っています。
出典:https://gamma.app/docs/-necbojc9wcdk8yw?mode=doc
一方で開発チームだけでも開発生産性に寄与できるところもあり、GoogleのDORAやLeanとDevOpsの科学の著者でもあるNicole Forsgren氏が提唱している、SPACEといったフレームワークが焦点を当てている範囲は、主として開発チームが関わる狭義での開発生産性だと思います。
ご存じの方も多いと思いますが、それぞれ簡単に紹介します。
- DORAフレームワーク
- FourKeysと呼ばれるメトリクスを使ってDevOpsのベロシティと品質を測定
- FourKeysは「デプロイの頻度」「変更のリードタイム」「変更失敗率」「サービス復元時間」
- 「デプロイの頻度」「変更のリードタイム」はベロシティ、「変更失敗率」「サービス復元時間」は安定性を測る
- SPACEフレームワーク
- 開発生産性にとって重要な「Satisfaction & Well-being」「Performance」「Activity」「Communication and collaboration」「Efficiency and flow」5つのディメンションの頭文字が由来
- 各ディメンションで特定の指標が定められているわけではなく、各々の環境で選定する
- 生産性を高めるにはFourKeysのような定量的な指標だけではなく、コンディションなどの定性的な指標も重要
真の課題解決となるツールを
弊社ではアジャイル型でプロジェクトを進めることが多いので、ストーリーポイントでチームのベロシティを計測していました。ただこの手法は
- 仕事量としての計測はできるが、品質の側面は計測できない
- チームメンバー内の感覚に依存する値(主観的)なので、他のチームと比較できない
といった課題がありました。
ビジネスとして受託開発を行っている以上、その価値の定量化や客観的な基準での測定・評価というのは求められるものですので、別の手法での開発生産性の計測の必要性を感じていました。
そこで開発生産性について調査したところ、前述のLeanとDevOpsの科学の中でFourKeysの有用性や相関性が統計学的に証明されていることがわかりました。
出典:https://qiita.com/k1morikawa@github/items/46084e11231a0b3bed3c
また、どのプロジェクトでもイテレーションごとにふりかえりを実施しているのですが、FourKeys(デプロイ頻度・変更のリードタイム・変更障害率・サービス復元時間)などの定量的な指標を取り入れることで、新たな課題発見や課題の論理的な裏付け、プロセスの見直しに役立つのではないかという期待もあり、FourKeysを是非計測してみたいという流れになりました。
そこで、計測するために適したサービスを調査・トライアルして、現在の環境に最も適しており、DORAやSPACEといったフレームワークにも対応しているFindy Team+ を採用させていただきました。
説明会の様子
現状社内の主なプロジェクトのうち約半分に導入が完了しました。少しずつ触っていってもらっているような状況の中、Findy Team+のカスタマーサクセスの方からのご提案で、社内向けに説明会を開催していただきました。
会場は、弊社のバーチャル空間ツール「reBako.io(リバコ)」を利用!
数値を見てチームとして改善すべきところがあるのかミクロな分析をして判断するべき、外に原因を求めるのではなく、まずは自分たちにベクトルを向けて改善できるポイントがないか、ふりかえりを実施しましょう等、1時間という短い中ではありましたが、様々なお話をいただきました。 また各分析画面についての使い方も説明がありました。ありがとうございました!
今後各チームにおいて、ふりかえり等で活用していき、効率的な価値提供へと繋がっていければと思います。また経過報告等できればと思っています。それでは!