プロジェクトの進捗とプロセスの改善は分けて考えないといけない

参考書籍は Software Development Metrics

もう少し整理したほうがいいんだけどとりあえずメモ。

 

www.manning.com

書籍紹介

著者はウォーターフォールなプロジェクトやアジャイルなプロジェクトのPMやコンサルをやってきた方。

ソフトウェア工学の知識よりも現場での経験が豊富な感じ。

アジャイル(適応型)やウォーターフォール(計画重視)それぞれの手法で、どのようなメトリクスをどのように活用できるのか説明している。

メトリクスを活用する目的として、プロジェクトの状況を予測可能にすること、プロセスを改善することを挙げている。

プロジェクトの状況を予測可能にすることはステークホルダーにとって重要。

プロセスを改善することはチームにとって重要。

目的別にメトリクスの正しい使い方や間違った使い方を紹介している。

書籍で紹介されているメトリクスを計算する Excel シートがサポートサイトで公開されている。

https://www.manning.com/downloads/1565

メトリクスの性質

メトリクス自体には次のような性質がある。基本的には数値化された事実であり、解釈する人によって意味が変わってくる。

  • 情報
    • 善悪・良し悪しと関係ない事実
  • 兆候
    • 問題が発生している(しそうになっている)ことを伝える
  • 動機づけ
    • 人間の行動を変えるきっかけになる

メトリクスの解釈

  • 過去を照らし出す
    • 「計画」と「現在の状態」を比較して得られるメトリクスのこと
    • 「今までの自分たちは間違ってないよね」を大事にする考え方
    • 状況が変化しないことを前提としている
  • 未来に向き合う
    • 「現在の状態」から「達成すべき目標」を比較して得られるメトリクスのこと
    • 「自分たちはどれだけできたのか」を大事にする考え方
    • 常に状況が変化することを前提としている

プロジェクト管理手法vs目的別メトリクス一覧

どのメトリクスも「ビジネス価値を提供できる状態になった」ことを計測しないと意味のある情報にならない。

リリースできない中間成果物(設計書やテスト結果)を計測するのは効果がない。

書籍ではプロジェクト管理手法だけでなく、プロセスモデルや出荷モデルも分類の軸として紹介している。

  • プロセスモデルの分類は次のとおり
    • 線形(最初に固定した要件を段階的に具体化していく)
    • 反復(要件の具体化を繰り返して洗練していく)
    • タイムボックス(反復の期間を固定して、それぞれの期間で出荷できるソフトウェアを開発する)
    • フロー(流れ作業的な)
  • 出荷モデルの分類は次のとおり
    • 開発して提供したら終わり
    • 継続的に保守開発
  計画重視のプロジェクト管理 適応型のプロジェクト管理
プロジェクトの状況を予測可能にする

スコープ達成率

アーンド・バリュー

予算バーンダウン

バッファバーンダウン

ベロシティ

サイクルタイム

バーンアップチャート

バーンダウンチャート

スループット

累積フロー図

スコープ達成率

予算バーンダウン

バッファバーンダウン

テストの完了した機能数

アーンド・ビジネスバリュー

ベロシティ

サイクルタイム

バーンアップチャート

バーンダウンチャート

スループット

累積フロー図

プロセスを改善する

ベロシティ

サイクルタイム

バーンアップチャート

バーンダウンチャート

累積フロー図

プロセスサイクル効率

ソースコードバージョン管理システムの履歴

ソースコードの静的解析の履歴

ニコニコカレンダー

感情振幅図

幸福度

ボール・イン・ボール

健全さと幸福度

パーソナリティチェック