はんなりと、ゆるやかに

アジャイル、スクラムが好きなITエンジニアが日々から学んだことをアウトプット

ソフトウェア開発のメトリクスについて調べた

アジャイルではメトリクスを取得し、その数値をもとに改善することが重要とされています。測定していない場合、改善しても効果があったかどうか分からず、その改善を続けるのか止めるのか判断できませんよね。じゃあ、メトリクスは何を取得すれば良いのか。どういったメトリクスがあるのか、調べてみました。

メトリクスを使う注意点

1. ゴールに関連するメトリクスをとろう

メトリクスが重要だからといって、なんでもかんでも取得すれば良いわけではありません。測定した数値を見て改善した結果、ゴールに近づくモノを取得したほうが良いです。ゴールは会社、プロジェクトやチームで立てた目標に影響するかどうかを考えるとよいと思っています。

2. 定期的に見直そう

一度決めたメトリクスはそのまま使い続けず、ゴールの変化に伴って更新したほうが良いです。頻度は多くなくても良いですが、定期的に見直すタイミングを持ちましょう。

3. その時の状況もあわせて記録しよう

特定の週の数値が急に悪化している結果に合わせて、「メンバーが一週間休んでいた」などメモがあると数値の扱い方が変わります。

メトリクスの種類

調べることで色々な種類のメトリクスがあることを知りました。調べた内容を「生産性」「品質」「ビジネス」「チーム」に分けてまとめたいと思います。

◆生産性

リードタイム

ひとつのタスクが開始されてから終了するまでの時間。改善するには作業を効率化するだけではなく、タスクの流れを把握し、ボトルネックを見つける必要があります。

サイクルタイム

一つのタスクがプロセスの一部を終えるまでの時間です。たとえば「実装とレビュー」などです。リードタイムはタスクが開始されてから終わるまで、サイクルタイムはその中の一部になります。

ベロシティ

1スプリントで完了可能な数値です。ストーリーポイントを使われることが多いです。ベロシティは計画を立てるときの基準になります。

バーンダウン

スプリント中の進捗を表すグラフです。スプリント期間中に予定していたタスクが完了するかどうか予想を立てることが出来ます。

スループット

一定期間で開発できるタスクの量です。スクラムを採用している場合はベロシティとほぼ同じだと思います。リードタイムが早ければスループットは多くなります。

仕掛の数

仕掛はWIPと呼ばれることもあります。作業を開始したが、何らかの理由で次の工程に進められないタスクの数です。プロセスの中で仕掛りの数が多い部分はボトルネックになっている場所です。例えば、レビュー待ちが多くてテストが開始できていない!などです。

納期厳守率

納期や約束を守れたかどうかです。この指標だけでは改善ポイントを見つけることは難しそうですが、悪い状態になっていることに気づきやすい指標だと思います。

◆品質

平均故障間隔(MTBF)

稼働してから停止するまでの時間です。

平均修復時間(MTTR)

停止してから復旧するまでの時間です。

見つかった不具合の数

スプリント期間中に見つかった不具合の数です。不具合の数だけでなく、開発したタスクの難易度など組み合わせて見ることが重要です。

バグ修正を解決するまでの時間

MTTRと似ていますが、不具合が見つかってから修正するまでの時間です。未解決のバグ多い場合は開発が厳しい状態だと判断できます。

パフォーマンステスト

ボタンをクリックしてからの応答時間など、システムの性能の測ります。基準を設けて異常値かどうか監視する必要があります。定期的に確認していると、異常値の原因を見つけやすいですね。

◆ビジネス

価値要求と失敗要求の数

価値要求は新機能の開発や既存機能の改善です。失敗要求は不具合修正や仕様不具合の修正などです。失敗要求が多い場合は品質に問題があると考えられます。

破棄項目

開発途中に開発中止になった機能の数です。多い場合はパフォーマンスにもモチベーションにも影響するため改善が必要です。

NPS(ネットプロモータースコア)

「プロダクトを友人に薦めるか?」0~10で評価した結果です。

ユーザインタビューやアンケート

ユーザインタビューやアンケートで定量的、定性的な結果です。

◆チーム

アジャイルの車輪など

アジャイルの車輪はSCRUMMASTER THE BOOKに登場したツールで、以下の12の項目に対して期待値と現状を評価します。

  • 市場に出すまでの時間
  • チームの健康
  • チームのコラボレーション
  • チーム外とのコミュニケーション
  • 継続的改善
  • 効率性
  • 品質
  • 変化への反応
  • 顧客からフィードバックを得る
  • デリバリーの予測可能性
  • 顧客満足
  • 生産性

今回、まとめたメトリクスともかぶる項目もありますね。他にも心理的安全性を測る質問など、「チームのありたい姿になれているか?」という質問を定期的にチームメンバーで評価します。

まとめ

調べてみるとリードタイムやベロシティなど、多くのチームで使われているメトリクスがありました。定期的に取得する数値もありつつ、状況に合わせて取得する数値を選ぶという方法が良いのかなと思いました。