勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

似非プロジェクト科学(2) 夢のスケジュール、あるいは「よげんのしょ」

ソフトウェア開発プロジェクトに限ったことではないかもしれないけれど、一見正しいようで不適切なことを求められることがある。疑似科学じゃないけれども、似非プロジェクト科学としていろいろ考えてみている。もちろん、単なる政治の問題なのかもしれないけれども。というわけで今回はスケジュールゲームの話。

前回の記事はこちら

スケジュールの夢の時間

映画「20世紀少年」オリジナル・サウンドトラック
よくある話だけれども、プロジェクトの状況を表すガントチャート上のちょっとした遅れや変化に対して過剰反応する人がいる。記載された通りに物事が進んでいないことを「おかしい」と誤解してしまうのだ。これが行過ぎるとプロジェクトの計画が「よげんのしょ」に祭り上げられ、よげん通りに物事を進めることを目標とするカルト集団が誕生してしまう。

  • 実際は作業に着手する余裕があるのに、着手しない
  • 実際は余裕があるので着手しているのに、報告しない
  • 実際は終了しているのに、報告しない
  • 実際は遅延しているのに、隠す
  • 本当はもっと細かいタスクに分割して管理すべきなのだけど、分割するとよげんになってしまうので分割しない

プロジェクトの状況を聞かれて「計画通りです」と答える人がいるけれども、正確には「計画通りにコントロールできています」という表現が適切だと思っている。ガントチャートなどは、現状と見通しを確認するツールであり守るべき聖典ではない。

頭を使って考え、学んだことに反応しなければならないプロジェクトは、幹部たちの理解が及ばないものだった。彼らはクリティカルパスは決して変化せず、タスクの順番も最後までほぼ同じだと思い込んでいた。
幹部たちが普段目にしているのは、既に完了した作業の報告や販売実績の数字など、過去に起こったことを反映したデータだ。しかしスケジュールは、物事が未来においてどうなるかを推測したものである。このスケジュールゲームは「スケジュールの夢の時間」とも呼ばれる。
「スケジュールの夢の時間」という名前は、ガントチャートのでき栄えが見事なあまり関係者たちがスケジュールは推測にすぎないという事実を忘れてしまう場合にふさわしい。人々はガントチャートに安心し、スケジュールを信じて現実を確認しなくなってしまう。

スケジューリングツールは常に正しいという迷信の問題点は、スケジュールの見積もりが正確であると仮定していることにある。正確なスケジュールは多くない。多くのスケジュールは精密だが(木曜日の午後3時32分にリリースする)、正確ではない。これはスケジュールが推測だからだ。いくら見栄えをよくしても、スケジュールは推測であり、ある程度の間違いがあることに変わりは無い。
このスケジュールゲームが発生するのはスケジューリングツールが悪いからではない。問題なのは、ツールを使う人の思い込みだ。
Manage It! P106 スケジュールゲームを見極めて回避する

ソフトウェア見積もりについて語るとき、見積もりが純粋に予言のようなものだと考える人たちがいる。この人たちは、見積もりがあたかも外宇宙のどこかに鎮座している公正無私な評価者が行うようなものであって、プロジェクト計画や優先度評価とは無縁の活動であるという態度を見せる。
実際のソフトウェア見積もりは、そこまで浮世離れした作業ではない。ハイゼンベルグの「不確定性原理」の例をソフトウェアの世界に求めるのなら、見積もりこそがその好例だろう(ハイゼンベルグの不確定原理とは、観測行為そのものが状態を変化させるため、観測をしていない状況での現象について知ることはできないという考え方のこと)。
ソフトウェア見積り P12 1.6 見積もりとプロジェクトコントロール

バーンダウンチャート

アジャイル開発プロセスだと、ガントチャートのかわりにバーンダウンチャートというものを利用する。

バーンダウンチャートのいいところは、チャートそのものが「未来は不確実である」ことを示していることである。逆に言えば、ガントチャートは「未来が不確実である」ということを表現できていない。

別にアジャイル開発プロセスを用いていなくても(ウォーターフォール開発であっても)バーンダウンチャートを使用することはできるはずである。ガントチャートのかわりにうまく用いる方法はないものかとちょっと考えている。と思ったら同じような事を考えている人もいるみたい。ちょっと考えてみたい。