Saturday, March 1, 2008

Make sure you have GUTs

There was a pretty good article on InfoQ today titled: "Cockburn on Testing: Real Programmers have GUTs". Basically, it talks about how TDD is just one way to achieve the more important goal, which is Good Unit Tests, aka GUTs.

Alistair Cockburn continues to be one of my favorite of the "methodologists" in that he's one of the few to actually recognize and stress that people are first order components in software development. Because you can push process til the cows come home, and some processes certainly are better than others, but at the end of the day it's the people that make software development projects successful.

And he hits the nail on the head once again with his GUTs observation. People pushing things like TDD, CDD, etc often just come across as methodology bigots trying to push their latest process du jour onto people. And they are losing sight of the bigger picture.

But GUTs is something much easier to agree on. Because GUTs are a measurable artifacts (e.g. using coverage tools), not a process. And at the end of the day, it really doesn't matter if your wrote your tests first, wrote them last, wrote them on a plane, or wrote them on a train. What matters is that if you have them, you can measure them, and they provide tangible benefits.

So I hope that the GUTs term achieves mindshare. If it does, it will make it easier to advocate GUTs in whatever process your company uses in whatever way makes sense for that process without having to fight the uphill battle of advocating an entirely new process. Translation, less time dealing with politics and FUD and more time spent actually getting things done.

P.S. If you are struggling to find a way to emphasize the importance of tests, I highly recommend a tool that can generate a "treemap" showing your test coverage (e.g. Panopticode). Because it's an amazingly concise, visual way to convey coverage.All black is bad. All green is good. Put a picture in your project's weekly status report to convey where you're at.

No comments: