Arquitetura de Software
A documentação como bússola arquitetural
É comum que quando começamos a discutir sobre migração arquitetural, percebemos que estamos lidando com algo muito maior do que código.
Conhecimento arquitetural se perde mais rápido do que o código muda. Os times de engenharia tomam dezenas de decisões arquiteturais por mês. Sem registro o contexto dessas decisões se perdem, descobrir o raciocínio por trás de escolhas antigas pode ser um trabalho complicado. Sem documentação viva, o conhecimento vira dependência da memória de engenheiros mais antigos e cada nova discussão começa do zero.
Sistemas legados carregam o peso do tempo: decisões antigas, restrições superadas e contextos que já não existem. À medida que tentamos evoluir isso, percebemos que o maior desafio não é técnico é de entendimento.
Nesse momento, a documentação deixa de ser formalidade e se torna uma bússola.
Ao registrar as decisões e os raciocínios por trás delas, garantimos que todas as pessoas envolvidas engenheiros, líderes técnicos, gerentes de produto e áreas impactadas estejam olhando para o mesmo horizonte. A documentação se torna uma ferramenta de alinhamento e antecipação de riscos.
Ela nos ajuda a criar consistência nas escolhas, abrindo espaço para colaboração e para discussões técnicas maduras conduzindo por bons "trade-offs”, baseadas em contexto, não em opinião.
Essa visão é compartilhada por autores como Neal Ford, Mark Richards e Pramod J. Sadalage em Software Architecture: The Hard Parts (O’Reilly, 2021).
“Arquitetura é um conjunto de decisões com consequências de longo prazo.”
E, se decisões definem arquitetura, registrá‑las é a forma de evoluí‑las conscientemente. Robert C. Martin, em Clean Architecture (Prentice Hall, 2017), reforça essa ideia ao diferenciar o essencial (regras e fronteiras de negócio) do acidental (frameworks, tecnologias e detalhes de implementação).
A escrita passa a fazer parte do design. O ato de documentar nos força a pensar melhor e a decidir melhor.
Tornando a prática tangível
Para transformar essa filosofia em prática, adotamos duas ferramentas complementares: ADR (Architecture Decision Record) e Design Document (Documento de Design).
Ambas têm papéis diferentes, mas se conectam na missão de registrar o raciocínio técnico e criar alinhamento dentro dos times.
ADR — Architecture Decision Record
O ADR nasceu de um problema comum em equipes de software: decisões arquiteturais importantes eram tomadas e, com o tempo, esquecidas.
O termo foi popularizado por Michael Nygard em Documenting Architecture Decisions (2011).
A proposta é simples: para cada decisão relevante, cria‑se um registro com o contexto, a decisão e suas consequências.
Este formato funciona porque captura o porquê das decisões, não apenas o “o quê”.
No livro Fundamentals of Software Architecture, os autores cunharam a segunda lei da arquitetura de software: o porquê é mais importante do que o como. Arquitetos devem entender como implementar soluções, mas primeiro precisam compreender por que uma escolha tem melhores trade-offs do que outra. Ao focar em conceitos de arquitetura, evitamos nos perder nas inúmeras implementações possíveis desses conceitos.
Quando alguém novo entra no time, ou quando o contexto muda, o ADR conta a história da decisão e não apenas o seu resultado. Ele dá ao time a capacidade de revisitar o raciocínio, avaliar se ele ainda se sustenta e, se necessário, propor revisões.
Design Document
Se o ADR é a memória das decisões, o Design Document é o espaço para o raciocínio detalhado que leva até elas.
Ele é mais abrangente: descreve o problema, as alternativas consideradas, as implicações técnicas e o plano de implementação.
É o documento onde o time pensa junto antes de colocar a mão no código.
Um bom Design Document geralmente responde a perguntas como:
- Qual problema estamos resolvendo?
- Que opções técnicas existem?
- Quais são os riscos e impactos esperados?
- Como mediremos sucesso?
Assim como o ADR, o valor do Design Document está em explorar alternativas e trade‑offs.
Como destacam Ford, Richards e Sadalage, boas decisões arquiteturais nascem da clareza de contexto e dos trade‑offs assumidos.
Isso reduz ruído, evita retrabalho e, principalmente, da visibilidade ao raciocínio técnico por trás das mudanças.
Conclusão: a documentação como ferramenta de evolução
Documentar não é o fim, mas o meio. ADRs e Design Documents não servem apenas para “guardar” o que foi decidido, mas para criar entendimento e aprendizado coletivo.
Eles tornam a arquitetura menos dependente da memória das pessoas e mais apoiada em raciocínios explícitos. Essa clareza separa uma transição caótica de uma evolução consciente.
Documentar é, no fim das contas, um ato de liderança técnica. É escolher a clareza em vez do improviso, o aprendizado em vez da repetição e garantir que o futuro da arquitetura seja construído sobre decisões que todos compreendem.
Referências
- Michael Nygard. Documenting Architecture Decisions. 2011. https://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions
- Neal Ford, Mark Richards, Pramod J. Sadalage, Zhamak Dehghani. Software Architecture: The Hard Parts. O’Reilly, 2021. https://www.oreilly.com/library/view/software-architecture-the/9781492086888/
- Mark Richards, Neal Ford. Fundamentals of Software Architecture, 2nd Edition. O’Reilly, 2024. https://www.oreilly.com/library/view/-/9781098175504/
- Robert C. Martin. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall, 2017. https://pearson.com/en-nz/subject-catalog/p/clean-architecture-a-craftsman-s-guide-to-software-structure-and-design/P200000009528/9780134494326