Responsabilidades de um Arquiteto de Soluções

Abordaremos as principais responsabilidades de um Arquiteto de Soluções dentro das organizações.

A responsabilidade fundamental do Arquiteto de Soluções é converter a visão de negócio em uma solução técnica e funcionar como uma ligação entre os stakeholders de negócio e os stakeholders técnicos.

As principais responsabilidades de um Arquiteto de Soluções são:

  • Analisar requisitos funcionais.
  • Definir requisitos não-funcionais.
  • Engajar e trabalhar com os stakeholders.
  • Contornar restrições de arquitetura.
  • Selecionar tecnologia.
  • Desenvolver PoCs (provas de conceito).
  • Desenhar a solução e entregas.

 

Analisar requisitos funcionais (requisitos de usuários)

O Arquiteto de soluções desenha a aplicação e isto pode impactar a solução para o negócio como um todo. É de extrema importância que o Arquiteto de soluções tenha a habilidade de analisar os requisitos de negócio. Ele precisa ter os skills de um analista de negócios e a habilidade para trabalhar com diversos stakeholders. Ele não é só um expert técnico, mas também tem um bom entendimento do domínio de negócio. Este profissional trabalha perto do Product Manager e outros stakeholders para entender todos os aspectos dos requisitos. Um bom Arquiteto de soluções ajuda o time de produto a descobrir requisitos escondidos, que outros stakeholders não técnicos tem dificuldade de explorar sob uma perspectiva de solução com um todo.

 

Definir requisitos não-funcionais

Requisitos não-funcionais podem não estar visíveis para os usuários, mas podem impactar negativamente sua experiência.

A seguir está uma lista dos principais requisitos não-funcionais e as questões que deveriam ser tratadas pelo Arquiteto de Soluções.

Performance

  • Qual será o tempo de carregamento para o usuário?
  • Como a latência de rede pode ser tratada?

Segurança e compliance

  • Como se pode manter a aplicação segura contra acessos não autorizados?
  • Como se pode proteger a aplicação de ataques maliciosos?
  • Como se pode adequar a aplicação às leis e requisitos de auditoria?

Recuperação

  •  Como a aplicação se recupera de uma indisponibilidade?
  •  Como se pode reduzir o tempo de recuperação?
  •  Como se pode recuperar de uma perda de dados?

Sustentação

  • Como se pode assegurar o monitoramento e alertas da aplicação?
  • Como se pode assegurar o suporte?

Confiabilidade

  • Como se pode garantir que uma performance consistente?
  • Como se pode inspecionar e corrigir falhas?

Disponibilidade

  • Como se pode assegurar a alta disponibilidade da aplicação?
  • Como se pode fazer a aplicação tolerante a falhas?

Escalabilidade

  • Como se pode tratar o incremento da demanda?
  • Como se pode ter uma boa escala para picos de utilização repentinos?

Usabilidade

  • Como se pode simplificar o uso da aplicação?
  • Como se pode alcançar uma experiência do usuário transparente?

 

Engajar e trabalhar com os stakeholders

Diferentes stakeholders têm visões diferentes de um mesmo requisito. O Arquiteto de Soluções precisa trabalhar com stakeholders técnicos e não técnicos. Ele deve possuir alta capacidade de comunicação e negociação para ajudar a construir o melhor caminho para uma solução. O Arquiteto de Soluções funciona como uma ligação entre os times técnicos e não técnicos e preenche o gap na comunicação. Ele também garante que todos os times estão na mesma página e usa uma linguagem simples para garantir que todos entendam.

 

Contornar restrições de arquitetura

A seguir está uma lista das questões relacionadas as restrições de um projeto e que devem ser tratadas pelo Arquiteto de Soluções.

Custos

  • Qual o orçamento disponível para a implementação da solução?
  • Qual o ROI esperado?

Qualidade

  • O quanto as entregas estão de acordo com os requisitos funcionais e não funcionais?
  • Como se pode assegurar a qualidade de uma solução?
  • Como tratar os débitos técnicos?

Tempo

  • Qual a entrega da solução deveria ser feita?
  • Existe alguma flexibilidade em relação ao tempo?

Escopo

  • Qual a expectativa exata?
  • Como os gaps de requisitos devem ser tratados?

