Friday, May 16, 2008

Crooked is the house TDD Built

Is TDD Just another Word for bad development?

There are two typs of coders in my experience. The first type, when presented with a challenging problem to solve, step away from their computer. They sketch, make notes, erase, refine, an repeat. They make a list of questions they need to answer about what the technology can and cannot do. They find books, articles, etc, and research further. They may produce software but it's only to test aspects of the solution they will produce. Once they've produced a solid and well tested design, they code. The result is code that is consistent as a whole across the entire solution and system.

The second type, when presented with a challenging problem to solve, sit down in their IDE and start coding. Claiming to be following methodologies like TDD and Agile, they work through a process whereby their code is 'refactored' repeated as they model and code and test and refactor. They code they end up with is evolved from what they started with through multiple iterations. The result is code that fragile, poorly designed, difficult to maintain, and functions poorly as a system. The resultant code is even more likely to be poor when the size of the team expands, as each member may be refactoring and redesigning a piece of the solution while others are expecting consistency.

The difference? Can you imagine the result of building a house using the Test Driven Development methodology?

Does TDD have a place? Yes, TDD is a valid methodology for individuals to follow when maintaining existing code.

Savant Dude

1 comment:

Anonymous said...

I think that Agile is very valid, we use it on most of our projects.