Exemplo prático de arquitetura de software
Antes de aplicar a arquitetura de software para resolver um problema, deve analisar os condutores para se chegar nas soluções dos problemas desses condutores.
O que é uma arquitetura de software
"Arquitetura de software é o conjunto de decisões que, se feitas incorretamente, podem causar o cancelamento do projeto" - Eoin WoodsTipos de arquitetos
- Arquiteto de soluções
- Responsável por trabalhar com times comercial e pré-venda na solução pré-liminar de um projeto.
- Antes do projeto ser aprovado.
- Faz a ponte entre outros arquitetos, em particular do arquiteto de software.
- Arquiteto de software
- Papel central: liderar a construção de uma arquitetura desde o primeiro dia do projeto
- Usa-se os requisitos críticos
- Toma decisões técnicas
- Arquiteto de dados
- Desafios como BI, ETL, etc.
- Tomada de desciões técnicas
- Arquiteto de Infraestrutura
- Ex.: computação nas nuvens
- Arquiteto de tecnologia Java EE
- Arquiteto de tecnologia .NET
- Arquiteto das nuvens
Conceitos sobre o arquiteto de software
- O arquiteto é um desenvolvedor sênior
- Falso
- Enquanto o desenvolvedor é um especialista, o arquiteto é um generalista.
- O arquiteto não é um desenvolvedor sênior
- O arquiteto domina as APIs de segurança Java ou .NET
- Falso
- Mas precisa dominar as táticas e soluções de mercado que ele vai trabalhar
- O arquiteto domina as táticas arquiteturais de segurança
- O arquiteto desenha plantas e o time de desenvolvimento implementa
- Falso
- O arquiteto junto com o time de desenvolvimento desenvolve cria plantas
- O arquiteto desenvolve a arquitetura
- Falso
- Ele desenvolve a arquitetura junto com time
- O time de arquitetura desenvolve a arquitetura
O que faz um arquiteto de software
Liderar a concepção do software...
...Definindo os atributos de qualidade.
Fornece apoio à construção do software...
...Baseado nos atributos de qualidade.
Decomposição típica das atividades de um arquiteto
- Coleta de requisitos (25%)
- Modelagem e implementação de provas de conceito (50%)
- Provas de conceitos são instrumentos para que arquitetos possam reduzir riscos
- Assistência ao time (25%)
O contexto na arquitetura de software
- É preciso olhar o contexto ambiental onde o arquiteto está envolvido para se tomar decisões arquiteturais. Ex. mudar de framework quando não se tem tempo, nem experiência.
Influências na arquitetura
- Contexto de negócio
- Qual a natureza do projeto que se está trabalhando? Se está trabalhado com um projeto de tempo fechado, não se pode ofender o prazo.
- Diretrizes e requisitos
- Captar as diretrizes do projeto como escalabilidade, segurança, usabilidade que são elementos críticos.
- Restrições e premissas
- Tempo, custo e muitas outras restrições. Ex. time júnior sem capacitação.
- Experiência do time
- Ignorar a experiência do time pode trazer consequencias graves no projeto.
- Soluções técnicas disponíveis
- São chamados de ativos arquiteturas. Podem ser elementos importantes para guia o arquiteto no caminho de boas soluções técnicas.
- Atributos de qualidade diversos
- Aspectos como segurança da informação, performance, usabilidade. É preciso conhecer esses atributos para se alcançar uma boa arquitetura
Decisões arquiteturais
"A vida de um arquiteto de software é uma longa sucessão de decisões sub-ótimas e parcialmente tomadas no escuro." - Philippe Kruchten
Pontos a serem observados ao tomar decisões
- Alinhamento estratégico
- nunca colocar a tecnologia na frente do negócio.
- Balanceamento de influências diversas
- experiência do time
- ativos da empresa
- contexto de negócio (diretrizes)
- Análise de riscos
- Processo decisório
- O que é melhor para o projeto e não o que o desenvolvedor quer fazer.
Nenhum comentário:
Postar um comentário