Características de um Arquiteto de Software
Quais são as características básicas que um bom arquiteto de software atualmente deve possuir? Resumidamente, temos 6 itens primordiais:
- Agir como Líder
- Ser um desenvolvedor
- Ter o foco na solução
- Pensar como um empreendedor
- Balancear estratégica com pensamento tático
- Se Comunicar bem
Agindo como Líder
Os bons arquitetos de software entendem que seu papel como líder não é necessariamente dizer aos desenvolvedores o que fazer. Em vez disso, bons arquitetos agem como um guia, orientando uma equipe de desenvolvedores para a mesma visão técnica baseando-se em habilidades de liderança como contar histórias, influenciar, resolver conflitos, ensinar e construir a confiança com os indivíduos para transformar sua visão arquitetônica em realidade. Um bom líder e, portanto, um bom arquiteto, escutará atentamente as opiniões de cada colaborador, ajustando sua visão com o feedback da equipe. Isso leva bem para o próximo ponto
Ser um Desenvolvedor
Fazer boas escolhas arquiteturais consiste basicamente na responsabilidade de equilibrar um ideal arquitetônico conceitual com o estado real de um sistema de software. Por exemplo, não há sentido em optar por um banco de dados de documentos a um sistema se o domínio do problema é mais adequado para um banco de dados relacional, mesmo que seja chato. Um arquiteto pode se sentir tentado a impor tecnologias ou escolhas arquitetônicas sem considerar o fundamento do problema. A melhor maneira de um arquiteto mitigar isso é gastando tempo com desenvolvedores e tempo no código. Entender como o sistema foi construído, e suas restrições, dará ao arquiteto mais informações sobre as escolhas certas para o ambiente.
Ter um foco na solução
Os desenvolvedores experientes sabem que o código é apenas um aspecto do software real. Para tornar o código executável, um desenvolvedor experiente entende que existem outros atributos de qualidade importantes necessários para que o código funcione bem no ambiente de produção. Eles consideram aspectos como desempenho, segurança, escalabilidade, localidade, disponibilidade, confiabilidade, processos de implantação e testes automatizados. Os desenvolvedores simplesmente focam no código, mas o arquiteto no entanto, se concentrará na compreensão não apenas do código, mas também dos atributos de qualidade necessários para atender às muitas necessidades de diferentes partes interessadas. O bom arquiteto se concentra em encontrar soluções que possam satisfazer tantas dessas diferentes necessidades das partes interessadas, em vez de escolher uma ferramenta ou abordagem otimizada para as preferências ou o estilo de um único contribuinte
Pensando como um empreendedor
Todas as escolhas de tecnologia têm custos e benefícios, e um bom arquiteto vai considerar novas opções de tecnologia de ambas as perspectivas. Os empreendedores bem-sucedidos estão dispostos a assumir riscos, mas buscam maneiras de aprender rapidamente e fracassar rapidamente. Arquitetos podem abordar as escolhas de tecnologia de forma semelhante, buscando informações do mundo real sobre os custos de curto e longo prazo e os prováveis benefícios que eles vão perceber. Um bom exemplo é quando o arquiteto evita comprometer-se com uma nova ferramenta baseada na leitura de um novo artigo, ou ter ouvido falar dele em uma conferência. Em vez disso, eles procuram entender como a ferramenta é relevante em seu ambiente, coletando mais informações. Eles não escolhem uma ferramenta baseada em quão bom a toa, mas que valor oferece, dado o que eles precisam para o seu sistema.
Balanceamento estratégico com pensamento tático
Muitas equipes constroem seu software de forma reativa com desenvolvedores individuais que escolhem ferramentas e tecnologias com as quais se sentem mais confortáveis ou com mais experiência. O bom arquiteto mantém um olho fora da caixa, alem da zona de conforto para que novas tecnologias, ferramentas ou abordagens que possam ser úteis, mas não necessariamente imediatamente. A adoção da tecnologia requer uma abordagem que considere um horizonte de longo prazo. Os arquitetos procurarão um bom equilíbrio entre a agilidade, permitindo que a equipe se mova rapidamente e o alinhamento, mantendo a consistência suficiente, tanto no nível organizacional como em equipe.
Comunicando bem
Arquitetos sabem que a comunicação eficaz é uma habilidade fundamental para a construção de confiança e influenciar as pessoas fora da equipe. Eles sabem que diferentes grupos de pessoas usam vocabulário diferente e que usar os termos técnicos e descrições com os empresários torna a comunicação mais difícil. Em vez de falar sobre padrões, ferramentas e conceitos de programação, o arquiteto usa palavras com as quais seu público estará familiarizado. Comunicar opções técnicas aos empresários com palavras como risco, retorno, custos e benefícios servirá melhor a um arquiteto do que as palavras que eles usam com sua equipe de desenvolvimento. Um arquiteto também percebe que a comunicação dentro da equipe é tão importante quanto fora e usará diagramas e discussões em grupo para estabelecer e refinar a visão técnica e usar um registro escrito como um registro de decisão arquitetônico ou um wiki para fornecer uma trilha histórica para gerações futuras.
Vamos praticar? Vem comigo!
“Tu és grande e poderoso, glorioso, esplêndido e majestoso. Tudo o que existe no céu e na terra pertence a ti; tu és o Rei, o supremo governador de tudo.”1 Crônicas 29:11
Um comentário em “Características de um Arquiteto de Software”
Os comentários estão encerrados.
04/07/2017 às 17:42
[…] https://fernandofranzini.wordpress.com/2017/06/05/caracteristicas-de-um-arquiteto-de-software/ […]