9 Steps for the effective technical decision-making process
Every problem, if it is technical or not, can be solved in many ways. And if you are a problem solver, you have to decide what method you should use to solve the issue at hand. As a software engineer, you will work on technical problems every day, and you will have to make technical decisions all the time. Your decisions will vary from naming variables to choosing architectures.
1. Identify the problem at hand
This is the most essential step in the decision-making process because no one wants to solve a problem they do not really have. Identify the root cause and not just the symptoms. For this, there is a handy tool called the 5 whys root cause analysis.
2. Identify the conditions of success
Conditions of success are measurable terms of what should be acceptable results of our solution. This is important when you want to review and analyze your decision. Condition of success should be things we can measure and identify.
3. Identify the possible solutions
After knowing the problem we are going to solve, we need to know how to solve it. Gather information that is directly related to the problem. Also, see how other people have solved the same problem in the past. Then generate a list of possible solutions.
4. Identify priorities
Priorities are things that are regarded as more important than other things. Define what is important in all possible perspectives, like what is important for business, for the security team, for developers, and so on. Priorities will help you weigh the pros and cons of your solutions.
5. Identify risks, pros, and cons for every possible solution.
Now we have to research and dig deeper into some details of our proposed solutions. Create a list of pros and cons for every solution. Try not to bias to a specific technology or solution, be as objective as you can be. Your analysis should always be based on facts and not opinions.
6. Decide on a solution
After identifying all the possible solutions and collecting facts about them, you are now ready to weigh the pros and cons and pick the most appropriate solution for your problem, again based on facts' analysis.
7. Create a plan and act
Now we have everything, develop a plan to achieve your goal, and start working on it.
No decision is perfect. We make mistakes. So keep reviewing and analyzing results even after deciding on a specific solution, and don’t be afraid to admit the mistake, if any, and try to act fast on it, reanalyze your decision and even redo the whole process the beginning if needed.
9. Document your decision
Document the whole process and share it with the team. It is always better to have one place for decision logs to find why the team decided on anything.
If you have any questions, suggestions, or you are seeking help, don't hesitate to get in touch with me on Twitter at @salem_hsn