Lately, there was a blog post by Joel Spolsky called "The Duct Tape Programmer", which is very opinionated and caused quite a lot of responses and discussions in the blogosphere. Basically, this post contrasted the duct tape worldview of developing software to the astronaut architect's, forcing programmers to decide between quick-and-dirty solutions on the one side and analysis paralysis on the other. The replies that I like most, are by (Uncle) Bob Martin, Ayende and Jeffrey Palermo. I think they make the problem clear (which the original post doesn't...) and vote for a more rational view on it. These are my additional thoughts in reply to Joel's original post.
Are programmers idiots ?
By one paragraph in Joel's post, I felt especially insulted:
One principle duct tape programmers understand well is that any kind of coding technique that’s even slightly complicated is going to doom your project. Duct tape programmers tend to avoid C++, templates, multiple inheritance, multithreading, COM, CORBA, and a host of other technologies that are all totally reasonable, when you think long and hard about them, but are, honestly, just a little bit too hard for the human brain.
So the average programmer is a sheer idiot not being able to cope with even "slightly complex" things? Frankly, Joel, who do you think you are? Do you really think there are only idiots in your part of the globe, and you are the only enlightened human being between them?!
Write bad code or none at all ?
As I said before, the blog post basically makes the point that a developer has the choice between writing quick-and-dirty ("duct tape") code to deliver on time, or being lost in over-complexity and never reaching a point where the software can be shipped. But Joel: There's a world between messy code and analysis paralysis. Most of us idiots live in there, working hard to figure out the best trade-off between the two extremes for every individual project.
Duct tape blogging!
All in all, the original blog post is quite confused in his thoughts and highly abusive in its language. It's a perfect example for what I would call "Duct tape blogging": Spit out some crap that somehow fits the productivity bill in a very short-sighted view, and don't use your brain too much to think towards the end - it might get too complex, so you better don't even try...
In my opinion, Joel's post casts a very poor light on our profession. I don't want to be identified with the post or the person who wrote it...