All Problems Look Like Nails

The use of a pattern when the context is not appropriate. [See note, below]

I believe that the use of UserStories for NonFunctionalRequirements is an example of this, as a story indicates a specific interaction with a goal, while a NonFunctionalRequirement describes a goal which should be satisfied by every interaction.

I'm sure there are many more such examples.

-- RussellGold


We all have favorite patterns/habits/viewpoints that we apply to inappropriate situations. An approach to software development that worked well on some projects is proposed for all projects: OneSizeFitsAll. Or an idea that has demonstrably fixed one problem described as a SilverBullet that solves all problems.

There was a nice Dilbert Cartoon on this by Scott Adams. Thomas Love Peacock had a poem and book on this in "Headlong Hall". The following story shows how it works:

Some engineers are driving to Comdex when the car breaks down. The chemical engineer claims that the fuel is the problem and volunteers to go and get the best kind of fuel. The electrical engineer suggests it is an electrical fault. The mechanical engineer talks about metal fatigue and lack of lubrication.

The software engineer says: Why don't we all get out, close the windows, get in again and try restarting the auto?

-- DickBotting


It's fun to buy tools. I have a garage full of them. But once I have a complete set of straight, Phillips, Torx, etc., I don't go buy a new screwdriver for each screw. Tempted to get some of those new Facom ones, though. -- RonJeffries


It applies to languages. If you are trying to write simple text parsers in C or device drivers in Perl, you need to expand your toolbox a little.


NOTE: The derivation of this page's name comes from an old expression: "When all you have is a hammer everything looks like a nail."


See: EverythingIsa

CategoryPattern CategoryJoke


EditText of this page (last edited June 19, 2004) or FindPage with title or text search