posted on Sunday, November 27, 2005 4:59 PM by Benjy

MS Definition of TDD creates a stink

I'm probably a little late to the party, but if there are others out there who havent read this before, go and take a look at Scott Bellware's post. MS recently published (and promptly took down ) an article outlining guidelines to TDD and created a huge storm of protest. As Im not an expert on the subject, all I can say is that Scott's post and the comments to the same as well as others on sites such as ObjectMentor have explained quite painstakingly why the MS bunch who wrote this have scr**d up.This is quite a pity as i was hoping the 'recognition' of Agile Development in VSTS would actually help the developer community instead of some folk trying to force a VS view of the world into development. Whats even more disturbing is how this conflicts with some of the well written articles from the P&P folk and other good bloggers from MS.

But one of the most interesting statements from Scott is as follows: "You simply cannot achieve the aims of Test-Driven Development if you start with sweeping assumptions of the structure of classes before you set down the kind of code that incrementally validates your assumptions.

If a developer leaps to conclusions about design of a class or family of classes, he will have missed the optimal design of the class. As the implementation of a class deviates from its inherent optimal design, implementation and maintenance costs for that class increase exponentially as the effort to cajole misshapen classes together into a system of misshapen classes increases. This increase in cost an effort is compounded by the number of classes in a system. Most codebases can’t sustain this pressure for too long and they are often disposed of and re-written entirely from scratch – using the exact same development methodologies that caused them to degenerate into entropy to begin with. "

I think thats a great way of putting it.

 

Comments