Photo by Ricardo Gomez Angel on Unsplash

Arquitetura de sistemas e agilidade

Andre Fonseca
Apr 10, 2018 · 3 min read

Há 10 ou 15 anos atrás me lembro de estar trabalhando num empresa que se orgulhava de todo o seu processo em cascata, com escopos divididos em equipes (equipe de negócio, arquitetura, desenvolvimento, ux, desenvolvedores e QA — qualidade). Atualmente, isso seria comparado a uma história de terro e seria visto como algo a ser esquecido.

Com toda a revolução causada pelo adoção do agilismo e todo melhora que adveio, umas das coisa que sinto falta é de um detalhamento maior da arquitetura: discutir arquitetura se tornou um assunto proibido

Dentro do agilismo, a máxima é que as iterações dão conta da evolução do sistema e das necessidades que aparecerem. Temos que fazer as coisas somente quando elas são necessárias. Antecipar é um desperdício.

Porque pensar arquitetura virou tabu?

http://www.sofisica.com.br/conteudos/Ondulatoria/MHS/pendulo.php

Sendo assim, antes a gente exagerava com a etapa de entendimento e arquitetura, gerando desenhos e soluções que aumentavam a complexidade da solução sem necessidade, e claro, com isso desperdício.

Quando veio todo o conceito de agilidade, e a necessidade de fazermos “somente o necessário”, o pendulo oscilou para a posição oposta com a mesma energia, e com isso, pensar arquitetura foi considerado em todos os casos um desperdício.

Pacificando a questão de arquitetura e ágil

https://www.newamerica.org/education-policy/edcentral/2nasfaa-fafsa/

A medida que vamos amadurecendo vamos vendo que o melhor caminho não são os extremos e sim “o caminho do meio”: temos que trazer de volta as discussões de arquitetura, entretanto, repensar também como pensar em arquitetura.

Antes de mais nada, é preciso entender que arquitetura e pensar arquitetura, não se trata de criar uma panaceia para todos os males dos nossos sistemas: não é o papel dela apresentar todas as soluções, ela tem que evoluir a medida que o sistema evolui. As necessidade mudam e o escopo também.

Arquitetura de software não é panaceia para todos os problemas. Não é esse o objetivo

Para mim o grande benefício de uma boa arquitetura é permitir que eu adie decisões até o momento que eu não possa mais, e quando preciso fazer qualquer modificação, isso é algo fácil, não intrusivo e não vai “quebrar” tudo.

Conceitos como isolamento, “aberto para extensão”, interfaces, desacoplamento são desejados e necessários.

Novo papel da arquitetura então

Arquitetura deve ser pensando e ter o papel fundamental de permitir que construamos sistemas mais simples (não simplórios) que sejam fáceis de evoluir e que permitam atender bem as demandas.

Outro ponto é que discutir arquitetura não é antecipar ou exercício de futurologia. Faz parte da solução e necessária para termos um projeto. Simplesmente “sair fazendo” não me parece ser um bom caminho. Nada impede mudanças de rumo ou eventuais correções: boas arquitetura, ao contrário, são chaves para que isso aconteça.

Quem ficar informado e receber vários outros conteúdos? Faça parte da nossa lista:

Andre Fonseca

Written by

One more human, father full time and passionate about life and knowledge