Joel Spolsky wrote an article about “duct tape programmers” last week that got a lot of attention:

Here is why I like duct tape programmers. Sometimes, you’re on a team, and you’re busy banging out the code, and somebody comes up to your desk, coffee mug in hand, and starts rattling on about how if you use multi-threaded COM apartments, your app will be 34% sparklier, and it’s not even that hard, because he’s written a bunch of templates, and all you have to do is multiply-inherit from 17 of his templates, each taking an average of 4 arguments, and you barely even have to write the body of the function…

And the duct-tape programmer is not afraid to say, “multiple inheritance sucks. Stop it. Just stop.”

There have been many responses to the article. This reminds me of the Einstein quote:

Everything should be made as simple as possible, but not simpler.

Sometimes there are tasks which require complicated solutions, but it seems that some people really enjoy making solutions more complicated than necessary.

I think Spolsky gets off track at the end of the article with rants against unit testing and an odd warning that you have to have a lot of talent to be a duct tape programmer (but our brains are too small to not be a duct tape programmer? I’m not sure where that leaves the rest of us).