Test Driven Development
I developed deck.js off and on over the course of a few months, in lulls between stretches of client work. Yet another advantage to TDD is that it makes picking up development easier after weeks away from a project. Just fire up the tests, see what fails, and get to work.
Caleb Troughton, Deck.js Post-Mortem Quick Hits
TDD is also invaluable when you are chronically sleep-deprived. I built a non-trivial chunk of Sparkle over a month where I didn’t sleep more than 3hr at a time. Although I could barely remember my own name, TDD enabled me to deliver the feature (albeit four times slower than usual) flawlessly into production and it’s worked perfectly ever since.
The biggest perceived “con”, increased development time, is more than erased by the time saved as a result of the pros.
Unfortunately it didn’t help with remembering my name.