The 3+1 ingredients of making good engineering decisions
And how to improve your decision-making starting today
Decision-making is one of the unteachable skills. It’s impossible to learn it from a book; the only way to learn is by doing.
That being said, prompts and questions can help you sharpen your thinking. It’s an indirect way I can show you how you can tackle the challenge. I use them daily when trying to figure out other people’s ways of thinking.
The premise is that every decision is good in the eyes of the person making it. The difference comes from the amount of knowledge and experience, which is why different people differ so widely in their opinions.
What are the questions you ask yourself to make better decisions?
1. What is the outcome?
Einstein said that if he had 100 hours to solve a problem, he’d spend 99 on defining it. Bad decisions usually result from a lack of detail about what needs to be done. Every decision I made that went sideways was based on assumptions rather than provable data.
Look for the critical pieces of information that are forcing the decision. Are they based on facts and commonly agreed upon? Or are they assumptions made by a few? Return to the drawing board and flush the reality out if it’s the latter.
2. What are the constraints?
This is a trap I see many engineers fall into; I’ve been there for years at the start of my professional career. It’s a case where you assume everything is possible and aim for the best solution you can imagine, and you read it works at Netflix. Each company will have its limitations—the size of the team, technology stack, or budget—all of which must be considered before making a decision.
The prime example here is the introduction of new technologies. I’m a big advocate for the best tool for the job, but now I understand that introducing new language impacts hiring, budgeting and overall team satisfaction. From the need for specialists, the company will need polyglots, and that’s way more difficult and possibly not worth the value that new tech brings.
Look around you for what’s possible and what’s not. If you’re not sure - ask around. It will significantly narrow your pool of potential solutions and make decisions easier.
3. What are the options?
In gaming, it’s called “The Meta” - the best solution for most players, offering the best combination of stats. In software engineering, we call it hype-driven development. It’s still microservices today, whereas SOA was the answer a decade or two ago. The trick is to not only know the leading solution but also its pros and cons, the same as the alternatives available on the market.
Instead of finding one solution, consider options. Find at least three for each problem you’re trying to solve. Only when you have them lined up can you analyse which one is right for your situation.
+1 The Agreement vs Insight perspective
The last distinction I’d like to give you is that, by default, most people look at the world from the agreement perspective. They either agree and continue to be happy with the decision or disagree, get frustrated, and fight it. The third way is to look for insight into any situation.
What can I learn from it?
What were the knowledge and circumstances of the people making the decision?
How can it be a good decision, and for whom and why?
The last question is about decisions you disagree with. Observing the results is one of the best learning points. You can safely test other people’s points of view and see whether they were right and brought success or failure.
To sum it up
Naval Ravikant, in his Almanach, calls it Judgement.
The more decisions you make and observe, the better you get at it.
There is no other way around it. I hope the questions I presented and the insight perspective will help you make decisions in the upcoming weeks.
P.S.
I’m back to writing after turbulent times and on the market looking for a Senior Engineering Manager/Head of Engineering/VP role in tech. If you know someone who needs a helping managerial hand, has a passion for system design, and has seen it all in over two decades in the industry, let me know.
"Find at least three for each problem you’re trying to solve"
Most loved by me. Creates options, take one of them by the process of elimination always reduce the risk. Thanks Dariusz :)