Collective Wisdom from the Experts 115
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, then 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 to 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 pro-
duce quickly. They test their code incessantly. Do they wait until the end of
the software development life cycle 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, and 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 pro-
cesses should be adjusted accordingly.