Arquiteto de Software e o seu papel estratégico na gestão
O Arquiteto de Software além do técnico: O papel estratégico da arquitetura corporativa
Quando se fala do arquiteto de software, lembra-se muito dos aspectos técnicos, mas tão importante quanto estes é o seu papel estratégico como líder e conselheiro em várias etapas do processo de desenvolvimento.
Em geral, os profissionais que estão no mercado querem evoluir na carreira. Isso não é diferente com a área de Tecnologia da Informação, em especial nas atividades de desenvolvimento de sistema. Seguindo uma carreira Y tradicional, chega uma hora que um profissional de sistemas tem que decidir em seguir um caminho gerencial ou um caminho técnico. Seguindo pela "perna" gerencial do Y ele poderá se aprimorar em disciplinas como Gestão de Projetos, Gestão de Processos, Gestão Estratégica de TI, entre outras. Ao optar pelo lado técnico, um caminho tradicional a ser seguido, principalmente por desenvolvedores, é buscar o cargo de Arquiteto de Software ou Arquiteto de Sistemas. Para muitos, ocupar esse cargo é chegar ao topo da pirâmide da hierarquia de desenvolvimento de sistemas. É se tornar o oráculo dos programadores.
Em parte, isso é verdade. Para chegar a ser um Arquiteto de Software é preciso ter um vasto conhecimento técnico, aliado a experiências muitas vezes frustrantes de adoção de tecnologias inovadoras ou tradicionais. É preciso ter "quebrado a cara" com SGBDs que não se integram bem com determinada tecnologia, um padrão de projeto que não suporta o volume de transações quando a aplicação cresce ou um modelo arquitetural que precisou ser adaptado para um projeto mobile, por exemplo. Estas experiências, quando vivenciadas e bem assimiladas, habilitam um desenvolvedor a conseguir entender tecnicamente as proposições de um software e traduzir as necessidades de especificação no melhor modelo arquitetural possível.
Porém, um dos grandes equívocos de quem almeja a carreira de Arquiteto de Software é achar que, se tornando um programador excelente, já está apto para exercer a função. Ou mais, que o dia a dia do Arquiteto de Software se limita a desenhar soluções técnicas eficientes para problemas complexos. Essa função existe, sim, e faz parte do dia a dia do Arquiteto. Porém, mais do que isso, este profissional precisa exercer dois papéis macro fundamentais: líder/coach técnico da equipe e conselheiro técnico da alta diretoria.
Os papéis do arquiteto de software
O primeiro papel diz respeito à forma como a equipe de desenvolvimento enxerga o Arquiteto de Software. De forma natural, espera-se que este profissional exerça o papel de referência para equipe. E, como referência, subentende-se que ele saiba ouvir e dialogar com a equipe, repassando seu conhecimento quando solicitado ou quando entender que seja necessário. Pressupõe-se, também, que este profissional consiga perceber quais as deficiências técnicas da equipe, inclusive propondo treinamento para pessoas chave que precisam desenvolver alguma competência técnica. Enfim, é função do Arquiteto de Software assumir o papel de líder técnico da equipe, uma pessoa com quem todos possam contar em situações de aperto ou que saiba conduzir uma equipe de excelência em desenvolvimento de software.
O segundo papel diz respeito à necessidade da alta diretoria em ter um respaldo técnico confiável para as necessidades estratégicas da empresa. Nesse sentido, o Arquiteto de Software precisa "sair" do universo pontual de desenvolvimento e adentrar a estratégia corporativa da empresa. Por exemplo, se ele está trabalhando em um sistema web de CRM (Customer Relationship Management) que levará 6 meses para ser desenvolvido, ele precisa participar ou ter conhecimento de decisões estratégicas da empresa que pode, por exemplo, definir que existe a expectativa deste sistema se tornar um App Android e iOS em 2 anos. Com essa informação ele poderá definir a arquitetura já pensando nessa possibilidade, trazendo ganhos para todo o processo. Além disso, como advisor da diretoria, o Arquiteto de Software deve advertir estes sobre qualquer ação que possa colocar em risco a empresa, como por exemplo, negociar com um cliente um volume de transações que o sistema atual não irá suportar.
Portanto, mesmo sendo frustrante para alguns, que esperam na função de Arquiteto de Software apenas atributos técnicos, é importante entender que as empresas esperam uma atuação mais completa. Pensando neste profissional, cursos em Arquitetura de Software ou Engenharia de Software com Métodos Ágeis procuram preparar os profissionais para entenderem estes anseios e corresponder da melhor forma possível.