No deadline. No ship. It’s that simple.
When I was a kid, my big sister and I were addicted to a show called “Out of This World”. The show revolved around a Evie, a young girl with an alien for an estranged father, who could freeze time simply by pressing her index fingers together. I don’t have to tell you that this is the type of concept that takes hold in the mind of an 8 year old and never lets go. I also don’t have to tell you that I spent countless hours in my room pressing my fingers together hoping that ‘maybe this time’ time would freeze for me.
As I’ve gotten older, obviously I’ve realized the fallacy of this idea. The idea that a race of aliens (the Antareuns, I believe) who are capable of freezing time could ever develop interstellar travel is ludicrous.
You see, interstellar travel would be a huge technological achievement, even for the race of extra-terrestrial swingers that existed in the show. An achievement so large, in fact, that it could have only been wrought by the constant pressure of deadlines.
The problem, however, is that deadlines and time pressure would be meaningless to a race that could freeze time on a whim. Why march towards a ship date when you can just freeze time until it’s ready? What forces the tradeoff between delivery and functionality when you can simply freeze time until all of the functionality is done? You see, as technologically advanced as the Antareuns were they lacked one crucial piece of knowledge that we learned in software long ago: if you don’t have a deadline, you’ll never ship.
Without the pressure of a hard deadline features will creep, schedules will slip and a released product yours will never be. Part of the reasoning behind this comes back to an idea known as Parkinson’s Law. Parkinson’s Law succinctly states: Work expands so as to fill the time available for its completion. What this means in a nutshell is that regardless of the true time required for a task, however much time you schedule for the task is how long that task will take. Do you have a 1 week feature on the schedule for 2 weeks? Then that feature will take 2 weeks. How about that 30 minute meeting scheduled for 1 hour? Congratulations, you just bought yourself a 1 hour meeting. Like water, any task will invariably expand to fill the time allotted for it.
So what happens when you have a task without a deadline? Then that task has an infinite amount of time allotted for it, and thus, that task will never be completed. If you want to ship your product then you have to set a deadline. No, your product won’t be done at arrival of your deadline. It won’t have all of the bells and whistles you so desperately believe that your customers need and it won’t have that last 0.999% of polish that it would be unthinkable to release without. However, guess what: your competitor’s product won’t be done yet either but it’ll already be in the market. And if their product is all your customers are going to see, then all of the polish in the world won’t save you.