Função: Arquiteto de Software
Essa função orienta o desenvolvimento da arquitetura de software do sistema, que inclui promoção e criação de suporte para as principais decisões técnicas que limitam o design e a implementação gerais para o projeto.
Conjuntos de Funções: Desenvolvedores
Relacionamentos
Descrição Principal

O arquiteto de software possui responsabilidade geral pela tomada das principais decisões técnicas, expressas como a arquitetura de software. Isso inclui, normalmente, a identificação e a documentação dos aspectos significativos do ponto de vista da arquitetura do sistema, incluindo "visualizações" de requisitos, de design, de implementação e de organização do sistema.

O arquiteto também é responsável pelo fornecimento de fundamentos para essas decisões, avaliando os interesses dos vários investidores, conduzindo os riscos técnicos e assegurando que as decisões sejam comunicadas, validadas e seguidas efetivamente.

Criação da Equipe
Habilidades

"O arquiteto ideal deve ser uma pessoa erudita, um matemático, familiarizado com estudos históricos, um estudioso aplicado de filosofia, conhecedor de música, que não desconheça medicina, detentor de saber jurídico e familiarizado com astronomia e cálculos astronômicos." - Vitruvius, circa 25 BC

Em resumo, o arquiteto de software deve ter grande conhecimento geral, possuir maturidade, visão e profunda experiência que permita identificar problemas rapidamente e dar opiniões sensatas e criteriosas na falta de informações completas. Mais especificamente, o arquiteto de software ou os membros da equipe de arquitetura devem combinar as seguintes habilidades:

  • Experiência no domínio do problema, conhecendo totalmente os requisitos e no domínio de engenharia de software. Se há uma equipe, essas qualidades podem se achar distribuídas entre os seus membros, mas deve existir pelo menos um arquiteto de software que ofereça a visão global do projeto.
  • Liderança para conduzir o esforço técnico entre as várias equipes, tomar decisões críticas sob pressão e fazer com que essas decisões sejam cumpridas à risca. Para melhor eficiência, o arquiteto de software e o coordenador de projeto devem trabalhar juntos, com o arquiteto de software responsável pelas questões técnicas e o coordenador de projeto cuidando dos assuntos administrativos. O arquiteto de software deve ter poder para tomar decisões técnicas.
  • Comunicação para conquistar confiança, persuadir, motivar e servir como mentor. O arquiteto de software não pode liderar por decreto, mas somente com o consentimento dos outros membros da equipe do projeto. Para desempenhar sua função com eficiência, o arquiteto de software deve conquistar o respeito da equipe do projeto, do gerente do projeto, do cliente, da comunidade de usuários e da equipe de gerenciamento.
  • Orientação por metas e Proatividade com enfoque inexorável nos resultados. O arquiteto de software é a força técnica orientadora existente por trás do projeto, não um visionário ou sonhador. A carreira de um arquiteto de software bem-sucedido consiste em uma longa série de decisões insatisfatórias, tomadas com incerteza e sob pressão. Somente aqueles que se concentram em fazer o que deve ser feito terão êxito nesse ambiente do projeto.

Do ponto de vista do conhecimento, o arquiteto de software também precisa incluir os recursos de Função: Designer. No entanto, ao contrário do designer, o arquiteto de software:

  • tende a ser generalista, em vez de especialista, conhecendo muitas tecnologias em um nível superior, em vez de algumas tecnologias no nível de detalhe
  • toma decisões técnicas mais amplas e, portanto, amplo conhecimento e experiência, assim como habilidades de comunicação e de liderança, são importantes.
Abordagens da Designação

Se o projeto for grande o suficiente para justificar uma equipe de arquitetura, a meta é ter uma boa combinação de talentos que abranjam uma ampla variedade de experiências e tenham um entendimento comum do processo de engenharia de software. A equipe de arquitetura não precisa ser um comitê de representantes de diversas equipes, domínios ou contratados. A arquitetura de software é uma função em período integral, que exige dedicação permanente do pessoal envolvido.

Para projetos menores, uma única pessoa pode agir como coordenador de projeto e como arquiteto de software. No entanto, se for possível, é melhor que essas funções sejam executadas por pessoas separadas para assegurar que a pressão do tempo sobre uma função não cause a negligência da outra função.

Informações Adicionais