Architecture Decision Record

Active theme: Light

← dokument

Wetin AWS Architectural Decision Records Process Be

https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html

Architectural decision record (ADR) na document wey dey show di choice wey team make about one important part of di software architecture wey dem plan to build. Each ADR dey talk di architectural decision, di context wey e dey inside, and di consequences. ADR dem get states, so dem dey follow one lifecycle. If you wan see example of ADR, check di appendix.

Di ADR process dey produce collection of architectural decision records. Dis collection na di decision log. Di decision log dey give di project context and also detailed implementation and design information. Project members dey skim di headlines of each ADR to get overview of di project context. Dem dey read di ADR dem well well to understand di project implementations and design choices.

Once di team accept one ADR, e don become immutable, no one fit change am again. If new insights need different decision, di team go propose new ADR. Wen di team accept di new ADR, e go supersede di ADR wey dey before.

Scope of di ADR process

Project members suppose create ADR for every architecturally significant decision wey affect di software project or product, including dis ones (Richards and Ford 2020):

  • Structure (for example, patterns like microservices)

  • Non-functional requirements (security, high availability, and fault tolerance)

  • Dependencies (how components dey couple together)

  • Interfaces (APIs and published contracts)

  • Construction techniques (libraries, frameworks, tools, and processes)

  • Functional and non-functional requirements na di most common inputs for di ADR process.

Wetin dey inside ADR

Wen di team see say dem need ADR, one team member go start to write di ADR based on one projectwide template. (Check di ADR GitHub organization for example templates.) Di template dey make ADR creation easy and e dey make sure say di ADR capture all di relevant information. At minimum, each ADR suppose define di context of di decision, di decision itself, and di consequences of di decision for di project and wetin e go deliver. (If you wan see examples of dis sections, check di appendix.) One of di strongest parts of di ADR structure na say e dey focus on di reason for di decision, no be how di team implement am. If person understand why di team make di decision, e go easy for other team members to adopt am, and e go stop other architects wey no dey involved for di decision-making process from overrule dat decision later.

ADR adoption process

Every team member fit create ADR, but di team suppose set one definition of ownership for ADR. Each author wey be di owner of one ADR suppose dey actively maintain and communicate di ADR content. To make dis ownership clear, dis guide dey call ADR authors as ADR owners for di sections wey follow. Other team members fit always contribute to ADR. If di content of one ADR change before di team accept di ADR, di owner suppose approve dis changes.

After di team identify one architectural decision and im owner, di ADR owner go provide di ADR for di Proposed state for di beginning of di process. ADR dem wey dey Proposed state don ready for review.

Di ADR owner go then start di review process for di ADR. Di goal of di ADR review process na to decide whether di team accept di ADR, whether e need rework, or whether dem reject di ADR. Di project team, including di owner, go review di ADR. Di review meeting suppose start with one dedicated time slot to read di ADR. For average, 10 to 15 minutes suppose be enough. For dis time, each team member go read di document and add comments and questions to flag topics wey no clear. After di review phase, di ADR owner go read out and discuss each comment with di team.

If di team find action points to improve di ADR, di state of di ADR go stay Proposed. Di ADR owner go formulate di actions, and, together with di team, add assignee to each action. Each team member fit contribute and resolve di action points. Na di responsibility of di ADR owner to reschedule di review process.

Di team fit also decide to reject di ADR. For dis case, di ADR owner go add reason for di rejection so say dem no go discuss di same topic again for future. Di owner go change di ADR state to Rejected.

If di team approve di ADR, di owner go add timestamp, version, and list of stakeholders. Di owner go then update di state to Accepted.

ADR dem and di decision log wey dem create represent decisions wey di team make and dem dey give history of all decisions. Di team dey use di ADR dem as reference during code and architectural reviews wen e possible. Apart from to perform code reviews, design tasks, and implementation tasks, team members suppose consult ADR dem for strategic decisions for di product.

As good practice, each software change suppose go through peer reviews and e suppose need at least one approval. During di code review, code reviewer fit find changes wey violate one or more ADR. For dis case, di reviewer go ask di author of di code change to update di code, and share link to di ADR. Wen di author update di code, peer reviewers go approve am and dem go merge am into di main code base.

ADR review process

Di team suppose treat ADR dem as immutable documents after di team accept or reject dem. If dem wan change one ADR wey dey already, dem go need to create new ADR, set up review process for di new ADR, and approve di ADR. If di team approve di new ADR, di owner suppose change di state of di old ADR to Superseded.