Overcoming Impediments to Test-Driven Development
Overcoming Impediments to Test-Driven Development
Recently, I had the chance to sit down with Scott Bain, author of Emergent Design and an expert in Test-Driven Development. He wanted to talk about what he has seen as impediments to implementing Test-Driven Development: impediments that arise before an organization decides to adopt TDD and impediments that arise after adopting TDD. He bases this on his conversations with clients who are in the midst of implementing TDD, on his coaching experience, and on own personal journey with TDD has he has incorporated the concepts into Net Objectives training in Design Patterns, TDD, and Analysis.
Impediments before adoption
Before organizations decide to adopt test-driven development, they usually have to address one or more of these challenges:
- Developers will be doing double work and be less productive
- Developers know their code too well and cannot write tests well
- Testing before coding seems nonsensical
Impediments after adoption
The impediments do not stop after TDD has been adopted. What we see is that after Iteration 3, the TDD effort begins to collapse. It takes too long, the tests are difficult to change, or it is hard to keep up with multiple tests
Overcoming these Impediments
The answers to both of these impediments lies in gaingin a new, essential insight: in TDD, the entities we write not not actually tests. They are specifications. What we are doing is replacing traditional specs with automated specs.
The process of writing the specification is an analysis task, one that leaves behdind a suite of tests as a side-effect artifact; thus, it is not double work.
TDD does not replace Quality Assurance. They will not be sufficient for all testing.
TDD is another fundamental skill that developers, especially Agile developers, must have. It is something that they can learn when they receive proper training.
Recommendations - Training by Net Objectives
Recommendations - Reading and Resources
- Emergent Design: The Evolutionary Nature of Professional Software Development by Scott Bain
- The Net Objectives bibliography for Technical Development
- The Net Objectives Resources library for TDD
Music used in this podcast:
- “Pizzaman” and “Chocolate” ©2006 William Cushman: ghostnotes.blogspot.com
For more information, contact info@netobjectives.com or visit us at www.netobjectives.com
- Scott Bain's blog
- Login or register to post comments


Technorati Tags:
tag with del.icio.us