Mike Hill On TDD and Pair Programming

Mike Hill writes about how TDD and pair-programming increase production. He hits the nail on the head here:

TDD increases your production because it serves as a thinking-aid.  It limits back-tracking and gold-plating  and it reduces code-study and debugging.  Pairing increases your production for the very same reason.  Two developers together don’t type as fast as two developers separately, but we don’t care: the  bottleneck is the thinking, and pairing and TDDing both improve it.

Actually, he hits another smaller nail in the beginning of his post:

Sometimes I feel like some of these folks try too hard to soft-sell the excellent way presented by test-driven development (TDD) and pair programming (PP)

It’s true. Meeting with prospects, I usually get asked: "If we start doing unit tests we add X ( X changes every time) amount of work, right?" and I usually answer "It’s actually Y, but you gain…" (you know the rest). And any sentence starting with "but" does not sound that convincing, is it? I am planning to use some of Mike’s arguments, and see how people react.

And while you visit Mike’s blog, "Situated Geekery", look up another good post on "Microtests" (which is basically a good unit test).