InfoQ

Interview

Hakan Erdogmus on TDD Misunderstandings and Adoption Issues

Interview with Hakan Erdogmus by Deborah Hartmann on Jul 11, 2008 03:13 AM

Community
Agile
Topics
Unit Testing
Tags
TDD
Summary
In this interview made during Agile 2007, Dr. Hakan Erdogmus, Editor in Chief of IEEE Software, discusses about TDD starting from a study done by Ron Jeffries and Grigori Melnik and published as "TDD--The Art of Fearless Programming" in the IEEE Software magazine. Hakan talks about current misunderstandings regarding TDD's role in software development and the adoption issues it faces.

Bio
Hakan Erdogmus is a senior research officer at the National Research Council in Ottawa, Canada. He’s also an adjunct professor in the University of Calgary’s Computer Science Department. Hakan is a member of the IEEE, the IEEE Computer Society, and the ACM. He holds an MSc in computer science from McGill University, and a BSc in computer engineering from Boğaziçi University, Istanbul.
So here at Agile 2007 we received in our conference package a copy of IEEE Software and I noticed that you are the editor in chief. I noticed that this edition is called Test Driven Development. Why did you focus a whole edition on Test Driven Development in particular?
I noticed that the two guest editors on that edition are Ron Jeffries and Grigori Melnik.
For clarity, what do you mean by TDD?
You have been very careful in explaining what you think Test Driven Development entails. Are you trying to dispel some myths?
I sort of see TDD as actually being about requirements, understanding requirements.
Does it really make a difference?
Is that the silver bullet or are there pitfalls?
So you are a researcher. Tell me why I would go to the trouble of writing forty percent more code, sixty percent more code and maintaining it. What are the benefits?
You have spoken about adoption issues. What kind of things are you seeing in terms of adoption issues around TDD?
So, you're saying that it is not a good idea to have TDD being optional among a team, with some practicing it and some not?
So you are talking about a technical practice, Test Driven Development, and still I have noticed that some of the obstacles that you have mentioned are human obstacles: perception of management, personal style of working and things like resistance to change and also team work. Do you have any suggestions for approaching that?
So it sounds like the current edition of IEEE Software on TDD might be recommended reading for people who are looking at dealing with those.
show all  show all

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.