A while back, I wrote a post about Architecture decision-making and a decision framework that governs how people make technology decisions in organizations.
The Architecture Decision Model I outlined falls short of meeting the expectations of empowered and decentralized development teams. A few weeks ago, I read an excellent article by Andrew Harmel-Law at Thoughtworks about scaling architecture and democratizing decision-making.
Harmel-Law proposes four essential tools as the foundation of anarchist, decentralized Architecture decision making ;
- A lightweight ADR ( Architecture Decision Record )
- Architecture Advisory forum, a semi-formal venue to discuss decisions
- Team-sourced architectural principles that act as the Northstar
- Tech landscape modeling tool like Thought works Tech Radar
This proposal's most essential and radical part is the decision-making framework. The decision-making process is reduced to its most essential elements as follows.
- The Rule: anyone can make an architectural decision.
- The Qualifier: before making the decision, the decision-maker must consult two groups: The first is everyone who will be meaningfully affected by the decision. The second is people with expertise in the area the decision is being taken.
Excerpt from Scaling the Practice of Architecture, Conversationally Link
In retrospect, this makes sense - I have long argued against Architecture monologue and Hightower Architecture detached from the edges. I like the approach suggested and believe that adopting such a model is a net positive for the organization. It leads to
- More inclusive participation in the decision-making process
- Focus shifts from the person who decides to the collective effort of ensuring decision quality. It doesn't matter who makes the decision, as long as we make a high-quality decision.
- Decision-making moves to the edges, which have the highest context.
Architectural decision records (ADR ) are a documentation tool and a thinking instrument. ADRs are not just for the Architects but everyone in the team who needs to evaluate design alternatives; remember, it is the architecture that matters, not the Architects.
Most important Architecure is the one that is in the developer's head because that is what gets shipped to production.