Coders at Work and Duct Tape Programming

I finished reading Coders at Work! I really enjoyed the interviews with Jamie Zawinksi, Douglas Crockford, Brendan Eich, and Ken Thompson. I wasn’t too interested in compilers and the much older systems some of the programmers once developed in. I must admit, I had a short attention span reading over those sections.

Anyway, the reason I picked this book up was because back in late September to early October 2009, I remember reading several blog posts on duct tape programming. They all pointed to Joel Spolsky’s blog post: The Duct Tape Programmer.

The quote was from Jamie Zawinkski, on his pet peeve of developers who over-engineer:

At the end of the day, ship the fucking thing! It’s great to rewrite 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. –Jamie Zawinkski

My first reaction after reading Spolsky’s post was with some disgust. The word that came to mind was: Grief. Software developer grief. Let me explain.

I define software developer grief as the unhappiness a developer gets from inheriting badly written or non-functional code from another developer. I have felt this grief a few times. I’ve had to work with code where it’s been released out to production, where the code doesn’t even function properly and hasn’t, EVER.

Now I’m not aware of what the development conditions were like when those kind of coding projects were in place. But, the code, definitely shouldn’t have shipped. In these cases, duct-tape or band-aids were used instead of a functioning wheel to the go-cart; because the go-cart just wasn’t doing what it should have been doing.

But after reading Uncle Bob’s response, it made more sense what Spolsky was talking about. The spirit of what they’re both preaching, is to ship working code, it doesn’t have to be pretty or perfect, just make it work! The clean-up can, and should occur later.

That, I agree with.

Get the book on Amazon: Coders at Work

Coders at Work

See also