ソフトウェア開発メトリクスの話を聞いたので読書メモを引っ張り出した
参考書籍は Software Development Metrics 。
Manning | Software Development Metrics
著者はウォーターフォールなプロジェクトやアジャイルなプロジェクトのPMやコンサルをやってきた方。
ソフトウェア工学の知識よりも現場での経験が豊富な感じ。
アジャイル(適応型)やウォーターフォール(計画重視)それぞれの手法で、どのようなメトリクスをどのように活用できるのか説明している。
メトリクスを活用する目的として、プロジェクトの状況を予測可能にすること、プロセスを改善することを挙げている。
プロジェクトの状況を予測可能にすることはステークホルダーにとって重要。
プロセスを改善することはチームにとって重要。
目的別にメトリクスの正しい使い方や間違った使い方を紹介している。
書籍で紹介されているメトリクスを計算する Excel シートがサポートサイトで公開されている。
https://www.manning.com/downloads/156
メトリクスの性質
メトリクス自体には次のような性質がある。基本的には数値化された事実であり、解釈する人によって意味が変わってくる。
情報
善悪・良し悪しと関係ない事実
兆候
問題が発生している(しそうになっている)ことを伝える
動機づけ
人間の行動を変えるきっかけになる
メトリクスの解釈
過去を照らし出す
- 「計画」と「現在の状態」を比較して得られるメトリクスのこと
- 「今までの自分たちは間違ってないよね」を大事にする考え方
- 状況が変化しないことを前提としている
未来に向き合う
- 「現在の状態」から「達成すべき目標」を比較して得られるメトリクスのこと
- 「自分たちはどれだけできたのか」を大事にする考え方
- 常に状況が変化することを前提としている
プロジェクト管理手法vs目的別メトリクス一覧
どのメトリクスも「ビジネス価値を提供できる状態になった」ことを計測しないと意味のある情報にならない。
リリースできない中間成果物(設計書やテスト結果)を計測するのは効果がない。
書籍ではプロジェクト管理手法だけでなく、プロセスモデルや出荷モデルも分類の軸として紹介している。
プロセスモデルの分類は次のとおり
- 線形(最初に固定した要件を段階的に具体化していく)
- 反復(要件の具体化を繰り返して洗練していく)
- タイムボックス(反復の期間を固定して、それぞれの期間で出荷できるソフトウェアを開発する)
- フロー(流れ作業的な)
出荷モデルの分類は次のとおり
- 開発して提供したら終わり
- 継続的に保守開発