No último dia 13, aconteceu um meetup, organizado pela equipe DEVtalks PUC Minas, no Auditório Liberdade, em Belo Horizonte. Um dos temas foi “Qual é papel do Arquiteto de Software atualmente?” discutido por Rogério Baldini, Amanda Pinto, Marcelo Umberto e Alex Simonetti. O assunto faz questionar qual caminho trilhar ou o que fazer para se tornar Arquiteto dentro de uma empresa.
Nas eras que programar em COBOL e/ou Clipper eram tendências e havia a preocupação de não escrever uma linha de código muito extensa ou um arquivo de algoritmo não muito pesado, pois gravava-se o sistema em um disquete (ou vários), os profissionais de TI eram quase operários industriais, tinham cargos e funções específicas e bem definidas. Não existia a necessidade de fazerem parte de alguma outra área ou aprender algo novo em um curto espaço de tempo. A demanda de construção de qualquer sistema era baixa, seu método de desenvolvimento envolvia o modelo cascata (sequencial) e o termo “tempo é dinheiro” era ainda pouco conhecido e, na maioria das vezes, despendia-se mais tempo e menor era o ROI (traduzido do inglês “retorno sobre o investimento”).
Nesse contexto, exercer a função de arquiteto de software resumia-se em analisar os requisitos levantados por um analista de negócios/sistemas, modelar diagramas para facilitar o entendimento do negócio e modelar algum tipo de arquitetura para o sistema como um todo e iniciar o desenvolvimento.
A grande questão é: em tempos onde empregar metodologias ágeis é algo que deve fazer parte da cultura de uma empresa e a entrega de valor deve ser constante e em um curto período de tempo, é suficiente executar apenas o que o cargo/função descreve? A resposta para essa pergunta é não. E vou explicar o motivo mais adiante.
Numa época em que deve-se errar menos ou errar rápido e solucionar o erro em um tempo ainda menor, surge a necessidade de obter profissionais proativos, multidisciplinares e, muitas vezes, auto ditadas. Isso se dá pois o Arquiteto, no caso, precisa tomar decisões cada vez mais pontuais e impactantes. E, para evitar falhas, é fundamental entender o negócio e contextualizá-lo com questões técnicas.
Com isso, é papel do Arquiteto fazer parte da interface com o cliente, para poder compreender mais a fundo sobre as necessidades do mesmo, questionando situações pontuais de negócio que impactam na construção do sistema, constituindo, também, participação na área de segurança e testes de qualidade, tendo que explorar qual é a melhor forma de realizá-lo e no setor financeiro, levantando custos que poderão gerar e realizar benchmarks (como qual linguagem de programação utilizar). Além de possuir um vasto conhecimento sobre tecnologias, como linguagens de programação e/ou serviços em nuvem, para formular uma arquitetura e auxiliar na construção da mesma.
O que faz um bom Arquiteto de Software, então?
O papel do Arquiteto de Software vai muito além de ter conhecimento técnico excelente. É preciso saber falar em público e, consequentemente, conversar com o cliente, manter uma boa relação, compreender suas necessidades, imaginar cenários de segurança e em como irá realizar os testes de qualidade do software. Levantar custos financeiros para utilizar uma determinada tecnologia e/ou plataforma e, muitas vezes, tomar decisões como “Utilizar uma linguagem OpenSource ou gastar 1 milhão de reais utilizando outra” e “O que será o meu ROI”.
Acredita-se que tais habilidades são adquiridas com o passar do tempo, com os anos de trabalho conquistando experiência, onde gradativamente é obtido o conhecimento mais sólido em cada área apresentada. Além de ter muita dedicação e estudo.
Autor:
Alex Alves
Equipe de Desenvolvimento na Localiza.
Bacharel em Ciência da Computação e MBA em Arquitetura de Software. Desenvolvedor há 4 anos.
Postado em sua página do Medium, no dia 13/02/19.