ArticleS. UncleBob.
MsTdd [add child]

MSTDD


Microsoft has recently published their Guidelines for Test Driven Development (here). These guidelines are closely intertwined with the use of Visual Studio 2005 Team System. Frankly, it doesn't bother me very much that they are trying to push their tool in conjunction with TDD. They are a business, and that's what businesses do. What bothers me is that they so completely missed what TDD is, and so badly perverted what makes it work. If the tool doesn't support TDD (and it doesn't), they shouldn't claim that it does.

In a recent blog I described TDD as three tightly intertwined rules that force very tight iterations between the creation of unit tests, and the creation of production code. The Microsoft definition describes it as a waterfall of:
  1. analyzing requirements to produce a list of unit tests,
  2. designing classes with a design tool,
  3. generating unit test code from the design tool,
  4. implementing the design and making the unit tests pass.

Michael Feather's commented on this in his blog. I think he used kid gloves. I think Microsoft should pull these guidelines and try to figure out some way that the tool might actually support TDD. Redefining TDD as some kind of waterfall, just because their tool supports it that way, is not very helpful to the industry; and most programmers are all to clearly aware of this. If Microsoft would like to win the hearts and minds of more developers, they'd better try to figure out where the industry is actually going, rather than trying to drag the industry into it's tool. IMHO they should look very carefully at Eclipse, and IntelliJ == especially IntelliJ.

Bottom line: We don't need tools that help us do waterfall better. We don't need vacuous process guidlines with 14 linear steps describing something that is not TDD while claiming otherwise. We don't need to be force fed Visual Studio. What we need from Microsoft is for them to stop talking and listen.



 Sat, 19 Nov 2005 09:04:34, Sebastian Kübeck, Signs of desperation
I think the problem is that they obessively follow the pattern of code generation
that forces the developer to write tests afterwards (if ever). Now, as more and more
people adopt TDD, they have to react on it somehow without changing their mantra.
The solution they offer is kind of an ugly workaround.
It would have been great if they didn't call it TDD to avoid unnecessary
confusion. I'd suggest "Code Generation Driven Development with Test Placebo".
 Sat, 19 Nov 2005 18:59:12, Phil, Sighs... from signs of abuse
Just a sign of buzz abuse. It is too bad, because boiler-plate test generation can be useful, very much like static analysis or the failures and feedback you get from a compiler are useful. But this is light years away from the practice of TDD, and most likely light years away from delivering any benefits. Reading the recommendedd step by step approach just makes me sick.
 Sun, 20 Nov 2005 12:43:44, Zorkerman, Watering down the jargon
Another thing to consider is Microsoft's power to influence the discorse of software development. Such that the connotation and meaning behind 'TDD', which is just getting mainstream enough for Dilbert to make fun of, could really be harmed.
 Mon, 21 Nov 2005 03:45:12, Eivind Waaler, ReSharper
Visual Studio can be a little better using ReSharper (http://www.jetbrains.com/resharper/), a sweet little addon from the creators of IntelliJ. Although it won't learn Microsoft anything about TDD, it might allow developers who understand TDD to apply it correctly even in Visual Studio :)
 Tue, 22 Nov 2005 19:44:54, Craig Demyanovich, Microsoft Takes it on the Chin Over Test-Driven Development
Scott Bellware has blogged about Microsoft's approach to TDD: Microsoft Takes it on the Chin Over Test-Driven Development. I'm just starting to read it. Though long, it looks like it'll be good.
 Tue, 22 Nov 2005 19:46:34, Jop, Does Visual Studio Rot the Mind?
 Wed, 23 Nov 2005 18:36:38, Michael Feathers, The scrutiny worked
Microsoft has pulled that page on TDD.
 Thu, 24 Nov 2005 03:06:11, Sebastian Kübeck, TDD obsolete?
"This topic is obsolete and has been removed from the MSDN documentation."

I want to know what's going on there now at Microsoft...

 Thu, 24 Nov 2005 05:16:23, Andrew Wall, There is still this...
We can always redirect people to Test-Driven C# on the msdn site. Will Stott and James Newkirk discuss TDD, extreme programming and NUnit. There's still hope, so just keep on waiting and blogging.