ADRs as a Tool to Build Empowered Teams

Learn how we use Architecture Decision Records (ADRs) to build empowered, autonomous teams, enhancing decision-making and collaboration.

In a couple of our projects the teams introduced Architecture Decision Records (https://github.com/joelparkerhenderson/architecture_decision_record) a while ago. In this blog post I want to summarize what team rules were defined for writing, reviewing and storing ADRs and will discuss the implications of these rules and why I believe that these rules work as a tool to build empowered teams.

What’s an Architecture Decision Record (ADR)?

An ADR in short is a well documented architecture decision process. An ADR does not require any special template or place to store it. I recommended that each ADR contains at least an ID (for example 0001-use-vuex-as-state-store), title, date, status, context, decision and consequences.

The ID allows to reference the ADR for example in a commit message. The title acts as a short summary of the decision, the status documents the state of the decision, context describes why there was a need for a decision, the decision part describes the outcome and consequences what to expect from the decision.

I prefer to store ADRs “near the architecture”. I prefer storing ADRs in Git as Git gives you a history for free, to further explore the history of the decision making process.

I try to keep the template as simple as possible to make it easy for every team member to learn how to write an ADRs. As a consequence I used only 3 status: “pending” (in discussion, not yet approved), “approved” (the whole team commits to that decision), “obsolete” (the decision was declined or is just not relevant anymore or superseded by another decision). In the team I’m currently working we’re evaluating if a fourth status “declined” will help in understanding the architecture decision history or just make things more complicated.

ADR Team Rules

Some of these ADR rules were decided on by the team, some of these rules were never stated but implicitly agreed by the teams by following the rules. The team did created three simple rules:

Every team member can file an ADR

  • Every team member has the opportunity to actively shape the architecture.

  • Architecture decisions can be done more quickly.

  • The team itself defines what architecture is and what not.

  • There is no ivory tower architect involved.

  • A decision taking mechanism has be be setup to guide architecture decisions.

  • Decision making process can be fully asynchronous which is a good idea in distributed teams.

An ADR has to be reviewed by every team member

  • Everyone in the team is informed of architecture decisions.

  • Makes onboarding team members easier because they can understand what decisions where taken, when and why.

  • Decreases the bus factor in certain areas of the software because (architecture) information is the first step to understand the code.

  • Reduces information gap between backend and frontend teams. It’s one architecture and every team member should have the full information about the architecture.

  • Reduces team splits and silos, for example in backend and frontend teams.

Store ADRs in Git

  • ADRs are bound to the architecture.

  • Not just the decision but the whole decision process is versioned (ADR was filed, accepted, made obsolete) and can be viewed by just “git log”.

  • PRs for proposing ADRs can be used for discussions if the team is using Github, Bitbucket or the like.

Team Impact

In some project setups, that have a (non coding) software architect role I made the observation that these teams fall short when it comes to engagement, commitment or delivering value.

I believe that this shortcoming is introduced by the lack of autonomy of the team members to decide on the software architecture.

Let’s take a look at a definition of empowered teams and how key attributes of this definition are related to the ADR rules.

Empowered teams are self-sufficient groups of people working together with specific goals. They have the corporate authority, experience, responsibility and skills to enact their own decisions for the organization.

https://www.qualitydigest.com/mar99/html/body_teams.html

For me, the key attributes in this definition are “authority”, “experience”, “responsibility” and “skill” to take decisions. While the definition above focuses on a broader corporate scope, I focus on a more narrow software architecture scope.

I believe that “Every team member can file an ADR” is an opportunity to grant authority (on the architecture level but not on a corporate level) to the team and learn to architect a solution and thus leverage experience. I learned that an agreed decision process has to be established by the team to deliver the quality “architecture decisions can be done more quickly” and to prevent important architecture decisions to be stale and undecided for a long time.

While I wanted to enforce that “there is no ivory tower architect involved”, I see a strong need for a decision maker role that is empowered by the team to take decisions if no consensus or compromise can be established.

As a counterpart to “Every team member can file an ADR” the rule “An ADR has to be reviewed by every team member” gives every team member a (limited) responsibility for decisions and increases architecture skill.

Team members learn from other team members how to get an architecture decision started and how architecture is done. What does architecture solve? Are there always architectural downsides when taking a decision?

I learned that “reducing the team split” is not as simple as “ADRs will reduce the team split by magic”. Ensure that every team understands the implications of an architectural decision. It should be a daily habit to make sure that team members do not start accepting ADRs because of a “this is not their area” attitude. This behavior is a clear sign that team members do not feel responsible for the software as a whole to work correctly but feel only responsible for their limited area of work.

Summary

If you’re in an architecture role I strongly recommend to take a look at ADRs as an alternative to writing (big upfront) architectural documentation. I recommend you use (or at least start with) a simple ADR template as proposed by Michael Nygard ( http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). Ensure that teams make and record architecture decisions and that those decisions are read, discussed and understood by the team rather than just blindly accepted. With a working architecture decision process based on ADRs you can drive team qualities as authority, experience, responsibility and skill in an architecture context.

Blog 7/14/21

Building and Publishing Design Systems | Part 2

Learn how to build and publish design systems effectively. Discover best practices for creating reusable components and enhancing UI consistency.

Blog 10/21/20

Consistency and Aggregates in Event Sourcing

Learn how we ensures data consistency in event sourcing with effective use of aggregates, enhancing system reliability and performance.

Referenz

Jira Software as a Control Tool in Creation Production

The Munich-based broadcaster HSE24 reaches over 44 million households with its TV programs. The omnichannel retailer was looking for a tool for order management and transparent control of creation...

Blog 1/29/20

Tracing IO in .NET Core

Learn how we leverage OpenTelemetry for efficient tracing of IO operations in .NET Core applications, enhancing performance and monitoring.

Event Archive

Gemini at Work – AI Action in Zürich & Berlin

Learn how Gemini for Google Workspace is revolutionizing the way organizations work. Learn about real-world use cases and experience the power of AI.

Blog 5/18/22

Introduction to Functional Programming in F#

Dive into functional programming with F# in our introductory series. Learn how to solve real business problems using F#'s functional programming features. This first part covers setting up your environment, basic F# syntax, and implementing a simple use case. Perfect for developers looking to enhance their skills in functional programming.

Guide

Future-Proof Your Business with SAP Cloud ERP

Discover how SAP Cloud ERP transforms business operations with enhanced agility, reduced costs, and real-time decision-making. Download our free guide and future-proof your organization.

Releasewechsel eines eingesetzten IAM-Tools
Referenz

Release change of a deployed IAM tool

TIMETOACT received the order to carry out a major release change for the IAM tool used and to develop the processes back to the standard of the product as far as possible. At the same time, a change of service provider became necessary, which meant that all components of the IAM had to be moved to a new data center.

Referenz

Transfer of Atlassian tools to ITIL IT operations

thyssenkrupp Marine Systems: catworkx is supporting tkMS with a comprehensive ITIL process understanding during the transfer of Atlassian tools from the shadow IT into the ITIL IT operation.

Blog

Responsible AI: A Guide to Ethical AI Development

Responsible AI is a key requirement in the development and use of AI technologies. You can find everything you need to know here!

News 1/1/22

Appointment of a new Managing Director as of 1 January 2022

With continuity into the cloud - Robin Müller-Cajar is appointed Managing Director on January 1, 2022 and drives the further expansion of product development.

Blog 7/22/24

Let's build an Enterprise AI Assistant

Let’s take the basic principles of building AI assistants for a spin with a product case that we worked on: using AI to support enterprise sales pipeline.

Produktive Teams führen zu zufriedenen Kunden
Event

Webcast: Productive teams lead to satisfied customers

In a webcast, Arne Ralf, Atlassian Specialist at the TIMETOACT GROUP, will explain in a practical example how to unleash the full potential of your teams with a company-wide service desk and much more.

Icon Atlassian Dev Tools
Produkt 8/8/22

Dev Tools

Browse, test, review and manage your code with Atlassian development tools (Dev Tools): Bitbucket, Bamboo, Fisheye, etc.

Nachbericht Atlassian Team' 23: Neue große Produktankündigungen - Atlassian Intelligence, Atlassian Confluence Whiteboards oder Atlassian Beacon
News 4/25/23

Highlights & Impressions: Follow-up to Atlassian Team'23

The ultimate event for modern teamwork is over - Atlassian Team' 23 took place from April 18 to 20 in Las Vegas. No matter if live on site or online, for the participants there were great new product announcements - first and foremost Atlassian Intelligence, Confluence Whiteboards or Beacon - exciting insights and conversations and a lot of personal exchange.

Teaserbild zu IT-Strategie Beratung
Service

IT strategy – A clear goal and the way to achieve it

The IT strategy provides you with the plan for the long-term development of your IT organisation, necessary technologies, processes and digital culture.

Blog 11/24/23

Part 3: How to Analyze a Database File with GPT-3.5

In this blog, we'll explore the proper usage of data analysis with ChatGPT and how you can analyze and visualize data from a SQLite database to help you make the most of your data.

Whitepaper 9/15/22

E-paper: 10 steps to high-performance Scaled Agile teams

Greater competitiveness, better adaptation to constantly changing market conditions and a broad scope for innovation - there are a number of good reasons to dare to be more agile in companies.

Blog 8/10/22

So, I wrote a book

Join me as I share the story of writing a book on F#. Discover the challenges, insights, and triumphs along the way.

CLOUDPILOTS, Google Workspace, G Suite, Google Cloud, GCP, MeisterTask, MindMeister, Freshworks, Freshdesk, Freshsales, Freshservice, Looker, VMware Engine
Blog 12/11/19

11 reasons to switch to Google Workspace

There are many good reasons to switch to Google Workspace. We have summarized the 11 most important ones for you here.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!