You know, I always carefully vet the coaching advice that I give out. I do it by going out to gigs ignoring my own advice, then studying how everything turns to shit. Thankfully, I’m very handsome and can generally get by on my looks.
Not too long ago, I went out and demonstrated that TDD really doesn’t work if it takes ten minutes to go from ‘save’ to ‘pass/fail’.
Science marches on, yo.
What Is The Build?
We don’t talk that much about “the build”. I gesture to the build, and we all kinda know what I mean. Doesn’t feel good enough.
The build is all the aspects of a development environment that are required to enable a given technique.
Notice that this is a very broad definition. Here’s a few examples to help get it right. Every one of these items would make true TDD almost impossible:
- Compilation times greater than a minute;
- No way to run directly on the developer’s box;
- No way to separate “our code” from “their code”;
- Source control that requires advanced degrees to use;
- Source control that has every developer on a separate branch (I am not kidding.);
- No way to test without bouncing the local web server.
This list could go on quite a ways further if I sat down to list every TDD showstopper I have ever encountered in the field.