And *that's* really the more important point. I don't completely agree with him, either, I like your quoted post better. Programming is indeed an artform and many people don't approach it like that and then wonder why things tend to go pear-shaped.

Having thought about it for a few days I think "Duct-tape programming" is misleading. A better term would be "Lego programming". A good programmer knows how to build blocks in his work that are easy to re-use and have nice, neat abstraction boundaries. He also knows how to fit blocks together to get things done. Sure, some programming duct-tape might appear, but this is almost entirely in the glue logic. If it needs to happen elsewhere, a good programmer will tend to black-box it in a better way.

Lastly, a good programmer knows to code in the design phase, because effective programming is not a waterfall, but a spiral. Joel's article is actually attacking non-programmers who are still stuck in the waterfall development model. "Duct-tape programmers" are *one* antithesis of that, but if you aren't careful, you get a "copy-n-paste programmer" which is also bad, but for a different reason.

Wade.