ITプロジェクトマネージャのほとんどは、プロジェクト費用の見積もりミスに初めて遭遇したときの、あのひどい、沈み込んでいくような不安の感覚を知っている。残念ながら、プロジェクト費用に関する見過ごしは非常によくあることだ。
クライアントが重要な詳細情報を伝え忘れたり、単にシステムの設定や以前の緊急避難的な処置について知らなかったりしたことで、プロジェクトマネージャが窮地に立たされることはよくある。実際、私はこれまで多くのプロジェクトを準備し、売り、完了させてきたが、プロジェクトが時間通りに予算内で終われば驚いてしまうほどだ。無数の「未知だと分かっている未知のこと」や「未知だということも分かっていない未知のこと」が、古いシステムやレガシーコード、専用システムなどを魔法のように意図したとおりに稼働させるというITプロフェッショナルの仕事の足を引っ張る。
私のこれまでの経験から考えた例を1つ挙げてみよう。複数の店舗を持つ小売店チェーンが、会計管理プラットフォームを更新しようとしているとする。顧客が用意した機器の在庫を検討した後、サーバとWindowsのライセンスオプションを調べ、ルータとファイアウォールのモデルをチェックし、プロジェクト費用の見積もりを準備し、顧客には2万5000ドルのプロジェクトとして提示し、その計画を実行するスケジュールを示したとしよう。後になってから、顧客の既存システムの在庫が不正確であったことが判明したときの不安を想像してみて欲しい。手遅れになってから、18のシステムのうち7つが、ハードウェアの必要要件を満たしていないことが分かれば、そのプロジェクトは失敗に終わりかねない(ワークステーションの交換は、最初の予算の30%を超える可能性もあるだろう)。
管理職として十分に準備をすれば、費用に関するよくあるミスは避けることができる。実際、これが「未知だと分かっている未知のこと」に対処する唯一の方法だ。できる限り多くの「未知だと分かっている未知のこと」をなくすことで、プロジェクト崩壊の危険を最小限に止めることができる。以下では、プロジェクトの見積もりに関して起こりやすい3つの問題を避ける方法を説明する。
#1: すべての前提について確認する(誰も信用しない)
顧客の混乱が、ITプロジェクトマネージャの問題に見えてしまうことも多い。顧客や他のITプロジェクトマネージャの言葉を鵜呑みにしてはならない。顧客が、自分が知っていると思っていることを実際には知らないことも多い。
では、どうしたらいいだろうか。
顧客が、25台の32ビットWindows Professionalワークステーションを持っていると言ったとしても、顧客の現場を訪れて自分で備品リストを完成させるまで、それを信じてはならない。実施手順が進んでしまってから何台かの64ビットWindows Vistaワークステーションが見つかっても、顧客は追加費用なしでやりくりするよう求めてくるかも知れない(そしてプログラマーは、OSが2つになると、開発要件は大きく変わってくると言ってくるかも知れない)。
顧客が、SQL Server 2008を載せた2台のWindows Server 2008(あなたの会社が開発するプラットフォームはこれらを必要としている)をすでに運用していると言ったとしても、新規のハードウェアとソフトウェアの購入やアップグレードを検討する際には、その条件をそのまま受け入れてはならない。自分自身ですべてのハードウェアとソフトウェアの依存関係の調査を行う必要がある(あるいは、自社の人間にそれらの事実を確認させる)。顧客は単純に勘違いしているかも知れない。私は、SQL Server 2008とSQL Server 2008 Expressの違いを分かっていなかった顧客を何人か知っている。このような勘違いで、プロジェクトの大きな予算オーバーを引き起こしてはならない。見積もりの際には、プロジェクトのすべての重要な詳細事項(小さいものも含めて)を確認すること。これらの地雷の可能性を排除することで、「未知だと分かっている未知のこと」や費用超過を引き起こす可能性のある要素を軽減することができる。