Arquitetura Ágil, uma abordagem disciplinada

29
Arquitetura Ágil, uma abordagem disciplinada Adriano Tavares [email protected] BH, 19 de outubro, 2013

Transcript of Arquitetura Ágil, uma abordagem disciplinada

Page 1: Arquitetura Ágil, uma abordagem disciplinada

Arquitetura  Ágil,    uma  abordagem  disciplinada  

Adriano  Tavares  [email protected]  BH,  19  de  outubro,  2013  

Page 2: Arquitetura Ágil, uma abordagem disciplinada

Adriano  Tavares    

DAD  Black  Belt/CerCfied  Instructor  

hGp://DisciplinedAgileConsorCum.org  

SoKware  Architect,  Agile  Coach  [email protected]  hGp://adrianotavares.com  @adrianotavares  hGp://br.linkedin.com/in/adrianotavares        

Page 3: Arquitetura Ágil, uma abordagem disciplinada

MoCvação  

ü Apresentar  uma  abordagem  disciplinada  de  como  o  responsável  pela  arquitetura  pode  atuar  no  ciclo  de  vida  de  desenvolvimento  ágil.    

Page 4: Arquitetura Ágil, uma abordagem disciplinada

Publico  alvo  

ü Desenvolvedores,  líderes  técnicos  e  arquitetos  envolvidos  em  aCvidades  de  design  de  soluções  técnicas  de  soKware  e  miCgação  de  riscos  técnicos  ao  longo  de  um  projeto  ágil  desde  seu  início  até  a  sua  colocação  em  produção.  

Page 5: Arquitetura Ágil, uma abordagem disciplinada

©  ScoG  Ambler  +  Associates   5  

Page 6: Arquitetura Ágil, uma abordagem disciplinada

5  Mitos  comuns  que  cercam  a  Arquitetura  Ágil  

1.  Agilistas  não  “fazem  arquitetura”  2.  Agilistas  iniciam  direto  na  codificação  3.  Agilistas  não  seguem  estratégias  de  

arquitetura  corporaCva  4.  Agilistas  não  modelam  5.  Agilistas  não  documentam  

Page 7: Arquitetura Ágil, uma abordagem disciplinada

5  Realidades  sobre  Arquitetura  Ágil  

1.  Arquitetura  é  tão  importante  que  agilistas  a  endereçam  ao  longo  de  todo  o  ciclo  de  vida  

2.  Agilistas  disciplinados  investem  em  visualização  inicial    (Just  enough  up  front)  

3.  Agilistas  disciplinados  trabalham  em  estreita  colaboração  com  profissionais  corporaCvos  

4.  Agilistas  disciplinados  modelam  explicitamente    de  uma  forma  leve  ao  longo  de  todo  o  ciclo  de  vida  

5.  Agilistas  disciplinados  documentam  entregáveis  conCnuamente  

Page 8: Arquitetura Ágil, uma abordagem disciplinada

ACvidades  na  Iniciação  de  Projetos  

65%   70%   75%   80%   85%   90%   95%  

Cronograma  Alto-­‐nível  do  release    

JusCficar  o  Projeto  

Modelagem  Inicial  da  Arquitetura  

Modelagem  Inicial  dos  Requisitos  

EsCmaCva  Inicial  

Source:  AmbysoK  2009  Agile  Project  IniCaCon  Survey  

Page 9: Arquitetura Ágil, uma abordagem disciplinada
Page 10: Arquitetura Ágil, uma abordagem disciplinada

Contextos  para  adaptação  da  agilidade  em  escala  

Agile  

Disciplined  Agile  

Delivery  

Agility  at  

Scale  

•  Foco  na  construção  •  Ciclo  de  vida  dirigido  por  valor  •  Times  alto-­‐organizados  (<15)  •  PrescriCvo  (Scrum,  XP,  AM)  •  Aderência  a  Times  de  projeto  

•  Foco  na  entrega  (Delivery)  •  Ciclo  de  vida  dirigido  por  Risco-­‐Valor  •  Auto-­‐organização  com  governança  apropriada  (>15<30)  •  Dirigido  por  metas  •  Aderência  CorporaCva  

Disciplined  agile  delivery  com  um  ou  mais  fatores  de  complexidade:  §  Times  grandes  (>30)  §  Times  geograficamente  distribuídos  §  Compliance  regulatórios  (PM,  EA,  SP)  §  Complexidade  de  domínio  ou  técnica  §  Questões  culturais/organizacionais  §  Distribuição  organizacional  

