Subcapability 01 de 05 · Software Engineering & Architecture

Arquitetura Evolutiva

ADRs e fitness functions que registram decisões caras de reverter e validam conformidade automaticamente, mantendo o custo de cada mudança dentro de limites que o negócio consegue absorver.

O que está em jogo

A arquitetura foi decidida, mas não documentada. Cada developer novo interpreta o padrão de forma diferente. Cada exceção se torna a nova norma. Quando a empresa tenta escalar, o sistema revela que as decisões que pareciam locais têm consequências globais. O custo de cada mudança sobe porque o acoplamento cresceu sem que ninguém tenha declarado essa dívida.

O que é, na prática

Arquitetura é o conjunto de decisões difíceis de reverter. Quando essas decisões não são registradas, a empresa herda a arquitetura por acidente. Cada feature nova paga juros sobre escolhas que ninguém lembra de ter feito. O acoplamento cresce silenciosamente. A fronteira entre módulos some. O que era sistema estruturado vira massa de código que ninguém ousa tocar sem medo de derrubar outra coisa.

Como atuamos

Ganhos mensuráveis

O que muda no resultado quando essa subcapacidade amadurece.

Perguntas frequentes

O que diferencia ADR de documento de arquitetura tradicional?

Documento de arquitetura descreve o sistema como ele é. ADR registra por que uma decisão foi tomada, quais alternativas foram descartadas e em que condições a decisão deve ser revisitada. Quando o contexto muda, o ADR é o ponto de partida para avaliar se a decisão original ainda é válida. Documento que só descreve o estado atual fica obsoleto sem aviso.

O que é fitness function e por que automatiza governança arquitetural?

Fitness function é um teste que verifica uma propriedade arquitetural desejada de forma automatizada. Pode ser um teste que falha quando um módulo importa de módulo errado, quando a complexidade ciclomática supera um limiar ou quando um serviço introduz dependência síncrona onde o padrão exige assíncrono. O que antes dependia de revisão manual e atenção do arquiteto passa a ser verificado em cada commit.

Quando monolito modular é preferível a microservices?

Monolito modular é preferível quando o time ainda está descobrindo os bounded contexts corretos, quando o volume de tráfego não justifica a complexidade operacional de múltiplos serviços ou quando a organização não tem capacidade de operar pipelines independentes por serviço. Microservices trazem custo operacional real. A opção por eles antes de ter esse custo coberto pelo ganho de deployment independente gera o pior dos dois mundos: complexidade de distribuído com acoplamento de monolito.

Como medir dívida arquitetural em termos econômicos?

Dívida arquitetural tem custo em lead time: quanto tempo a mais cada mudança leva por causa do acoplamento existente. Ferramentas como SonarQube, Structure101 e análise de dependências via Maven ou Gradle permitem quantificar dependências circulares, violações de camada e métricas de coesão. O custo de remediação de cada item, estimado em dias de engenharia, torna o passivo legível no board.

Com que frequência ADRs devem ser revisados?

ADRs devem ser revisados quando a condição que os motivou muda. Volume de tráfego que ultrapassa o que o modelo atual suporta, mudança de requisito de compliance, adoção de tecnologia que altera o trade-off original. A data de revisão esperada deve ser parte do ADR. ADR sem revisão prevista é documento que envelhece sem percepção.

Quer clareza sobre onde investir primeiro?

Diagnóstico completo de capacidades de tecnologia com roadmap de evolução conectado ao resultado financeiro.