Technical Decisions
Requirements and Constraints
It is challenging to decide which technologies to use in an ecosystem that is evolving very fast. As a result, teams often follow the trend instead of making informed decisions. However, different teams and projects have different needs and constraints. Before considering any technology, we identify your application's goals, main features, users, and existing constraints. We categorise constraints as hard—the application cannot fulfil its purpose if they are not met—or soft.
Possible options
We then identify technical possibilities. We still consider options that do not meet all soft constraints. This allows for a clear understanding of each constraint's impact. It might also lead to reconsidering some of them in cases where no solution meets all the requirements.
Decision Drivers
Standard drivers include cost, efficiency, security, accessibility, maintainability, and robustness. Others can be specific to a project; soft constraints are considered decision drivers.
Meticulous Comparison
Once we have identified options and drivers, we analyse each driver for each option.
We summarise the most promising options and discuss them with stakeholders. We take feedback and iterate if the discussion calls for more investigation.
Documented Outcome
We document the final decision in an ADR (Architecture Decision Record) containing all previous information.
We indicate in the summary the reasons for the final decision, and list predictable future events that might require revising it.
Share Your Pain PointsWe'll Suggest a Method