Monday, June 25, 2012

Why Managers Hate Test-Driven Development (TDD)

Why do managers (and many developers) hate test-driven development? Many developers hate the extra work: creating unit tests, mocking frameworks etc. And besides, their code always runs correctly the first time, right? But why do managers refuse it?

Consider the chief aim of the manager: to show progress to their boss. And consider the fundamental truth of all software: it will have to be tested.

A "test-free" schedule can show three months of effort to reach the System Testing phase. That is, after three months the manager can report "We're done with the coding, we're just in testing now". The fact that it now takes six months to "test" (and rebuild) the code is ok, because all managers know know that developers produce crap that has to be tested for a long time.

On the other hand, the TDD manager takes five months to reach the System Testing phase. Thanks to TDD, System Testing only takes one month. Delivery in six months instead of nine.

But for two months the non-TDD manager has been able to claim progress, while the TDD manager gets the stink-eye from the Big Boss.