Quantcast
Channel: Object Mentor Blog: The Duct Tape Programmer
Viewing all articles
Browse latest Browse all 26

The Duct Tape Programmer

0
0

In Joel Spolsky’s recent blog he talks about “Duct Tape Programmers”. These “pretty boys” don’t use complex tools like C++, Templates, COM, Multiple Inheritance, etc. They don’t waste their time going to “goddamn Design Patterns meetups”. They don’t do all the fancy things that speakers at conferences talk about. They just ship product.

Surprisingly I agreed with almost everything he wrote. Almost…

It’s a good blog. It’s a really good blog. Oh I don’t mean his silly complaining about C++ or Templates or COM. (Although doing just about anything that involves Visual Studio is something I don’t want to think about.) I think you can ignore the specifics of what Joel said. What’s good about the blog is the spririt.

Quoting Peter Seibel quoting Jamie Zawinsky: ’“Yeah,” he says, “At the end of the day, ship the [f___ing] thing! It’s great to rewrite your code and make it cleaner and by the third time it’ll actually be pretty. But that’s not the point—you’re not here to write code; you’re here to ship products.”’

Now don’t get me wrong. I’m the “Clean Code” guy. I want your code clean. I don’t want you making a mess. On the other hand, I want you to ship. I don’t want you gilding the lilly. I don’t want you wrapped up in endless polishing.

I want you to ship, but I don’t want you to ship shit.

If you think I’m contradicting myself, you’re wrong. There is no contradiction in the notion that you must ship, and that you must be proud of what you ship.

The programmer who spends weeks building the perfect structure does just as much harm to the project as the programmer who hacks a bunch of crap together. Neither have struck the balance that’s required.

In short, it’s bad to use too much duct tape. But I’d be suspicious if I didn’t see some duct tape!

As for Joel’s consistent dismissal of unit testing, he’s just wrong about that. Unit testing (done TDD style) does not slow you down, it speeds you up. One day I hope Joel eventually realizes this. Programmers who say they don’t have time to write tests are living in the stone age. They might as well be saying that man wasn’t meant to fly.

As for Joel’s consistent complaints about C++, Templates, Design Patterns, COM, etc, etc. Any tool can be over used. There’s nothing wrong with any of these things, and they all have benefits to provide. So long as you use them for their benefits, instead of for their “cool-ness” (COM? Cool? Well, Joel’s an old guy like me.) you’ll be fine.

Again Joel’s specific complaints can be ignored. The spirit of simplicity, however, should be taken to heart. If you don’t need a “cool” technology, you are probably better off not using it. Keep things simple. Keep things uncomplicated. Don’t pack your system with every new idea you’ve heard.

Not that you shouldn’t learn new ideas, and new languages, and new APIs; you should! But you don’t have to use them in systems as soon as they are out of the box. Let them cure a bit.

I found myself annoyed at Joel’s notion that most programmers aren’t smart enough to use templates, design patterns, multi-threading, COM, etc. I don’t think that’s the case. I think that any programmer that’s not smart enough to use tools like that is probably not smart enough to be a programmer period.

I won’t make excuses for programmers. Programers should be smart. Programmers should be very very smart. Indeed, programmers should be smart enough to build beautiful and robust systems from a small set of very simple tools.

So. Be smart. Be clean. Be simple. Ship! And keep a small roll of duct tape at the ready, and don’t be afraid to use it.


Viewing all articles
Browse latest Browse all 26

Latest Images

Trending Articles





Latest Images