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
|
Adicionalmente Desempenha |
|
Modifica |
|
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
Listas de Verificação |
|
Conceitos |
|
Diretrizes |
|
White papers |
|
© Copyright IBM Corp. 1987, 2006. Todos os Direitos Reservados.
|
|