Favor the Now Over the Soon
Scott Davis Broomfield, Colorado, USA
One of my favorite sayings is, "Exaggeration is a million times worse than understatement." The project management variation on this is, "Now is a million times better than soon, and a gazillion times better than later."
If you're in the software development industry, you're familiar with the "vaporware" phenomenon -- software that is endlessly talked about but never actually delivered. We can plan the software. We can discuss the features it will have. But software that you can touch, run, and interact with is a million times better than a Word document full of requirements.
This means hurry up and write the software -- now! The prototype you put together will instantly give you feedback about usability. Worried about performance? How can you optimize performance without the software?
Agile software methodologies favor now, over soon, by focusing on quick iterations, often no more than a week or two. The idea is to get software written and in front of the user as quickly as possible. If the user likes what they see, you have an immediate victory. More importantly, if they don't like what they see, you have failed fast.
A quick success is only a hundred times better than a late success, but a quick failure is a million times better than a late failure. It gives you time to rethink, readjust, and rewrite the software sooner rather than later. A failure one week before the ship date can be a show-stopper. A failure early in the process gets forgotten by the time the software actually goes live.
If the software language or framework that you are using doesn't let you roll out new features in a matter of seconds or minutes, the tool you are using is part of the problem. If compiling your code takes hours instead of minutes or seconds, you will be less likely build early and often. These friction points in the software development put you at a distinct competitive disadvantage. Many of the top websites that you use on a daily basis can roll out new features in as little as 30 minutes.
They are also industry leaders because of the quality of the software they produce quickly. They test their code incessantly. Do they wait to until the end of the software development lifecycle to write their unit and integration tests? Nope. They write them now. Test-first and test-driven methodologies are “de rigeur” in top software development shops, because if testing is important, it is important enough to do now.
It is not that planning isn't a crucial part of successful software projects. Just do your planning based on modern software practices and expectations. Methodologies that date back to a time when code was written out in long-hand, meticulously transferred to punch cards, then hand-carried in a shoebox to a system administrator, don't translate well to an era where software is easy, free, and instantaneous. We are in the era of the now, and your processes should be adjusted accordingly.