The Agile Scaling Model (ASM), é um framework conceitual desenvolvido pela IBM  

Page 11: Arquitetura Ágil, uma abordagem disciplinada

Disciplined  Agile  Delivery  (DAD)  Disciplined  Agile  Delivery  (DAD)  é  um  framework  de  processo  de  decisão  

 As  principais  caracterísCcas  de  DAD:  

ü Abordagem  ágil  hibrida;  ü Pessoas-­‐primeiro;  ü Ciclo  de  vida  de  entrega  completo;  ü Dirigido  por  metas;  ü Focado  em  soluções  de  TI;  ü Ciclo  de  vida  Risco-­‐valor;  ü Aderência  CorporaCva;  ü Escalável.  

Page 12: Arquitetura Ágil, uma abordagem disciplinada

Scrum  

Lean  

Kanban  

DAD  é  uma  abordagem  ágil  híbrida  

OpenUP   Agile  Modeling  

Agile  Data  XP  Outside  In  Dev.  

DevOps  

…  e  mais  

DAD  uCliza  estratégias  comprovadas  de  várias  fontes  fornecendo  uma  estrutura  de  decisão  para  orientar  a  sua  adoção  e    

customização  de  uma  maneira  dirigida  pelo  contexto.  

Page 13: Arquitetura Ágil, uma abordagem disciplinada

Pessoas-­‐primeiro:  Papéis  em  Cmes  DAD  

Page 14: Arquitetura Ágil, uma abordagem disciplinada

Ciclo  de  vida  DAD  básico  

Page 15: Arquitetura Ágil, uma abordagem disciplinada

Quem  é  o  responsável  pela  arquitetura  em  Cmes  ágeis?  

Page 16: Arquitetura Ágil, uma abordagem disciplinada

O  Que  faz  o  Architecture  Owner?  ü Orienta  a  criação  e  evolução  da  arquitetura  da  solução;  ü  Lidera  o  esforço  inicial  de  visualização  da  arquitetura;  ü  Lidera  a  equipe  nas  questões  e  práCcas  de  arquitetura;  ü  Entende  as  diretrizes  e  os  padrões  de  arquitetura  da  sua  

organização  e  garante  que  a  equipe  os  segue;  ü Garante  que  o  sistema  vai  funcionar,  incenCvando  o  

desenho  e  refatoração  apropriado;  ü Garante  que  o  sistema  seja  integrado  e  testado  

frequentemente;  ü  Tem  a  palavra  final  sobre  as  decisões  técnicas,  mas  não  

as  dita.  

Page 17: Arquitetura Ágil, uma abordagem disciplinada

Times  pequenos  (<15)  

• Architecture  Owner  geralmente  é  assumido  pelo  Team  Lead.  

• Não  há  necessidade  de  atribuir  o  papel  formalmente.  

• Baixa  necessidade  de  trabalhar  o  escopo  e  a  arquitetura  na  iniciação.  

• Baixa  necessidade  de  automação  de  ferramentas.  

Page 18: Arquitetura Ágil, uma abordagem disciplinada

Times  Médios  (>15<30)    

•  Necessidade  de  maior  esforço  de  planejamento  durante  a  iniciação.  •  Reuniões  Diárias  com  cada  Cme  e  reuniões  de  coordenação  dos  Cmes.  •  Necessidade  de  apoio.  

Page 19: Arquitetura Ágil, uma abordagem disciplinada

Times  Grandes  (>30)  Sugestões  de  organização  de  sub-­‐Cmes:    •  Features    

Time  que  trabalha  em  uma  feature  fim-­‐a-­‐fim.  

•  Componentes:    Time  focado  em  compoenentes  específicos.  

•  Integração    Time  focado  na  integração  das  features  e  componentes.  

 

Necessidade  de:    •  Coordenação  de  gerenciamento  de  projetos.  •  Coordenação  de  requisitos.  •  Coordenação  da  Arquitetura.  

Page 20: Arquitetura Ágil, uma abordagem disciplinada

Arquitetura  Ágil  em  Times  Grandes  •  Times  grandes  são  sinônimo  de  maior  complexidade  de  domínio,  complexidade  

técnica  ou  desafios  culturais    •  Iniciação:  

