Cameron Watters: software engineer & erstwhile engineering manager / director

Hammers

…it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. 1

For various reasons, I come across folks quoting this maxim or it's variants.

It usually happens at work, though, as I work in software, the job rarely involves literal hammers.

An increasingly common proposal for technology org simplification / optimization that I encounter resembles this:

For all problems that can be solved with a hammer, we should use a hammer.

On the surface, this seems entirely reasonable. Use a hammer for problems that a hammer is good for solving. Yes!

Then, I remember the hammers in my garage.

My hammers

Nail-driving hammers

Roughly half of the hammers in my garage are intended to drive some kind of nail.

Using the checkered-face framing hammer to do finish work would yield poor results.

Using the 10oz smooth-face hammer or tack hammer for framing would be needlessly tedious.

Hammers which are (generally) unsuitable for driving nails

Non-hammers which, when presented with a nail, are often deployed as a hammer when no hammer is nearby

Enough about my hammers

For all problems that can be solved with a hammer, we should use a hammer.

The error isn't that one ought not use a hammer to address problems that can be solved with a hammer.

The error is that not all problems which are reasonably addressed with some kind of hammer are best resolved with the same kind of hammer.

  1. I have reproduced this quote as it is rendered in the Wikipedia article entitled Law of the instrument without verifying that it is faithfully rendered by Wikipedia.