Golden Hammer

Written by

in

Description

A system implements its functionality as services although there are no objective reasons for and benefits from this. It depicts the overzealous utilization of apparently universal solutions, instead of well suited adaptions of such solutions.

Context

Derived from: “Golden Hammer”
It seems like a Golden Hammer is a tool that is very familiar, simple to apply, and works best on things within striking distance: everyday problems. “I have a hammer and everything else is a nail”. A Golden Hammer is something we already have, and it worked great lots of time before, so it will be used for whatever comes next.

Cause

Services may be chosen because of their promised scalability, modifiability, or interoperability, even though these quality attributes are not really vital for the system at hand. A general reason therefore is a poor understanding of the system’s requirements. Lastly, using new and hyped technology or architectural styles is attractive and tempting for a lot of developers and architects.

Consequences

Unnecessary distribution can lead to performance issues, because direct communication is more efficient. There are also higher efforts for development, testing, and debugging, because implementing functionality as services is complex.

Solution

Extensive refactoring of the underlying system and service to appropriate components.

Example

Functionality is implemented as a web service, although it is only used internally by the system. The assumption is that this would be better for future requirements, but it reduces the performance.

Aliases

Silver Bullet, When in doubt, make it a service

Tags

microservices, soa, business, application, technology, abstraction

Related smells

All smells