Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Testing Myth: TDD Not Suitable For Exploratory Programming (jamesgolick.com)
9 points by kirubakaran on Oct 9, 2007 | hide | past | favorite | 3 comments


I am not so sure it is a "myth".

There is this old programmer.reddit post (http://programming.reddit.com/info/1kth0/comments) about an XP/TDD "guru" who does "exploration" with unit tests and another developer (a real guru this time, no quotes around the word) who doesn't.

TDD is a valid technique when it fits. What's annoying is this tendency on the part of some of its practitioners to make it out into some kind of panacea.


I'm a guy who's supposed to know all about TDD (I teach organizations how to run software teams) so I hope I don't jump the shark with this comment.

I just have a hard time seeing TDD in all cases. As one commenter pointed out, some systems evolve and some are specified. Evolving systems have execution units (classes, modules, etc) that can change a heckuva lot. Specified systems don't. On a specified system, you know within 80% or so what your hunks of stuff are.

Now I've coded a lot of specified systems. No, you don't design every little detail, that's not what I'm saying. But if you're writing code to balance a checkbook you're not going to end up with a program to make spaghetti. In the startup world, you very well could end up somewhere in a completely different problem domain. Whatever happens, I wouldn't want the testing structure to get in the way of the best design, simply by making it so hard t do heavy refactoring.


He has a point... TDD is already out of style because it's not flexible for code evolution

The new trend is BDD: Behavior Driven Programming. It's a cross between automated functional testing and unit testing...

http://behaviour-driven.org/

What's good about it is that it also serves as a requirements spec, and since it's more flexible - it doesn't feel as tedious. There are already mult implementations in most major languages




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: