Engineering Without a Measuring Tape
Engineering Without a Measuring Tape
“When all you have is a hammer, everything looks like a nail.”
Engineering (noun):
the branch of science and technology concerned with the design, building, and use of engines, machines, and structures.
Solutioneering (noun):
Attempting to solve a problem with an incomplete understanding of the situation.
One of the defining traits of a software engineer is to always have a solution; an escape from the
claustrophobic confines of a problem. The more expedient the better. This behavior leads to engineering
teams engaging in the questionable practice of solutioneering in echo chambers.
As an engineer, solutioneering can be a hard pattern to recognize because we’re solvers at heart.
We get praised and paid for solving problems quickly so taking a step back can be challenging, but
sometimes it’s the best way to make progress. In developing a robust solution, taking the time to ask
information gathering questions can pay big dividends by saving engineering time spent re-working a
poorly measured solution.
Questions like:
What exactly is the customer asking for?
What’s the motivation behind the request?
What problem is the customer trying to solve? (They may not know)
Are they asking for a faster horse because they don’t know they need a car?
While asking clarifying questions you might discover that complexity can be removed, or you might
instead find out that you were oversimplifying the initial problem. Regardless, you’ll be doing yourself
and your team a favor by getting to the bottom of the problem before investing in writing code.
Not everything will look like a nail if you start your work with a measuring tape.