![Page 1: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/1.jpg)
Metodologias Ágeis
Sabrina Schürhaus
![Page 2: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/2.jpg)
"Manifesto Para o Desenvolvimento Ágil de Software"
reunião entre 17 gurus da comunidade de desenvolvimento
Realizada entre os dias 11 e 13 de fevereiro de 2001
Estação de esqui nas montanhas deUtah, Estados Unidos.
![Page 3: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/3.jpg)
Manifesto Ágil (Princípios)
• Indivíduos e interações => mais importantes que processos e ferramentas.
• Software funcionando => mais importante do que documentação completa e detalhada.
• Colaboração com o cliente => mais importante do que negociação de contratos.
• Adaptação a mudanças => mais importante do que seguir o plano inicial.
• Evento ocorrido em 2001
WebSite: http://www.agilemanifesto.org
![Page 4: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/4.jpg)
Metodologias ágeis(agile software development ecosystems - ASDEs)
XP (eXtreme Programming) DSDM ( Dynamic Systems Development Method) Família Crystal ASD (Adaptive Software Development) SCRUM FDD (Feature-driven development) LD ( Lean Development ) Open Source
Obs: Todos os seus autores com exceção do autor de LD e OpenSource participaram do Manifesto Ágil e portanto possuem princípios em comum.
![Page 5: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/5.jpg)
XP (eXtreme Programming)
![Page 6: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/6.jpg)
XP (eXtreme Programming)
Projeto C3 (Chrysler) - Kent Beck, Ward Cunningham and Ron Jeffries (1996) http://www.xprogramming.org
Valores: Comunicação Simplicidade Feedback Coragem
12 Práticas: Pair Programnig, Refactoring, Simple Design, Test-driven
development Collective Ownership, Coding Standard, Continuous
Integration, Sustainable Pace Customer tests, Whole Team, Planning Game, Small
Releases, Metaphor
![Page 7: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/7.jpg)
DSDM (Dynamic Systems Development Method)
Método Dinâmico de Desenvolvimento de Sistemas
![Page 8: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/8.jpg)
DSDM (Dynamic Systems Development Method) Método Dinâmico de Desenvolvimento de Sistemas
Proprietária do consórcio DSDM (Reino Unido, 1994) http://www.dsdm.org/
Ciclo: Estudo de viabilidade Estudo do negócio (workshops) 3 ciclos em paralelo, entrelaçados
• Ciclo do modelo funcional -> análise e protótipos• Ciclo de design e build -> engenharia do produto • Ciclo de implementação -> implantação operacional
Princípios: Iterações fixas (2-6 semanas) Releases freqüentes Qualidade total Adaptabilidade a mudanças de requisitos
![Page 9: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/9.jpg)
DSDM
• Progenitor do XP• Framework para desenvolvimento rápido
de aplicações (RAD)• Fixa tempo e recursos ajustando a
quantia de funcionalidades• Pequenas equipes• Suporta mudanças nos requisitos durante
o ciclo de vida
![Page 10: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/10.jpg)
DSDMO DSDM consiste de 5 fases:
Funcional Model
Iteration
Feasibility
Review Study
DesignAnd BuildIteration
Implementation
![Page 11: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/11.jpg)
DSDM - Cargos e Responsabilidades
Desenvolvedores (Developers) Desenvolvedores Sêniores (Senior Developers) Coordenador Técnico (Technical Coordinator Usuário Embaixador (Ambassador User) Usuário Consultor (Adviser User) Visionário (Visionary) Executivo responsável (Executive Sponsor) Especialísta do domínio (Domain experts) Gerente do domínio (Domain manager)
![Page 12: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/12.jpg)
DSDM -
Usuário sempre envolvido Equipe do DSDM autorizada a tomar decisões Foco na freqüente entrega de produtos Adaptação ao negócio é o critério para entregas
“Construa o produto certo antes de você construí-lo corretamente”
Desenvolvimento iterativo e incremental Mudanças são reversíveis utilizando pequenas iterações Requisitos são acompanhados em alto nível Testes integrados ao ciclo de vida
![Page 13: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/13.jpg)
Crystal
![Page 14: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/14.jpg)
Família Crystal/Clear
Alistair Cockburn (IBM – anos 90) http://alistair.cockburn.us/
Cada projeto uma metodologia. 4 parâmetros determinam o método de desenvolvimento:
• Tamanho da equipe• Localização geográfica• Criticalidade/Segurança• Recursos
A recomendação de quais os artefatos, papéis e ciclo de desenvolvimento de um projeto é parametrizada.
O processo é revisado no fim de cada iteração.
![Page 15: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/15.jpg)
Crystal/Clear
Na verdade é um conjunto de metodologias
Voltada para projetos pequenos (até 6 desenvolvedores)
Especificação e projeto são feitos informalmente usando quadros publicamente visíveis.
A metodologia e propositalmente pouco definida. Para permitir que cada ONG implemente as atividades que lhes pareçam mais adequadas. Fornecendo um mínimo de suporte útil a documentação e comunicação.
![Page 16: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/16.jpg)
ASD (Adaptive Software Development)Desenvolvimento Adaptável de Software
![Page 17: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/17.jpg)
ASD (Adaptive Software Development)Desenvolvimento Adaptável de Software
Jim Highsmith (1997) http://www.adaptivesd.com/
Sistemas complexos => Resultados imprevisíveis Ciclo: Colaboração EspeculaçãoAprendizado Abordagem:
Do it wrong the first time: erre cedo, corrija cedo, não potencialize mal-entendidos.
Good enough quality: melhor compromisso entre dimensões de qualidade (extrínseca e intrínseca) para os recursos disponíveis.
Mecânica: RAD (rapid application development), sessões JAD (joint application development) com o cliente.
![Page 18: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/18.jpg)
ASD
Ciclos de 3 fases
![Page 19: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/19.jpg)
ASD
Iterativo e incremental Sistemas grandes e complexos Framework para evitar o caos Cliente sempre presente:
Desenvolvimento de aplicações em conjunto (Joint Application development – JAD)
![Page 20: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/20.jpg)
ASD
Especular Fixa prazos e objetivos Define um plano baseado em componentes
Colaborar Construção concorrente de vários componentes
Aprender Repetitivas revisões de qualidade e foco na demostranção das
funcionalidades desenvolvidas (Learning loop) Presença do cliente e especialistas do domínio
Os ciclos duram de 4 a 8 semanas
![Page 21: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/21.jpg)
ASD
Orientado a missões Atividades são justificadas através de uma missão, que pode mudar ao
longo do projeto Baseado em componentes
Construir o sistema em pequenos pedaços Iterativo
Desenvolvimento em cascata (Waterfall) só funciona em ambientes bem definidos e compreendidos.
foco em refazer do que fazer corretamente já na primeira vez.
Prazos pré-fixados
Tolerância a mudanças (Change-tolerant) As mudanças são freqüentes É sempre melhor estar pronto a adaptá-las do que controlá-las Constante avaliação de quais componentes podem mudar
Orientado a riscos (Risk driver) Itens de alto risco são desenvolvidos primeiro
![Page 22: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/22.jpg)
SCRUM
![Page 23: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/23.jpg)
SCRUM
Jeff Sutherland, Ken Schwaber (1993) http://www.controlchaos.com/
Sprints de 30 dias Estabilizar requisitos em cada iteração
Scrum (reunião de status) diária (15 min) Guia o desenvolvimento daquele dia
Foco em gerência e tracking Pode ser combinado com métodos mais prescritivos (ex:
XP@scrum)
![Page 24: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/24.jpg)
![Page 25: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/25.jpg)
XP X SCRUM
SCRUM com princípios semelhantes ao XP:• Equipes pequenas
• Requisitos instáveis ou desconhecidos
• Iterações curtas para prover visibilidade ao desenvolvimento.
SCRUM com dimensões diferentes de XP:• Scrum divide o desenvolvimento em sprints de 30 dias e reuniões diárias de
15 minutos.
• As equipes são formadas por pessoas com competências diferentes: projetistas, programadores, engenheiros e gerentes de qualidade.
• Scrum possui um mecanismo de informação de status atualizado continuamente e a divisão de tarefas é explícita.
SCRUM e XP são complementares pois Scrum prove práticas de gerenciamento enquanto que XP prove práticas integradas de
engenharia de SW.
![Page 26: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/26.jpg)
FDD(Feature-driven development) Desenvolvimento Orientado a Funcionalidades
![Page 27: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/27.jpg)
FDD(Feature-driven development) Desenvolvimento Orientado a Funcionalidades
Jeff DeLuca, Peter Coad http://thecoadletter.com/download/fddguide/
5 processos: 1- Modelo geral (arquitetura) 2 -Lista de funcionalidades:
• Levanta requisitos para todo o projeto 3 – Planejamento por funcionalidades:
• Define escopo de cada iteração (quais funcionalidades)• Forma times para desenvolver cada funcionalidade.
(A cada iteração):• 4 – Projeto por Funcionalidades• 5 - Construção por Funcionalidades
![Page 28: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/28.jpg)
O FDD consiste de 5 processos principais:
![Page 29: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/29.jpg)
FDD- Cargos e Responsabilidades
Principais• Gerente de projeto (Project Manager)• Arquiteto líder (Chief architect)• Gerente de desenvolvimento (Development Manager)• Programador líder (Chief programmer)• Proprietário de classe (Class owner)• Especialista do domínio (Domain experts)• Gerente do domínio (Domain manager)
De apoio• Gerente de versão (Release manager)• Guru de linguagem (Language lawyer/language guru)• Engenheiro de construção (Build engineer)• “Ferramenteiro” (Toolsmith)• Administrador de sistemas (System Administrator)
Adicionais• Testadores (Testers)• Instaladores (Deployers)• Escritores técnicos (Technical writes)
![Page 30: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/30.jpg)
FDD – Boas Práticas
Modelagem de objetos de domínio Exploração e explicação do problema do domínio Resulta em um framework
Desenvolver por funcionalidade Desenvolvimento e acompanhamento do progresso através de da lista de
funcionalidades. Proprietários de classes individuais
Cada classe possui um único desenvolvedor responsável Equipe de funcionalidades
Formação de equipes pequenas e dinâmicas. Inspeção (Inspection) Uso dos melhores métodos conhecidos de detecção de erros.
Releases freqüentes Garantir que existe um sistema sempre disponível e demonstrável.
Administração de Configuração Habilita acompanhamento do histórico do código-fonte.
![Page 31: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/31.jpg)
LD ( Lean Development )
![Page 32: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/32.jpg)
LD ( Lean Development )
Mary Poppendieck (2000) http://www.poppendieck.com/
Focado na identificação de gargalos no processo de desenvolvimento de software Metáfora (boa) de fábrica Empresta idéias de
• Qualidade Total, (Deming, anos 50)• Lean Production (Japão, anos 50)• Teoria de Sistemas Dinâmicos (MIT, anos 60)• Lean Construction (adaptabilidade na construção civil,
anos 90)
![Page 33: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/33.jpg)
Open Source
Richard Stallman (anos 80), Linus Torvalds (anos 90) http://www.opensource.org/ Inicialmente, para software básico
Maintainer: Orienta o desenvolvimento Decide o quê vai entrar no software “oficial”
Catedral X Bazar Catedral: releases pouco freqüentes,
desenvolvimento centralizado (GNU, BSD) Bazar: releases freqüentes, desenvolvimento mais
espalhado (Linux kernel, apache.org)
![Page 34: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/34.jpg)
O futuro das metodologias ágeis
% de empresas com mais da metade dos projetos definidos como ágeis
• 2001: 21%• 2002: 34%• 2003 (previsão): 50%
Metodologias ágeis mais usadas • XP: 38%• FDD (Feature-Driven Development): 23%• ASD (Adaptive Software Development): 22%• DSDM: 19%
Complexidade dos projetos é similar (rigorosas X ágeis), ágeis trabalham com prazos similares, mas equipes muito menores.
http://www.cutter.com/freestuff/apmupdate.pdf
![Page 35: Metodologias Ágeis Sabrina Schürhaus. "Manifesto Para o Desenvolvimento Ágil de Software" reunião entre 17 gurus da comunidade de desenvolvimento Realizada](https://reader035.vdocuments.mx/reader035/viewer/2022062307/552fc10d497959413d8c4a2d/html5/thumbnails/35.jpg)