Objectively Choosing Among Technical Alternatives
Managers and engineers often face difficult choices, such as which product to buy, which library to use, or which architectural decision to make. It can be tough to choose between alternatives, especially when different opinions and biases come into play.
Luckily, there’s a great process for making these decisions in a less subjective and more documented way, and it’s all thanks to Sávio Figueiredo's research. He published a paper back in 2006 that focused on the Make/Buy/Reuse Analysis:
Figueiredo, S. et al. (2006). Taba Workstation: Supporting Technical Solution Through Knowledge Management of Design Rationale. In: Reimer, U., Karagiannis, D. (eds) Practical Aspects of Knowledge Management. PAKM 2006. Lecture Notes in Computer Science(), vol 4333. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11944935_6
His thesis, which unfortunately is only available in Portuguese, provided even more details on decision-making for technical solutions in general. Even though the process was designed for specific scenarios, like Make/Buy/Reuse Analysis, it can be applied to all kinds of technical decisions. So, I’ve decided to provide a simplified translation of the process in case you need to make some tough decisions.
This process can be used as a guide for making less subjective or biased decisions and documenting them for audit purposes. You can use it to make more objective decisions when selecting products or libraries to acquire, services to hire, architectural alternatives when building a new piece of software, etc.
Activity 1: Characterize Needs
During the execution of this activity, the needs that the alternative needs to satisfy must be identified.
Activity 2: Establish Selection Criteria
It is necessary to establish the selection criteria based on the identified needs. These selection criteria will be used to evaluate and select one of the alternatives.
Step 1: Define Selection Criteria
This activity aims to define the criteria for evaluating the alternatives.
Step 2: Define Selection Criteria Ranges and Scales
This step aims to define the ranges and scales for the subsequent evaluation of alternative solutions in relation to the selection criteria. Scales of relative importance for the selection criteria can be established with non-numerical values or formulas relating the evaluation parameter with a numerical weight. Numerical or not, it’s important to establish the meaning of each value so that different people would assess the alternatives in the same way.
Step 3: Weight the Selection Criteria
In this step, the selection criteria must be weighed so that the criteria with greater weight have greater importance when selecting an alternative.
Activity 3: Identify Potential Alternatives
This activity aims to identify potential suppliers of services, products/components, alternative approaches, etc., that might be capable of satisfying the developed requirements. Existing alternatives in the organization that could be reused must be considered.
Developing an alternative in-house or outsourcing the development of the solution should also be considered.
If no potential alternatives were selected, this process could be restarted with a different set of requirements that allow the selection of a possible alternative.
Activity 4: Collect Data from Alternatives
In this activity, the data from the alternatives that will be necessary for the execution of the evaluation activity must be collected (e.g., the version to be used, types and prices of existing licenses, a website where it is possible to locate it, functions, target audience and the software environment where it is possible to use it, pros and cons of each architectural pattern or programming language, etc.)
Activity 5: Perform Assessment
The evaluation aims to produce a technical report that will be used as input during the selection activity of one of the alternatives. Each alternative must be evaluated against established selection criteria.
Step 1: Document Scoring
All evaluation activity must be documented, and this documentation must contain, among other things, why a given alternative received a given score against a selection criterion. This rationale must be used to support the final report.
Step 2: Report Assessment
At the end of the evaluation, an evaluation report must be generated. This report should contain the following:
- The needs that the alternative will support.
- The selection criteria.
- The alternatives with the identification of the criteria mapped and the score obtained in each criterion, and the weighted total.
This report, with the rationale for the score on each criterion for each alternative, and this process must be provided with enough detail to allow the reader to understand the scope and depth of the assessment and to repeat the assessment. These three artifacts must be archived together, creating a record for audit purposes. It’s essential to store a copy of the process followed, as it may change over time.
Activity 6: Make a Decision
Decide between the alternatives based on the result in the report. A selection algorithm must be applied to the evaluation result to obtain a recommended solution (e.g., the highest score). If unable to decide, some activities can be re-executed to confirm the information and reassess the scores until a conclusion is reached.
So there you have it, a simple and effective way to make decisions without letting your biases get in the way! It’s like having a superpower that helps you cut through the clutter and analyze your options with clarity.
The best part is that it’s a process you can easily explain to others and repeat with updated information or new alternatives whenever you need to revisit your decision.
Give it a try, and let me know how it works for you. Trust me; you won’t regret it!
If you like this story, hit the clapping hands at the end so I know what you want to read about.
I don’t make a dime from this blog. If you want to support the creation of more content, share the blog with your coworkers and follow it to be notified of new stories!