The concept of deadline has always been one of the sacred cows for any human activity. Normally, with very few exceptions, what do people do with any project? They set a deadline and think that they will care about meeting this deadline somehow. You can see lots of examples for that in construction industry. Remember, China and the 2008 Olympics. They had a deadline for building Bird's Nest arena in quite a short period of time. In this case, it was really necessary to meet the deadline since the Olympics was to start on August 8, 2008.
How about software development projects? Product development? With agile methodology?
I think there are 2 options here: agile team does have external pressure for deadline, and the team is free to choose when to release. The main criteria for release is quality as observed in this tweet.
When reading blog posts and articles on lean and kanban (this one for example), I noticed that people are very wary of calling things their names and avoid saying it out loud - DEADLINES ARE CRAP. What matters is the work flow, the quality, the limits of WIP and the Definition of Done. So, if a team has no external pressure, the recommendation is to avoid extra stress by imposing unnecessary deadlines.
There's no rush for perfection, as they say. But how about external pressure? How about clients who bluntly say — I want this job done yesterday? Frankly, as I worked in outsourcing, I always felt an urge to say to such clients — if you want to have this done yesterday, you should have moved your a** yesterday and select a vendor who you trust yesterday. With custom on-demand projects, clients often fail to understand that meeting a deadline and completing a project on time is the responsibility of both customer and vendor, with customer even more responsible.
So, if you're with an agile software shop and you have such clients, there are 3 options:
- educate your clients on deadline concept as above and say bye to them
- bend over backwards, have stress, and deliver something-not-sure-what on a client's "yesterday" deadline
- patiently explain the client that only a part of what they want can be done by their deadline and prioritize work.
The sad thing is that the majority of clients will go elsewhere hoping to "get the job done yesterday". But if you really are competent, do good work, your reputation will start building up and at the end of it all you'll get a bunch of devout customers - especially if you work in a local community.