Golden Hammer
AntiPattern Name: Golden Hammer
Also Known As: Old Yeller, Head-in-the sand
Most Applicable Scale: Application
Refactored Solution Name: Expand your horizons
Refactored Solution Type: Process
Root Causes: Ignorance, Pride, Narrow-Mindedness
Unbalanced Forces: Management of Technology Transfer
Anecdotal Evidence:
“I have a hammer and everything else is a nail.”
“Our database is our architecture.”
“Maybe we shouldn’t have used Excel macros for this job after all.”
Background
This is one of the most common AntiPatterns in the industry. Frequently, a vendor, specifically a database vendor, will advocate using its growing product suite as a solution to most of the needs of an organization. Given the initial expense of adopting a specific database solution, such a vendor often provides extensions to the technology that are proven to work well with its deployed products at greatly reduced prices.
General Form
A software development team has gained a high level of competence in a particular solution or vendor product, referred to here as the Golden Hammer. As a result, every new product or development effort is viewed as something that is best solved with it. In many cases, the Golden Hammer is a mismatch for the problem, but minimal effort is devoted to exploring alternative solutions.
This AntiPattern results in the misapplication of a favored tool or concept. Developers and managers are comfortable with an existing approach and unwilling to learn and apply one that is better suited. This is typified by the common “our database is our architecture” mind-set, particularly common in the world’s banking community.
Frequently, an advocate will propose the Golden Hammer and its associated product suite as a solution to most of the needs of an organization. Given the initial expense of adopting a
specific solution, Golden Hammer advocates will argue that future extensions to the technology, which are designed to work with their existing products, will minimize risk and cost.
Symptoms And Consequences
Identical tools and products are used for wide array of conceptually diverse products.
Solutions have inferior performance, scalability, and so on when compared to other solutions in the industry.
System architecture is best described by a particular product, application suite, or vendor tool set.
Developers debate system requirements with system analysts and end users, frequently advocating requirements that are easily accommodated by a particular tool and steering them away from areas where the adopted tool is insufficient.
Developers become isolated from the industry. They demonstrate a lack of knowledge and experience with alternative approaches.
Requirements are not fully met, in an attempt to leverage existing investment.
Existing products dictate design and system architecture.
New development relies heavily on a specific vendor product or technology.
Typical Causes
Several successes have used a particular approach.
Large investment has been made in training and/or gaining experience in a product or technology.
Group is isolated from industry, other companies.
Reliance on proprietary product features that aren’t readily available in other industry products.
“Corncob” proposing the solution (see Corncob AntiPattern).
Known Exceptions
The Golden Hammer AntiPattern sometimes works: