
Duct tape context: A tale of two rewrites - gthank
http://gigamonkeys.com/blog/2009/09/28/a-tale-of-two-rewrites.html
======
fogus
Wow. Call me crazy, but it seems odd that Joel's original duct tape post
should generate so much chatter. Maybe I'm the crazy one?

~~~
wglb
I think the reason that has generated so much chatter is that jwz's experience
goes against a lot of current advocacy--TDD, c++, design patterns. Personally,
I think this is a worthwhile discussion.

And this is just from the first chapter. Spoiler: it doesn't really get any
better for C++, TDD, IDEs in the rest of the book.

~~~
DannoHung
Y'know, I don't like IDEs or C++ much myself, but I have never, ever regretted
the time I took to write tests. I'm not a devoted TDD advocate though;
sometimes I'll think of tests to write first, sometimes I'll write some code
first, but I sure like having those tests there pretty soon after I'm done
touching the code for the first time.

I'm gonna keep plugging away at tests until they don't make sense to me any
longer no matter who tells me they're not needed.

~~~
tptacek
I've definitely regretted tests. Badly written or ill-conceived tests couple
test code to implementation details. On several projects, I've found myself
stuck in places where trivial (and necessary) implementation changes
necessitated 45+ minutes of test grooming.

Testing is good. Long live tests. But be careful not to let the cart drag the
horse.

~~~
barrkel
My painful experience also.

The principle of test-first also sounds appealing, the idea being to write the
test code, and thus end up with an easier to use API.

It depends on the kind of project, how firm the design is, how much rework
will be needed, how prototype-y it is, where the architectural divisions will
lie => what's the most testable APIs, etc.

------
alexgartrell
I actually did buy the book because of the discussion that came from it.
Definitely a good series of responses.

I also bought Programming Clojure for free shipping. An Amazon Recommendation
win, to say the least.

