How good is a Duct Tape Programmer
Joel Spolsky recently published a post entitled The Duct Tape Programmer. I must say that there are some points Joel makes that I strongly disagree with. I hate the attitude that getting the application done as quickly as possible is all that matters. The only situation where I would even remotely consider this is for an app that will only be used once. Why? because an app that is used once doesn’t need to be maintained, and duct tape code that is written to ship the software as quickly as possible is horrible to maintain. So sure, you might be able to ship the app quicker and produce some extra revenue because of it, but you will lose revenue in the long run as the maintenance cost will skyrocket because it will be hard to maintain and if any enhancements are added then most likely large amounts of code will need to be rewritten.
Another sentence from the post that irritates me is the following: “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.” Really? So we should all code like we did in college and never get better? There’s a reason for the complication in some code… it’s because it makes it easier. Easier to maintain and easier to add enhancements. So what if it’s complicated. Learn it. I’m not going to write simple software just so the average joe can understand it. I’m going to write software that’s easy to maintain and easy to add enhancements, and that often means the code can become somewhat complicated.
Now that I went on my rant, I do think there is some good in Joel’s post. I think some programmers, myself included, like creating huge frameworks that will clean the dishes and do the laundry, but often times it is overkill and not needed. But that should not be an excuse to write half-ass code either.