"The single most important factor in the quality of an individual's software development is the length of the compile/debug cycle"
I don't know how many times I think to myself 'I could set up a proper environment in which to develop and test this change, but it's such a little thing I'll just fudge it'. Like I use the Ant build instead of the IDE build. Or I redeploy the EAR instead of setting up hot class replacement.
And every single time the 'little thing' requires far more compile/debug cycles than I expected, so the job either:
- takes way longer than it should
- gets done sloppily because you can't stomach umpteen more compile/debug cycles to tweak every last little pixel alignment
And every single time I wish I'd spent that little bit of extra time, upfront, to set up my environment efficiently.
This principle extends to the build/upload cycle too. If I can reduce the amount of stuff I have to re-upload to the server when I make a change, I can reduce the amount of time I have to get distracted and go surf slashdot, thereby 'context switching' my brain and slowing me down even more.
Anything that reduces that compile/debug cycle is gold. We've all known this for a long time, but I think we all often forget it again too.