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.