Resenha da parte I do livro "The Software Architect Elevator"

25-01-2023 – Por Gustavo Aquino

Contexto

A arquitetura de software tem sido objeto de acaloradas discussões entre técnicos e gestores de TI há décadas. Muitas obras de grandes autores, como Mark Richards, Sam Newman, Len Bass, George Fairbanks, Frederick Brooks Jr., entre outros, têm contribuído para esclarecer esse vasto tema.

Nesta resenha, será abordada a primeira parte do livro "The Software Architect Elevator" [1], intitulado em português como "O elevador do arquiteto de software", escrito por Gregor Hohpe [2] autor também do aclamado EIP, "Enterprise Integration Patterns" [3], um catálogo de padrões essenciais para integrações entre sistemas.

Elevadores
Os Arquitetos de Software precisam trafegar por diferentes níveis organizacionais.

Parte I – Arquitetos

Nesta primeira parte, o autor lista as habilidades e características que são desejáveis em um arquiteto de software, e quais funções esse deveria exercer dentro de uma organização como: visão de amplo escopo estratégico, liderança técnica e bons gestores de pessoas. O autor afirma que esses profissionais devem lidar com discussões que vão além do âmbito técnico, como: o contexto situacional em que se está inserido e certas suposições tácitas, que, por vezes, ocultam informações contextuais fundamentais, além de estabelecer comunicações entre diferentes níveis organizacionais.

Encontrar o equilíbrio certo nas escolhas de decisões de design de acordo com os objetivos e princípios estabelecidos é fundamental, conectando os componentes de software para que possam trabalhar em conjunto de forma a alcançar o resultado esperado, sem deixar de lidar com a complexidade por meio do uso de técnicas de governança.

Com relação à comunicação, o autor utiliza a metáfora de um elevador de um edifício, conectando os níveis inferiores, onde os engenheiros de sistemas atuam na criação e sustentação de sistemas de software do negócio, aos níveis superiores, onde se encontram os executivos responsáveis pela alta abstração do negócio oferecido pela organização. Essa conexão é representada pela metáfora de um elevador de um edifício. Neste contexto, a função do arquiteto é transitar naturalmente por esses níveis, sem perder a essência da mensagem, ou seja, adaptando a linguagem utilizada de acordo com as necessidades específicas.

Em situações em que há resistência à atuação do arquiteto de software na comunicação entre diferentes níveis, o autor argumenta que é necessário trabalhar para reduzir essa resistência. Uma maneira de reduzir essa resistência é tornando os níveis superiores interessados e cientes dos projetos realizados pela engenharia. Além disso, é importante estabelecer ciclos frequentes de feedback.

No que diz respeito às características técnicas, Hohpe descreve que arquitetos devem garantir que as soluções desenvolvidas mantenham o equilíbrio e a proporção das ideias iniciais. Essa capacidade também é mencionada por Frederick Brooks Jr. em seu livro "O mítico homem-mês", onde é denominada como "integridade conceitual". Brooks destaca a importância do arquiteto trabalhar para unir as ideias que compõem o sistema e manter a coesão do todo.

A experiência do arquiteto em projetos de diferentes tamanhos é fundamental, possibilitando que ele tenha sensibilidade para identificar oportunidades de mudanças que vão além dos requisitos funcionais esperados em um sistema. Essas mudanças podem incluir a necessidade de suportar a mudança no tráfego de dados a ser processado, as alterações de ambiente quando o sistema é movido para um novo fornecedor de computação em nuvem, ou a necessidade de implementar funcionalidades de globalização no sistema para torná-lo disponível em vários idiomas.

Outro aspecto técnico importante é a promoção da construção de ferramentas para a construção e entrega de software em produção, aumentando a velocidade da entrega das mudanças, além de reduzir o risco de erros em operações manuais realizadas pelas equipes de operações. O arquiteto de software deve garantir que seu caráter técnico seja livre de vieses, então esse deve se certificar de estar em contato com outros experts que lhes forneçam informações de modo que se permita enxergar além das buzzwords, e discernir se uma solução é realmente nova, ou apenas "inteligentemente requentada". Isso é importante, pois mitiga o estímulo de um arquiteto manter-se confortável com o mesmo leque de soluções, ou com o emprego irracional de novas ferramentas, sem que se tenha boas razões para aplicá-las.

Segundo o autor, a arquitetura empresarial é a organização lógica dos processos de negócio e da infraestrutura de TI que os suporta, unindo as realizações dos arquitetos de negócios e de TI. Existem diversas ferramentas de mapeamento de processos empresariais que são usadas por arquitetos. Segundo Hohpe, os arquitetos devem agir com cautela ao utilizar essas ferramentas como meros documentadores, já que podem entregar um produto final defasado assim que lançado. No entanto, essa abordagem estática apresenta um dilema recorrente para os arquitetos, pois ela pode não refletir com precisão as interações em constante mudança no ambiente empresarial.

Existem diferentes níveis de senioridade para os arquitetos de software, que segundo Hohpe, pode ser identificado aplicando o tripé de habilidade, impacto e liderança, onde a habilidade se refere à capacidade de resolver problemas reais com as ferramentas adequadas; o impacto mede como as habilidades do arquiteto beneficiam a empresa, ajudando a atingir seus objetivos estratégicos e de mercado; e a liderança, que determina a habilidade do arquiteto em promover o estado das suas práticas, do compartilhamento de conhecimento através de palestras, blogs, publicações e ao mentorar outros profissionais.

Por último, a habilidade de fazer as perguntas certas e identificar quem toma as decisões e as motivações por trás delas é uma competência indispensável para o arquiteto de software.

Considerações

As reflexões apresentadas por Hohpe nessa primeira parte são fundamentais para entender a posição que o arquiteto de software ocupa dentro do complexo ecossistema organizacional, que envolve diversos grupos de interesse, indo muito além das decisões puramente técnicas relacionadas a aspectos de engenharia ou operações.

No entanto, é importante destacar que a capacidade de comunicação e tomada de decisões é o aspecto mais importante para o sucesso de uma gestão, independentemente da área observada, seja para estabelecer um novo marco ou mudar a trajetória de um projeto que apresenta desvio em relação ao planejado.

Lista de referências

  1. Gregor Hohpe – Página pessoal
  2. Livro "The Software Architect Elevator" – Amazon
  3. Livro "Enterprise Integration Patterns" – Amazon

Profile picture

Escrito por Gustavo Aquino, Mestre em Ciências, Engenheiro de Software e fundador da Decodifique.com. Você pode me encontrar no LinkedIn.

© 2025, Construído com Gatsby