Channels ▼

Arnon Rotem-Gal-Oz

Dr. Dobb's Bloggers

The Duct Tape programmer?

September 24, 2009

I read this blog by Joel Spolsky on the "Duct Tape Programmer", where he praises dropping any libraries or testing or proper coding in favor of getting something out there:

"He is the guy you want on your team building go-carts, because he has two favorite tools: duct tape and WD-40. And he will wield them elegantly even as your go-cart is careening down the hill at a mile a minute. This will happen while other programmers are still at the starting line arguing over whether to use titanium or some kind of space-age composite material that Boeing is using in the 787 Dreamliner."

While I suspect the main reason Jo wrote the blog a little provocatively is to promote the book mentioned there (Hey, it worked, I am writing on that..), I guess some people will take this at face value so I'll respond anyway.

Let's start with the good stuff

  • Focus on shipping software – Tools, pretty code, fancy frameworks, patterns etc. are no excuse for not shipping your product. 100% agree
  • Overengineering is bad for your (project's) health – We've been through that before – complex frameworks , big up front design, are bad all bad
  • Don't use a technology/framework just because it is there – if you don't have a real problem then KISS (keep it simple stupid)
  • Simple design is, well, less complex than complex design – so it is usually preferable

In a similar fashion to Joel's post, I wrote that even the "Big Ball of Mud" which is an architectural nightmare can be considered a pattern for a pragmatic approach to building working software.

However, I also added an important caveat which is missing from Joel's post:

"This is probably not acceptable in the long term - but it can be a good option for short term if you are aware that that's what you are doing and willing to treat what you get as "Throwaway code"."

If you can't afford to throwaway the code (or not sure you will be able to) it is still ok to cut some corners in order to get things done. However you should keep in mind something Uncle bob said a few days ago : "A Mess is not a Technical Debt."

Oh, and by the way, duct tape isn't a good analogy anyway :) – in the first gulf war, the government in Israel recommended people to prepare their houses for Sadaam's future missile attacks by duct-taping the windows and other openings. The only reason it actually did work was that there were hardly any missiles shot. So yeah duct tape may seem to be working and everything but you better not put that into a real test

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video