An introduction into the TDD Mantra

![](/images/an-introduction-into-the-tdd-mantra/tddmantra.jpg)A while ago I gave a presentation, called “An introduction into the TDD Mantra”. The occasion was a technical meeting with some colleagues, to whom I wanted to introduce at least the principles behind Test-Driven Development.
 
A lot of people think TDD is the same as writing unit tests, [but it is not](http://steve.emxsoftware.com/TDD/TDD+and+Unit+Testing+are+NOT+the+Same). That’s why I wanted to explain it to people. Dan Bunea also has an article about it [right here](https://bloggingabout-linux.azurewebsites.net/blogs/danbunea/archive/2005/12/07/10480.aspx), and it seems he’ll continue this with more stories about how to do it.
 
My presentation slides are a more high level introduction with some statements that should trigger people to start thinking about Test-Driven Development. The part I liked most was the part where I wrote an application live, using TDD of course. You might recognize it as Robert ‘Uncle Bob’ C. Martin’s [Bowling Kata](http://www.butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata). I ‘translated’ it into C# with [an accompanying document](https://bloggingabout-linux.azurewebsites.net/UserFiles/Dennis van der Stelt/File/TDD_Introduction/Bowling_Game_Kata_for_Visual_Studio_2005.doc) to check if you’re doing it right. It seems Uncle Bob has done it hundreds of times over the years, I’ve done it 7 times or so now. Not once completely without errors. But that’s not bad, it’s fun to solve these in front of a live audience. And they’re just minor errors.
 
I also try to explain what Dependency Injection is, with some examples in code. Then a nice bridge to legacy software, in which I ask what legacy software is. It concludes with a great statement from (a colleague from) Michael Feathers, and that you should start writing unit tests immediatly, doing it the right way with Test-Driven Development.
 
[Download the slides here](https://bloggingabout-linux.azurewebsites.net/UserFiles/Dennis van der Stelt/File/TDD_Introduction/Introduction_into_TDD_Mantra.ppt) (1MB).
 
**Update:** Fixed the broken links