Tecnologia

  • Qual tecnologia pode ser utilizada?
  • Qual a flexibilidade em relação ao uso de ambientes legados e novas tecnologias?
  • A solução deveria ser construída in-house ou adquirida de terceiros?

Risco

  • O que pode dar errado e como fazer para mitigar?
  • Qual a tolerância de risco dos stakeholders?

Recursos

  • O que se precisa para completar a entrega?
  • Quem irá trabalhar a implementação da solução?

Compliance

  • Quais são as leis que impactam a solução?
  • Quais são os requisitos de auditoria e certificação?

 

Selecionar tecnologia

Para o Arquiteto de Soluções é um papel chave e de alta complexidade. A decisão correta do Arquiteto de Soluções deve ter foco na stack que melhor atende aos requisitos funcionais e não funcionais. Deve ser considerado qual o objetivo principal da solução, por exemplo, integrar com outros frameworks, integrar com APIs, ter alta performance ou atender a todos os requisitos de segurança.

O Arquiteto de Soluções deve escolher a tecnologia que atenda aos requisitos atuais e possa escalar para futuras necessidades.

 

Desenvolver PoCs (provas de conceito)

Uma Poc tem o objetivo de analisar várias stacks tecnológicas e como elas se adequam aos requisitos funcionais e não funcionais. O Arquiteto de Soluções deve selecionar um subconjunto de funções que se quer avaliar. A PoC tem um ciclo de vida pequeno e limitado aos experts de um time. Depois da PoC o Arquiteto de Soluções pode evoluir para uma prototipação em uma stack tecnológica que tem o propósito de demonstrar uma tecnologia e garantir a aprovação de orçamento.

 

Desenhar a solução e entregas

Um Arquiteto de Soluções cria o desenho da solução depois de analisar os requisitos funcionais, definir os requisitos não funcionais, tratar as restrições e fazer a seleção de tecnologia. Em uma abordagem ágil este é um processo iterativo onde os requisitos podem mudar ao longo do projeto e o desenho da solução deve acomodar as mudanças. O Arquiteto de Soluções deve participar de todas as etapas do ciclo de vida da entrega de uma solução

A seguir estão listadas as etapas do ciclo de vida do desenho da solução e suas entregas.

Requisitos de negócio e Visões

O Arquiteto de Soluções trabalha os stakeholders de negócio para entender a visão que eles têm da solução

Análise de requisitos e visão técnica

O Arquiteto de Soluções analisa os requisitos funcionais e define a visão técnica que irá executar a estratégia de negócio

Prototipação e recomendação

Um Arquiteto de Soluções faz a seleção de tecnologia fazendo PoCs e protótipos

Desenho da solução

Um Arquiteto de Soluções cria o desenho da solução junto com outros stakeholders

Desenvolvimento da solução

O Arquiteto de Soluções trabalha junto com o time de desenvolvimento e funciona como uma ponte entre o time de negócios e o time técnico

Integração e testes

O Arquiteto de Soluções garante que a solução final está funcionando como esperado para todos os requisitos funcionais e não funcionais

Implementação

O Arquiteto de Soluções trabalha junto com o time de desenvolvimento e com o time de deploy de forma a tornar o deploy mais suave possível

Operação e sustentação

O Arquiteto de Soluções garante que os logs e monitoração da solução estão funcionando e orienta os times sobre escalonamento e DR da solução

O Arquiteto de Soluções não é somente responsável pelo projeto/desenho da solução, ele auxilia o gerente de projetos nas seguintes tarefas:

  •   Alocação de recursos
  •   Timeline e milestones do projeto
  •   Estimativa de custos
  •   Releases do projeto
  •   Plano de sustentação

O Arquiteto de Soluções também trabalha com o time de desenvolvimento e com o time de operações no deploy, monitoramento e sustentação da solução.

 

Bom, tentei passar aqui as responsabilidades de um Arquiteto de Soluções e os principais aspectos que este profissional deve considerar quando fizer o desenvolvimento de uma solução.

 

Imagem de Josue Isai Ramos Figueroa no Unsplash.

Bruno Veiga

Bruno Veiga

Arquiteto Cloud e Arquiteto de Soluções. Me dedicando em compartilhar conhecimento e ajudar empresas a encontrar as melhores soluções tecnológicas para os problemas do negócio com agilidade, segurança, equipes alinhadas e dentro do orçamento.