Is TDD always the right choice?

For the unfamiliar TDD can be a scary concept, and difficult to justify a need for such significant change in development approach. The fear is due to preconceptions associated with the learning curve and perceived shortcomings such as longer time to implement. Which is entirely false.

“While it is true that more code is required with TDD than without TDD because of the unit test code, total code implementation time is typically shorter.”

There is a natural aversion to adopting a practice like TDD for most experienced developers due to a number of misconceptions.

 

Many very experienced developers who have worked in TDD still express doubts about it’s desirability. Ayende posts on the topic to initiate some discussion by highlighting his issues with TDD. These issues are then addresses neatly in the following post by Daniel Cazzulino.

http://davesquared.net/2007/05/tdd-and-unit-testing-misconceptions.html

https://en.wikipedia.org/wiki/List_of_software_development_philosophies

http://productdevelop.blogspot.co.uk/2012/05/what-are-different-benefits-of-test.html

http://hackingon.net/post/Test-Driven-Development-Return-on-Investment.aspx

http://powersoftwo.agileinstitute.com/2012/08/the-roi-of-test-driven-development.html

http://www.codinghorror.com/blog/2005/10/unit-testing-vs-beta-testing.html

http://www.gilzilberfeld.com/2010/12/what-is-1-benefit-of-tdd.html
More links to come.

Short answer. No.
Long answer. If maximizing return on investment is important to you, and you are working with modern technologies and frameworks. Hell yes.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s