Unless you’re working on some blue-sky research project, most real-world software projects do indeed have hard deadlines, but the deadlines can sometimes move in either direction. There are many forces that affect a software product delivery schedule and moving a delivery date:
- Meeting quality requirements — Projects have (or should have) clear quality requirements that must be met before the software can be shipped. If the scheduled delivery date arrives and the quality is not there, the date should either slip, or the decision-makers should understand the risks of shipping before all quality requirements are met.
- Staying competitive — Your company might be trying to be the first to market, or close enough to first to be a serious contender.
- Winning “hearts and minds” in a chain of software development — You may be delivering a framework or platform that developers can use, and want to provide them with a steady stream of periodic high-quality early releases and a solid final delivery date, so that your developer customers can easily and confidently adopt your product and build their delivery schedules around yours. If you miss your dates, they will likely miss theirs. If that happens too often (and sometimes, once is enough), you might lose them completely.
- Meeting contract commitments — In some projects, a contract has been signed between two companies, between a government entity and the company, etc. that sets the delivery date. In some cases, penalties are incurred if the delivery schedule is not met.
- Meeting public commitments — In some cases, the company has announced a delivery date, and missing it would cause a loss of credibility, confidence, etc. in the company’s announcements. Sometimes, delivery coincides with a trade show or other public event. I recall one major software product release I participated in, where the CEO of the company had announced in a keynote address a specific date by which the product would be released to manufacturing.
- Being ready for the holidays — A product might need to be ready for distribution during a specific season of the year. For example, consumer products that will appear on shelves in stores typically need to be released to manufacturing in the August time frame, to allow enough time to manufacture the products, fill the distribution channel, and have the products available on store shelves in time for Black Friday holiday shopping.
- Providing scheduled maintenance releases — Even long after a product has shipped — sometimes years after — you might be required to provide maintenance updates on a predictable, periodic basis. For example, since October 2003, the Windows team has had to have all the monthly security updates tested and ready to go by Patch Tuesday each month.