- Pense na arquitetura de software desde o primeiro dia do projeto.
- Use os riscos identificados para orientar o design da arquitetura de software.
- Acompanhe a evolução dos riscos junto com o backlog do produto.
Globalcode – Open4education
Arquiteturade Software em Times Ágeis
Sérgio Giraldo
Scrum Master/Arquiteto de Software no HSBC
sergiorgiraldo@outlook.com
@sergiorgiraldo
2.
Globalcode – Open4education
Arquiteturade Software
“The software architecture of a computing system
is the set of structure needed to reason about the
system, which comprise software elements,
relations among them, and properties of both.”
3.
Globalcode – Open4education
AgileManifesto,
Frameworks, Times
“Working software over comprehensive
documentation” {TOGAF, FEAF}
1 arquiteto de software X time auto-organizado
responsável pela arquitetura
Globalcode – Open4education
Arquiteturaevolutiva/Design
emergente
Em times ágeis, o design do software emerge das
entregas feitas iterativamente e é resultado das
decisões e intenções do time
O design pode ser separado em 2 partes:
arquitetura de software e detalhes
6.
Globalcode – Open4education
Dia1
Se o design emerge dia após dia, a arquitetura do
software deve ser pensada desde o primeiro dia do
seu sistema
Globalcode – Open4education
Arquiteturao suficiente
Você pode ter sucesso ou falhar
Você pode ignorar, aceitar ou implementar
arquitetura de software
Faça apenas o necessário para seu sistema
alcançar os objetivos
Globalcode – Open4education
Agilee arq. orientada por
risco
Cada iteração deve reavaliar se há riscos novos e
se as ações mitigatórias continuam suficientes
Backlog de estórias e riscos
15.
Globalcode – Open4education
Meusprojetos
Sprint 0: workshop de riscos
Reuniões quinzenais de 30 minutos com o time
apenas sobre arquitetura de software
Spikes!!!
16.
Globalcode – Open4education
3bullets
Pense na arquitetura de software desde o 1º dia
Use riscos para orientar a arquitetura
Acompanhe os riscos junto com seu backlog
#3 “A software architecture is an abstraction of the run-time elements of a software system during some phase of its operation. A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture.” FIELDING2
1: http://resources.sei.cmu.edu/asset_files/TechnicalReport/1996_005_001_16457.pdf
2: http://bit.ly/1fe7BXX