短期開発で起こる問題
開発期間が短くなると、納期までに開発を終えられない状態、即ち、デスマーチに陥る危険性が高くなる。
予定通りに開発を終えられそうにない状況になると、開発担当者が残業や休出したり、新たなリソースを追加することで、カバーすることになる。だが、カバーしきれない場合は、納期を延ばしたり、機能を制限するといった手段しか無くなる。顧客や市場との約束を守れず、会社の信頼性を損なう結果となる。
開発が予定よりも遅れると、開発工程の終盤に実施される作業、特にテストにしわ寄せが及ぶことが多い。そのため、結果的に品質の悪い製品をリリースしてしまう危険性が高くなる。仮に納期までにリリースしたとしても、品質が悪ければ、やはり、会社の信頼性を損なう結果となる。
見積もりの重要性
納期を守れなくなるプロジェクトの多くは、見積もりが不十分だったことが主な原因の1つになっている。
費用の見積もりと比べて、期間の見積もりはシビアである。AとB、2つの開発案件があったとしよう。Aで見積もりより工数がかかっても、それ以上にBの工数を削減できれば、トータルでは利益を得られる。だが、期間については、A、Bのどちらも約束した期日までに完成させる必要がある。
費用の見積もりと、期間の見積もり
見積もりには、どうしても誤差が生じる。昔は、開発作業を前倒しで着手したり、納期までに余裕を設けることで、見積もりの甘さによるリスクを吸収できたかもしれない。だが、納期に対する要求が高まっている現在では、過大な余裕を設けることは許されない。
余裕を大きく設定すればリスクは少ないが、競合他社に仕事を奪われることにもなりかねない。とはいえ、納期を守れる保証がないまま、不用意に短期間で受注してしまう訳にもいかない。見積もりの誤差を少なくして、納期までの余裕を必要最小限に抑える必要がある。
見積もり誤差を見込んだ納期の設定
時には、ビジネス上の理由から、顧客から厳しい納期を指定されることも珍しくない。ここでも、正確な見積もりが重要となる。納期を守るために投入するリソース(工数すなわち費用)の調整、納期までに実現できる範囲の交渉などのために、正確で根拠のある見積もりを提示する必要がある。それができなければ、指示通りの納期で請け負った挙句、間に合わなくなり、顧客に迷惑をかけることになろう。
進捗管理の重要性
ただ、いくら正確な見積もりができたとしても、それだけでは不十分である。開発プロジェクトは、見積もりの通りに進むとは限らない。納期を守るためには、スタートする前に見積もりを検討するだけではなく、開発をスタートした後にも、随時、進捗を管理していくことが重要である。
スタートした開発プロジェクトには、さまざまな要因で、見積もりとのずれが生じる。下記はその一例である。
- 作業が遅れた。
- 見積もりが過小だった。
- 見積もりで項目が抜けていた。
- 追加作業が発生した。
- 複雑なバグが発生し、解決に時間がかかった。
- 兼務している業務が多忙になり、時間を取られた。
- 社内の雑用が発生した。
- 病欠した。
これらの要因による影響を把握し、必要な対策を取ることが、進捗管理である。そのためには、どのような要因でどれくらい影響が生じているか、開発プロジェクトが遅れているのかどうか、どれくらい遅れているのか、約束した期日にリリースできるのか、といった状況を把握しておく必要がある。
納期に対する要求が高まっている現在では、納期までに余裕がないプロジェクトが多くなっている。このような状況では、さまざまな要因による状況の変化を早く正確に掴み、常に軌道修正を行わなくてはならない。対策の遅れは、即、デスマーチに直結する危険性がある。見積もりの正確さとともに、進捗管理の優劣も、プロジェクトの成否の鍵を握る重要な要素となってきている。