Li sobre o papel do Arquiteto de Software em um texto da revista Mundo Java e resolvi falar um pouco sobre este assunto, muito embora não seja um especialista neste assunto em Arquitetura, ainda. Mas na verdade a idéia e passar a experiência e ler os comentários, que na maioria das vezes são muito interessantes.
Conheço muitas pessoas da área, de desenvolvimento de software, naturalmente, que trabalham e já trabalharam em diferentes empresas e em pouquíssimas delas ouve-se efetivamente falar da figura do arquiteto de software. Enfim, o arquiteto é traduzido naquele Analista de Sistemas mais experiente, na maioria das vezes, que consegue definir melhor como o sistema deve ser estruturado e pronto. Sorte dos sistemas e dos clientes, que para o escopo em que o sistema estará definido por quase toda a sua vida útil aquela arquitetura funciona.

E quando o escopo da aplicação muda repentinamente, por conta de alguma nova tecnologia, alguma nova regra de negócio? E agora? Em geral a resposta está implícita, mas é: “Problema do desenvolvedor, ele resolve”.
Afinal de contas, falamos em Arquiteto de Software, mas nós sabemos exatamente o que vem a ser Arquitetura de Software? No texto o qual estive lendo há uma boa definição genérica para tal, ele diz: “basicamente, o que entendemos como arquitetura é a infra-estrutura técnica que fundamentará os alicerces principais da aplicação sendo desenvolvida”. Como não discutiremos esse assunto, essa definição está muito boa até aqui.
Agora que temos uma boa definição para Arquitetura de Software, resta ao arquiteto a função de modelar essa infra-estrutura pensando em todos os pontos existentes desde as camadas da aplicação a protocolos de comunicação e requisitos não-funcionais da arquitetura e por vezes orientar os analistas de sistemas e desenvolvedores envolvidos no
projeto quais as melhores formas de implementar, a fim de respeitar o modelo arquitetural apresentado.
Então para tal façanha o Arquiteto de Software, deverá conhecer os princípios de diversas tecnologias, diversos padrões arquiteturas, os benefícios e limitações das tecnologias para poder ao final de tudo apresentar uma prova arquitetural consistente e baseada em respostas conhecidas a problemas semelhantes.
E ainda, acompanhar todo o trabalho de implementação para conhecer e contornar os problemas que poderão ser encontrados nesta etapa.
Por fim, e não menos importante, esse profissional deverá atualizar-se “just-in-time” para enfrentar os novos desafios.
Alguém conhece quem é esse cara na empresa em que trabalha ou em algum lugar? O profissional (ou grupo) que pensa soluções arquiteturais e as viabiliza baseando-se nos requisitos e nas tecnologias existentes para tal?