O documento discute o que é necessário para ser um arquiteto de software. Ele destaca que é preciso ter conhecimento técnico em vários domínios como arquitetura de negócios, infraestrutura, software e segurança, além de tecnologias e linguagens de programação. Também é importante ter habilidades de liderança, comunicação e mentoria. Um arquiteto precisa adotar uma abordagem ágil e enxuta, evitando soluções prematuras para problemas ainda não conhecidos.
5. Conhecimento técnico é importante...
• Saber se comunicar bem com equipes técnicas e de negócio
• Um trusted advisor para a gerência de projetos e stakeholders
• É preciso ser um mentor para a equipe
• Saber gerenciar crises e conflitos arquiteturais
• Analisar problemas de neǵocio
• Gerenciar expectativas
• Saber a hora de recuar e de progredir para defender a
arquitetura
7. Conhecimento de diferentes dominios
• Arquitetura de Negocio
• Arquietura de Infraestrutura
• Arquitetura de Software
• Arquitetura de Segurança
• Arquitetura de Dados
8. E de suas tecnicas e tecnologias associadas
• NoSQL, SQL, XML, JSON, Big Data, Cache, Data Grid
• UML
• Requisitos Funcionais
• Requisitos Não-Funcionais
– Escalabilidade
– Alta Disponibilidade
– Segurança
– Resiliência
– Disponibilidade
– Etc...
• DSL, BPM, BRM
9. Conhecimento de diferentes Plataformas
• Mainframe
• Client-Server
• Web
• Mobile
• Cloud
• Monolitica
• Client-Server (2-tier, 3-tier, n-tier)
• P2P
• EDA
• SOA
• REST
E de estilos arquiteturais
10. Conhecer processos de desenvolvimento
• Extreme programming (XP)
• Agile Methods
• Kanban
• RUP
• Unified Process
• Waterfall
11. Conhecimentos de Análise e Design
• Padrões de Design
– GOF
– EIP
– MEP
– Java EE Design Patterns
• OOAD
• Domain Driven-Design
12. Conhecimento de Middleware
• ESB – Enterprise Service Bus
• MOM - Message Oriented Middleware
• EAI – Enterprise Application Integration
• ETL – Extract, Transform and Load
• Java Application Server
15. Possuir um arsenal de ferramentas
• ALM
• Modelagem e Arquitetura de Software
• SCM
• Build Automation
• CI
• Deploy Automation
• Etc...
16. Para montar uma visão alto nivel
• Montar a visão do Big Picture, sem perder a visão final
• Identificar Componentes, Comunicação e Padrões
• No Silver Bullet
17. Adotar uma abordagem Lean
• Evitar Big Design Up Front e Big Architecture Up Front
• Não tentar dar soluções para problemas que você ainda não
sabe se vão acontecer (Eles podem não ser realmente
problemas, podem não ser tão importantes ou podem nunca
acontecer)
• Foco nas partes que não podem / devem sofrer mudanças
• Isolar os frameworks e componentes de terceiros pode facilitar a
sua mudança
19. É preciso preparo
• Ler livros, artigos e blogs
• Conversar com outros arquitetos e saber sobre suas
experiências
• Participar de fóruns e eventos que abordem o tema
Para
desenvolver e
aprimorar sua
técnica