O papel do Arquiteto de Software | Fundamentos de Arquiteto de Software | Parte 04

O papel do Arquiteto de Software | Fundamentos de Arquiteto de Software | Parte 04

O papel do arquiteto de software

Visão geral da seção: Nesta seção, o palestrante discute a importância do arquiteto de software e como ele é fundamental para manter a integridade dos componentes adicionados à solução.

A importância da arquitetura de software

  • A arquitetura de um software pode ser explicada pelos componentes que compõem o sistema, suas responsabilidades e a forma como eles se relacionam.
  • É fundamental ter uma estratégia clara e padrões coerentes que governem as tomadas de decisão com relação ao software.

O papel do arquiteto de software

  • Embora o papel do arquiteto seja provavelmente muito importante, não é necessariamente indispensável.
  • Muitas aplicações seguem uma receita padrão bem-sucedida sem um arquiteto explicitamente designado.
  • À medida que mais componentes são adicionados à solução, torna-se mais difícil manter a integridade desses componentes. Surge a necessidade do arquiteto para garantir isso.

Exemplo comum de progressão da arquitetura

  • Na maioria das empresas, existe uma progressão comum na implementação da arquitetura.
  • Começa com um front-end implementado em alguma tecnologia moderna, um back-end implementado com .NET ou algo similar e um banco de dados relacional.
  • Em algum momento surge a necessidade de implantar uma solução de caching ou banco de dados full-text para consultas mais poderosas.
  • Eventualmente, há também a necessidade de sincronização entre os bancos relacional e full-text.
  • Se precisar trabalhar com grandes montantes de dados, é necessário implantar alguma rotina mais sofisticada de integração.
  • Em algum ponto, alguma requisição do usuário pode precisar de um processamento mais extenso e se adota algum mecanismo de mensageria.

A necessidade do arquiteto

  • À medida que mais componentes são adicionados à solução, torna-se mais difícil manter a integridade desses componentes.
  • Surge a necessidade do arquiteto para garantir isso.

O papel do arquiteto de software

Visão geral da seção: Nesta seção, o palestrante discute o papel do arquiteto de software e como ele é diferente do desenvolvedor sênior.

Arquitetos experientes são referências para a arquitetura

  • Arquitetos experientes são referências para a arquitetura.
  • Eles já participaram de muitos projetos e viram soluções arquiteturais serem implantadas várias vezes.
  • Eles conseguem traçar uma relação entre o problema que a organização está enfrentando e uma solução natural que já foi implementada no passado.

O arquiteto não é necessariamente um desenvolvedor sênior

  • O fato é que o arquiteto de software é responsável por perceber formas padrões para relacionar componentes, responsabilidades, relacionamentos e formular estratégias para atender aos objetivos do negócio.
  • O arquiteto não é um desenvolvedor sênior. A maioria dos bons arquitetos de software são excelentes desenvolvedores, mas essa não é necessariamente uma regra.

Arquiteturas geralmente são implementadas por desenvolvedores seniores

  • As arquiteturas geralmente são implementadas por desenvolvedores seniores que usam a experiência do passado para criar soluções arquiteturais no presente.
  • Essas soluções costumam ser eficientes para tratar dos objetivos do negócio, mas pobres no cumprimento dos atributos de qualidade e das principais restrições.

O arquiteto é um orquestrador

  • O papel do bom arquiteto é atuar como um maestro, juntando as competências do time para compor uma bela arquitetura.
  • Ele deve chamar os especialistas para discutir a solução arquitetural e ouvir os imputs do time para começar a projetar a solução.
  • O arquiteto deve conhecer boas arquiteturas e saber recorrer a essas referências para conseguir construir uma nova implementação com o apoio do time.

Arquitetura de software não é uma atividade solitária

  • Arquitetura de software não é atribuição direta do arquiteto. Ele é um facilitador para o processo da arquitetura.
  • O fato do arquiteto ser um orquestrador, um facilitador, torna-o tão importante.

Arquitetura de Software: Como se Tornar um Arquiteto

Visão Geral da Seção: Nesta seção, o palestrante discute como se tornar um arquiteto de software e as habilidades necessárias para ser bem-sucedido.

Experiência e Estudo de Padrões Arquiteturais

  • Ter experiência em implementação de diferentes padrões arquiteturais ajuda a estabelecer uma relação clara entre um determinado tipo de problema e uma solução arquitetural que consegue resolver esse problema.
  • É importante estudar padrões arquiteturais, que são diferentes dos padrões de projeto utilizados como soluções de design para implementação.
  • Estudar boas soluções arquiteturais, como as usadas por empresas como Twitter e Facebook, pode ajudar a entender quais são os recursos arquiteturais e a forma como pensar os componentes para tratar necessidades específicas.

Comunicação Eficaz

  • Um bom arquiteto precisa aprender a construir bons diagramas e representações para comunicar efetivamente suas ideias.
  • O arquiteto deve ser capaz de falar com pessoas do negócio para atender aos objetivos do negócio respeitando as principais restrições e atendendo aos principais atributos de qualidade.
  • É importante ajustar o vocabulário e discurso do arquiteto ao público que está sendo tratado, criando visões diferentes para explicar a mesma solução arquitetural para públicos técnicos ou não-técnicos.

Envolvimento das Pessoas

  • Um bom arquiteto precisa aprender a envolver as pessoas e ter sensibilidade para entender que não sabe tudo e nem precisa saber todas as soluções técnicas.
  • O papel fundamental do arquiteto é compartilhar abstrações com o time e envolvê-lo no processo, por isso é importante ter habilidades de comunicação eficazes.

Conclusão

O palestrante conclui que se tornar um arquiteto de software requer experiência em implementação de diferentes padrões arquiteturais, estudo de padrões arquiteturais, habilidades de comunicação eficazes e sensibilidade para envolver as pessoas no processo. É importante ajustar o vocabulário e discurso do arquiteto ao público que está sendo tratado, criando visões diferentes para explicar a mesma solução arquitetural para públicos técnicos ou não-técnicos.