Characteristics of an Architectural Decision
1. Important
If there is no architect, developers will still make decisions. An architect exists to solve the most important problems. There are plenty of people who can handle the rest.
✅ Which database should we use?
✅ Where should we deploy the application?
❌ Which unit testing framework should we choose?
❌ Which IDE should we use?
2. Technical
An architect should focus on solving technical problems. Even though sometimes you have to step into other areas, each area already has its own experts.
3. Decisive
It must be clear what decision was made and why.
“We can use X and gain performance but increase maintenance costs, or use Y and lose performance but reduce maintenance costs” is not a decision. It is unclear what to do next.
4. Clear
A decision should contain zero fluff and minimal text, while still clearly conveying the meaning. Otherwise, it becomes hard to understand and even harder to work with later.
You can use the SIRI technique.
5. Objective
A decision must be based on facts, not personal opinion, no matter how much experience the architect has.
A subjective decision is irrational by definition, even if it feels rational to its author.
How often do you see decisions that have all five of these characteristics?
I wrapped all of this into a cheat sheet.

