Overcoming Impediments to Test-Driven Development

May 12, 2008 — Posted by Scott Bain

Listen to the podcast 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 gaining 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 behind 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

Music used in this podcast:

For more information, contact [email protected] or visit us at www.netobjectives.com

Author: 
Blog Type: 
Podcast

Share this:

About the author | Scott Bain

Scott Bain is an consultant, trainer, and author who specializes in Test-Driven Development, Design Patterns, and Emergent Design.



        

Share This Blog

Free Email Updates!

Sign up for free email updates from
Net Objectives Thoughts Blog

Blog Authors

Al Shalloway
Business, Operations, Process, Sales, Design Patterns and Object-Oriented Analysis & Design, Personal Development, Agile, Lean-Agile, Kanban, Scrum, Scrumban, XP
Cory Foy
Change Management, Innovation Games, Team Agility, Transitioning to Agile
Jim Trott
Business and Strategy Development, Analysis and Design Methods, Change Management, Knowledge Management, Lean Implementation, Team Agility, Transitioning to Agile, Workflow, Technical Writing, Certifications, Coaching, Mentoring, Online Training, Professional Development, Agile, Lean-Agile, Kanban
Ken Pugh
Software Design, Design Patterns, Technical Writing, TDD, ATDD, Coaching, Mentoring, Professional Development, Agile, Lean-Agile, Scrum
Scott Bain
Analysis and Design Methods, Transitioning to Agile, Design Patterns and Object-Oriented Analysis & Design, Software Design, Design Patterns, Technical Writing, TDD, ATDD, Coaching, Mentoring, Online Training, Professional Development, Agile