Documentando tomadas de decisões arquiteturais
Já se perguntou como documentar uma tomada de decisão arquitetural? Nesta palestra usaremos um exemplo prático para explorar como Architectural Decision Records e o C4 Model podem apoiar neste desafio.
Um estudo de 2021 da Microsoft confirmou o quanto a documentação é um dos principais fatores para acelerar o aprendizado de novos desenvolvedores de um time. Apesar de técnicas e ferramentas como UML para diagramas de sequência ou Swagger para APIs, nem sempre encontramos técnicas para documentação de camadas mais abstratas da arquitetura de um software, e ainda precisamos lidar com problemas como manter a documentação atualizada com o código e a informalidade das documentações, que acaba tornando-as mais difíceis de entender pela falta de um padrão. Nesta palestra, vamos através de um exemplo prático de tomada de decisão arquitetural, explorar como o modelo de "Architectural Decision Records" (ADR) e o C4 Model podem apoiar nestes desafios.
A ideia é pensar em um sistema de chats, registrando três opções de arquitetura usando o modelo de ADR: Short Polling, Long Polling e Web Socket. E, para os possíveis componentes do sistema de chats usar o C4 Model para documentação.
Um estudo de 2021 da Microsoft [1] confirmou o quanto a documentação é um dos principais fatores para acelerar o aprendizado de novos desenvolvedores de um time. Apesar de técnicas e ferramentas como UML para diagramas de sequência ou Swagger para APIs, nem sempre encontramos técnicas para documentação de camadas mais abstratas da arquitetura de um software, e ainda precisamos lidar com problemas como manter a documentação atualizada com o código e a informalidade das documentações, que acaba tornando-as mais difíceis de entender pela falta de um padrão [2]. Nesta palestra, vamos através de um exemplo prático de tomada de decisão arquitetural, explorar como o modelo de "Architectural Decision Records" (ADR) e o C4 Model podem apoiar nestes desafios.
A ideia é pensar em um sistema de chats, registrando três opções de arquitetura usando o modelo de ADR: Short Polling, Long Polling e Web Socket. E, para os possíveis componentes do sistema de chats: API, banco de dados, cache, serviço de notificações, usar o C4 Model para documentação, mostrando também como ele pode ser gerado a partir de código, permitindo uma atualização mais fácil e reduzindo o problema de dessincronização com o código-fonte. Dessa forma, ao final teremos o ADR com os prós e contras de cada opção e a decisão tomada, e uma documentação da arquitetura padronizada e "as-code".
[1] https://arxiv.org/pdf/2103.05055.pdf
[2] https://www.sciencedirect.com/science/article/pii/S09505849210018