« February 2009 »
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
You are not logged in. Log in
Entries by Topic
All topics  «
Blog Tools
Edit your Blog
Build a Blog
RSS Feed
View Profile
tao and software development
  道可编程非常道
Tuesday, 17 February 2009
Chop wood, carry water

There's an old zen saying: Before enlightenment, chop wood, carry water; after enlightenment, chop wood, carry water.

When reading/hearing debates about software development techniques, I often get the impression that people mix up ends and means. Even after all these years, there are still debates about the merits of test-driven development (TDD). Some proponents of TDD seem to be saying that our goal should be to use TDD; TDD is the desired end. I think the desired end is defect-free code and control of technical debt, and TDD is a means to that end.

One way or another, we have to achieve defect-free code and control of technical debt. For us, that's what it means to chop wood, carry water.

Is TDD the only means to do so? Of course not! To name a few: The Cleanroom approach; peer code reviews; extensive after-the-fact quality assurance testing; requirements tracking tools; defect tracking tools; and more.

TDD is certainly not the only means to that end.

It's just the best means anyone has come up with so far.

After enlightenment, one still chops wood and carries water. The desired end doesn't change. What does change is the means: One uses the most effective methods known. When something better than TDD comes along, it will simply be the next step on the path of enlightenment in software development technique. Until then: Chop wood, carry water. And after: Chop wood, carry water. The means isn't the end.

And if you, personally, don't "believe in" TDD: Chop wood, carry water, however you can.


Posted by Dave Nicolette at 8:03 PM EST

View Latest Entries