O que é Architecture Decision Records (ADR)?
Architecture Decision Record (ADR) é uma técnica de documentação utilizada pela maioria das empresas para documentar decisões importantes tomadas pelos membros da equipe e deixar registrado principalmente suas consequências.
Como surgiu o ADR?
Architecture Decision Record foi criado por Michael Nygard, com o intuito de deixar as decisões com grandes impactos na empresa salvas, tendo um fácil entendimento e as tornando uma documentação pratica, pois para ele as reuniões não encareciam de documentos altamente formais.
Benefícios de implementar ADR
Onboarding
Rapidamente novos membros entendem as motivações e consequências das decisões no stack e em todas as tecnologias da Arquitetura.
Passagem de Ownership
Uma ADR pode ser passada para ser melhorada, ou versionada de uma Squad para outra, desde que todo o histórico de mudanças sejam rastreável
Alinhamento:
ADRs fazem com que haja alinhamento entre os times e remove esforços duplicados, criado códigos e APIs reusáveis ao longo dos projetos reduzindo a variância de soluções que times centrais devem suportar
Quando implementar uma ADR?
Então chegamos ao ponto de saber: Quando e como escrever um ADR?
No momento em que houver uma decisão de impacto significativo tomada pelo time, deve ser escrito sempre um ADR. E de forma bastante simples, Michael Nygard propõem que time registre basicamente o contexto do problema, possíveis soluções, a decisão tomada e consequências usando um template markdown com algumas seções.
Template de um ADR
Um ADR leve, consiste em título, status, contexto, decisão e consequência (de acordo com @mtnygard). Modelo de template à seguir:
Título: Deve ser curto e descritivo.
Data: dd/mm/yyyy
Status
Proposta: A decisão ainda não foi aprovada.
Aceita: Se foi aceita.
Depreciada: Se não faz mais sentido.
Substituída: A decisão foi substituída por outra em algum momento
Rejeitada: A decisão inicialmente proposta foi rejeitada
Contexto
Traz as considerações e forças que levaram a tomar a decisão, incluindo tecnológicas, políticas, econômicas, sociais e relativas ao projeto.
Decisão
Descrição das decisões tomadas frente às forças e considerações, em voz ativa, sentenças completas e organizadas em parágrafos.
Consequências
Descrição das consequências após a tomada da decisão, incluindo as positivas e as negativas, quando houver. Tudo que puder afetar o time e o projeto deve ser registrado.
Exemplos de um ADR
Exemplo 1:
No contexto do serviço de venda Web,
Enfrentando a necessidade armazenar os dados de sessão de usuário e de forma consistente e atual através das instâncias das lojas
Nós decidimos por usar o Database Session State Pattern
E contra o Client Session State or Server Session State
Para obter consistência e elasticidade de cloud
Aceitando que a sessão de banco de dados precisa ser desenhada e implementada.
Exemplo 2:
Empresas que utilizam ADR
O Spotify, é umas das maiores empresas do ramo da musica e é um belo exemplo de onde é implementado um ADR, a empresa utiliza o documento em vários departamentos da empresa para que os criadores de conteúdo consigam acessar seus avanços e ver as decisões tomadas pelos outros membros dos projetos, outra empresa do meio da Tecnologia que utiliza a técnica ADR, é a Conta Azul que é uma empresa de Software que vende e desenvolve uma plataforma de gestão de negócios.
Conclusão
Contudo conclui-se que um ADR(Architecture Decision Record) é um documento primordial para todas as empresas independente de se considerarem uma empresa de alto ou baixo porte, pois o mesmo oferece mais praticidade na organização e na visualização de ideias relativas em suas reuniões e assim conseguindo chegar em uma posição final dos projetos.
Referências: https://engineering.atspotify.com/2020/04/when-should-i-write-an-architecture-decision-record/
Autores
Crystian Printes
Trainee na Skalena, estudante de Sistemas de Informação na Universidade Federal do Oeste do Pará.
Luciana Lopes
Trainee na Skalena, estudante de Sistemas de Informação na Universidade Federal do Oeste do Pará.
Kommentare