Conceitos de Arquitetura Intencional e Arquitetura Emergente

Está faltando tempo para ler este artigo? Então ouça a narração, basta apertar o play!

Em geral, os métodos de desenvolvimento de software tradicionais usam o Big-Design-Up-Front (BDUF) para criar uma estrutura arquitetônica.

A propósito, você sabe do que estamos falando?
Vamos explicar melhor.


O termo Big Design Up Front (BDUF), normalmente se refere à prática de desenhar toda a solução antes de iniciar a execução.

Basicamente, esse é um conceito relacionado ao modelo tradicional de desenvolvimento de software, em que há uma etapa de análise que antecede a etapa de implementação.

Podemos dizer que a ideia dessa abordagem é atender todas as necessidades do futuro sistema, a partir de um único esforço, realizado antes de iniciar o projeto.

Contudo, a metodologia de desenvolvimento tradicional apresenta muitos desafios.

Além do delay que ocorre no começo da execução, o planejamento da arquitetura pode conflitar quando encontra o mundo real.

Diante desses desafios, é possível combinar Arquitetura Intencional e Arquitetura Emergente, impulsionadas pela colaboração para garantir que o sistema tenha integridade conceitual e eficácia.

Neste artigo, apresentaremos alguns conceitos que envolvem a comunicação entre as Arquiteturas Corporativas e de Solução e os Processos de Desenvolvimento de Software. Confira!

Arquitetura Emergente

De acordo com o Manifesto Ágil, o conceito de Arquitetura Emergente está relacionado à seguinte afirmação:

“As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas.”

Dito isso, podemos destacar que a Arquitetura Emergente gera para o desenvolvimento, benefícios, como:

  • O design é cultivado de forma incremental por aqueles que estão mais próximos a ele;
  • O projeto evolui de mãos dadas com a feature de negócios, pois, ele é constantemente testado e ativado por refatoração, TDD e integração contínua;
  • Equipes evoluem rapidamente o projeto de acordo com os requisitos atualmente conhecidos.

A Arquitetura Emergente é inegavelmente muito eficaz para os esforços em equipe. Mas acaba sendo insuficiente para o desenvolvimento de grandes sistemas.

Nesse sentido, ela pode causar diversos problemas, como por exemplo:

  • Redesenho excessivo para tarefas que já poderiam ter sido antecipadas;
  • Criação de suposições e divergência de arquitetura;
  • Falta de conhecimento sobre necessidades futuras de negócio por parte das equipes;
  • Novos padrões de usuário transversais, o que afeta o propósito futuro da arquitetura.

Por essas e por outras razões, a Arquitetura Emergente para de responder à complexidade de desenvolvimento para sistemas em larga escala.

Principalmente, porque as equipes não conseguem se antecipar às mudanças que podem ocorrer fora do seu ambiente, considerando que podem estar focadas em um projeto específico de uma determinada área ou, até mesmo, de uma unidade de negócio (BU), acabando por não ter a percepção do contexto como um todo que abrangeria outros requisitos estratégicos, outras interfaces entre áreas de negócios ou sistemas.

Isso faz com que percam a visão necessária de big Picture, que é colocada, por exemplo, na modelagem da arquitetura intencional.

Além disso, fica difícil evitar a produção de código e design redundante e ou conflitantes.

Portanto, torna-se necessária a criação de uma Arquitetura Intencional.

Arquitetura Intencional

Trata-se de um conjunto de iniciativas planejadas para aumentar o design da solução, bem como o desempenho e usabilidade.

Ao mesmo tempo, a Arquitetura Intencional também busca fornecer orientação para o projeto entre as equipes e sincronização da implementação.

Desse modo, a Arquitetura intencional delimita o design emergente, mas de modo a permitir que as equipes possam se adaptar à parte “intencional” para seu contexto específico.


Da mesma maneira, influências e design emergente corrigem a arquitetura intencional e também alimentam novas ideias para o futuro, centralizando o esforço intencional.