システム開発の世界では「下流工程よりも上流工程に時間をかけろ」という言葉をよく耳にする。これは本当に正しいのだろうか。 「要件定義や設計などの上流工程に資源を集中的に投入し,この段階でバグの芽を摘んでおくことで,コーディングやデバッグ,テストといった下流工程の負担を軽減すると同時に,予想外の手戻り作業を撲滅する。そうすれば,開発期間を短縮できるだけでなく,品質の向上にもつながる」。これが冒頭の言葉の意味するところである。 確かに,デバッグやテストの段階で,設計や要件定義のフェーズまでさかのぼる重大なバグが検出された場合,スケジュールの大幅な見直しを迫られる。ところが,プロジェクトの終盤になってカットオーバーを遅らせるのは現実問題として難しいので,結局デバッグやテストのフェーズが突貫工事になってしまう。そうなると,焦りと疲労が災いしてメンバーがミスを犯しやすくなり,泥沼状態に陥る。これでは,