Schedules are usually set at the beginning of a project. These include intermediate deadlines as well as the product delivery deadline. As each phase is completed, the schedule must be reassessed. A behind-schedule project rarely recovers during subsequent phases. Thus, a project that is, for example, one month late at completion of design will be at least one month late for delivery. In most cases adding or removing people will only delay the project further. The most common technique is not to change the product delivery date. (After all, we don't want to disappoint the customer just yet; they might stop paying.) As each intermediate milestone is missed by an increasing amount of time, the time allocated to testing is reduced more and more. At the end, one of two situations is inevitable:
- The product is shipped without the necessary quality.
- The customer is notified of a very large schedule slip very late in the project.
Neither is acceptable. As a manager, your responsibility is to prevent disasters.
Instead, establish a working relationship with customers and/or management levels above you. Report every possible date change (usually a slip) and discuss the alternative strategies for overcoming them. The Agile methodology is very keen to cut out features in order to hit delivery deadlines. Only early intervention and involvement by all parties can prevent slippage escalation.
Reference:
Shore, J., Warden, S., The Art of Agile Development, O'Reilly Media, 2008.
Gilb, T., Principles of Software Engineering Management, Reading, MA: Addison-Wesley, 1988.