–  InvesCr  um  pouco  mais  de  tempo  nos  requisitos  iniciais;  –  Abordagem  “API  First”  para  a  arquitetura  onde  você  define  a  interface  para  

componentes  no  início  do  projeto;  –  É  provável  que  haja  um  pouco  mais  de  especificação  inicial.  

•  Construção:  –  Product  Owners  terão  de  coordenar  as  dependências  de  requisitos;  –  Architecture  Owners  terão  de  coordenar  as  dependências  técnicas;  –  TDD  pode  precisar  ser  melhorado  com  testes  independentes  em  paralelo.  

Page 21: Arquitetura Ágil, uma abordagem disciplinada
Page 22: Arquitetura Ágil, uma abordagem disciplinada

DAD  é  dirigido  por  metas  

Page 23: Arquitetura Ágil, uma abordagem disciplinada

Agilistas  Disciplinados  adotam  uma  abordagem  dirigida  por  metas  

Meta   Questões  Vantagens  Desvantagens  Considerações  

*   Opção  Opção  Default  

*  

     

IdenCficar  a  estratégia  técnica  

inicial  

Nível  de  detalhe  Tipos  de  visões  Estratégia  de  Modelagem  Estratégia  de  Entrega    

Informal  Modeling  Sessions  Formal  Modeling  Sessions  Single  Candidate  Architecture  MulCple  Candidate  Architectures  

Page 24: Arquitetura Ágil, uma abordagem disciplinada

Meta:  IdenCficar  a  estratégia  técnica  inicial  

Page 25: Arquitetura Ágil, uma abordagem disciplinada

Meta:  Provar  a  Arquitetura  o  mais  cedo  possível    

Page 26: Arquitetura Ágil, uma abordagem disciplinada

Arquitetura  ao  longo  da  construção  

MiCgação  de  riscos  mais  cedo  provando  que  a    arquitetura  funciona  

Architecture  owner  facilita  as  decisões  arquiteturais    ao  longo  da  construção  

DAS  e  modelos    são  atualizados  quando  necessário  

Architecture  spikes  para  explorar  as  questões  técnicas  

Visão  Arquitetural  guia  os  esforços  de  desenvolvimento  

Page 27: Arquitetura Ágil, uma abordagem disciplinada

Conclusão  

ü Formalize  o  papel  de  Architecture  Owner  quando  seu  Cme  crescer;  

ü Adote  uma  abordagem  de  arquitetura  colaboraCva;  

ü Adote  metas  para  guiar  o  trabalho  de  arquitetura;  •  IdenCficar  a  estratégia  inicial  •  Provar  a  arquitetura  o  mais  cedo  possível  

ü Emergent  Design  é  uma  abordagem  consistente  para  Arquitetura  Ágil  Disciplinada.  

Page 28: Arquitetura Ágil, uma abordagem disciplinada

Disciplined  Agile  CerCficaCon  DisciplinedAgileConsorCum.org  

Disciplined  Agile  Yellow  Belt    –  IndicaCon  that  the  person  is  new  to  disciplined  agile  but  eager  to  

learn  –  Beginner  cerCficaCon  

Disciplined  Agile  Green  Belt  –  IndicaCon  that  the  person  is  striving  to  be  a  professional  –  PotenCal  to  be  a  junior  coach  –  Intermediate  cerCficaCon  

Disciplined  Agile  Black  Belt  –  IndicaCon  that  the  person  is  an  expert  –  OKen  a  senior  coach,  instructor,  or  agile  transformaCon  lead  –  Expert  cerCficaCon  

Page 29: Arquitetura Ágil, uma abordagem disciplinada

CerCfied  Disciplined  Agile  Courses  DisciplinedAgileConsorCum.org  

Introductory:  DA  101:  The  Disciplined  Agile  Delivery  Experience  Workshop  (21  PDUs)  DA  103:  Disciplined  Agile  Delivery  for  ExecuCves  (7  PDUs)  DA  104:  IntroducCon  to  Disciplined  Agile  Delivery  (14  PDUs)    Advanced:  DA  203:  Agile  Architecture  with  Discipline  (7  PDUs)  DA  210:  Disciplined  Agile  Delivery  for  Experienced  Agile  Professionals  (7  PDUs)  DA  301:  Advanced  Disciplined  Agile  Delivery  (7  PDUs)  DA  305:  Disciplined  Agile  Delivery  +  Advisor  Coaches  Clinic  (21  PDUs)