I remember when builds took all night and my dad can tell me horror stories about the days going almost all the way back to wire-wrap computers (when build times were just that BUILD times), but with today's hard-core horsepower it seems like build and deployment times should be a complete non-issues. Nope, build times still matter for the very simple reason that code junkies can't wait. People think fast. When doing public speaking the challenge is to keep the audience attentive. The reason it's so hard is that the people listening are thinking WAY faster than you are speaking and as a result their attention can quickly find other things to focus on (like the spaghetti stain on your white shirt). This can even happen when reading and it certainly can happen while waiting for a build. As a point of fact I decided to write this blog entry while waiting for a full build and deployment of a J2EE system. Thankfully it is a JBoss deployment rather than a WLS or (God forbid) a WAS deployment. If it had been a WAS deployment I could have found another job on rent-a-coder and completed it while waiting.
If a build and deployment takes more than 1 minute it's too long. Which is another way of saying that every build and deployment takes too long (congrats perl, python, smalltalk, etc which are immediate). Compiling in the background as you type (ALA eclipse) makes the situation a lot better but still leaves out typical deployment issues. JSPs also help but ultimately after my fifteenth cup of coffee I pretty much want it to be running and testable NOW (as in immediately after I hit enter on the last line).
What's the answer? There is no perfect answer but here are the things that work:
- Unit tests work pretty well for speeding up testing on big applications
- Doing two things at once if you can time slice your mind (it takes some practice)
- Writing less code
- Not using application servers
- Breaking the caffeine addiction and learning Transcendental Meditation
- Using a non-compiled language (although there can be run-time deployment issues that can be just as bad so this is no panacea)
In the end, I suspect I'll just have to keep writing my blog while the thing builds. Hey, it's done now!









