1metodos Ageis
1metodos Ageis
1metodos Ageis
2
• Métodos ágeis (AM) é uma coleção de
metodologias baseada na prática para
modelagem efetiva de sistemas baseados em
software. É uma filosofia onde muitas
metodologias se encaixam.
• As metodologias ágeis aplicam uma coleção
de práticas, guiadas por princípios e valores
que podem ser aplicados por profissionais
de software no dia a dia.
3
O que são os Modelos Ágeis?
4
O que é (e não é) métodos ágeis?
5
O que é (e não é) métodos ágeis? (cont.)
6
SCRUM
Processo de Desenvolvimento de Software
7
• Scrum é um processo para construir
software incrementalmente em ambientes
complexos, onde os requisitos não são
claros ou mudam com muita freqüência.
8
• Em Rugby, Scrum é um time de oito
integrantes que trabalham em conjunto para
levar a bola adiante no campo. Ou seja:
times trabalhando como uma unidade
altamente integrada com cada membro
desempenhando um papel bem definido e o
time inteiro focando num único objetivo.
9
• O objetivo do Scrum é fornecer um
processo conveniente para projetos e
desenvolvimento orientado a objetos.
• A metodologia é baseada em princípios
semelhantes aos de XP: equipes pequenas,
requisitos pouco estáveis ou desconhecidos,
e iterações curtas para promover
visibilidade para o desenvolvimento.
10
• No entanto, as dimensões em Scrum diferem de
XP.
• Scrum divide o desenvolvimento em Sprints de
30 dias. Equipes pequenas, de até 7 pessoas, são
formadas por projetistas, programadores,
engenheiros e gerentes de qualidade. Estas equipes
trabalham em cima de funcionalidade (os
requisitos, em outras palavras) definidas no início
de cada Sprint. A equipe toda é responsável pelo
desenvolvimento desta funcionalidade
11
• Todo dia, é feita uma reunião de 15 minutos
onde o time expões à gerência o que será
feito no próximo dia, e nestas reuniões os
gerentes podem levantar os fatores de
impedimento, e o progresso geral do
desenvolvimento.
12
Fases – Sprint
Reuniões Diárias
• Todos respondem às perguntas:
– O que você realizou desde a última reunião?
– Quais problemas você enfrentou?
– Em que você trabalhará até a próxima reunião?
• Benefícios:
– Maior integração entre os membros da equipe
– Rápida solução de problemas
• Promovem o compartilhamento de conhecimento
– Progresso medido continuamente
• Minimização de riscos
13
•Scrum é interessante porque fornece um
mecanismo de informação de status que é
atualizado continuamente, e porque utiliza a
divisão de tarefas dentro da equipe de forma
explicita.
Scrum e XP são complementares pois Scrum
provê práticas ágeis de gerenciamento
enquanto XP provê práticas integradas de
engenharia de software.
14
Fases
• Planejamento
Reunião diária
• Sprints do Scrum 24h
– Ciclos
• Encerramento
Acúmulo de 30 dias
tarefas pela equipe
Sprint Backlog
Nova demonstração
Levantamento de de funcionalidade
prioridades do produto
15
Fases de encerramento
• Atividades:
– Testes de integração
– Testes de sistema
– Documentação do usuário
– Preparação de material de treinamento
– Preparação de material de marketing
16
Qualidade, Gerenciamento e Testes
➢ Passos e papéis bem definidos
17
Crystal
Processo de Desenvolvimento de Software
18
• Crystal/Clear faz parte, na realidade,
de um conjunto de metodologias criado
por Cockburn. As premissas
apresentadas para a existência deste
conjunto são:
19
• Todo projeto tem necessidades,
convenções e uma metodologia
diferentes.
• O funcionamento do projeto é
influenciado por fatores humanos, e há
melhora neste quando os indivíduos
produzem melhor.
• Comunicação melhor e lançamentos
freqüentes reduzem a necessidade de
construir produtos intermediários do
processo
20
• Crystal/Clear é uma metodologia
direcionada a projetos pequenos,
com equipes de até 6
desenvolvedores. Assim como com
SCRUM, os membros da equipe
tem especialidades distintas. Existe
uma forte ênfase na comunicação
entre os membros do grupo.
Existem outras metodologias
Crystal para grupos maiores.
21
• Toda a especificação e projeto são
feitos informalmente, utilizando
quadros publicamente visíveis. Os
requisitos são elaborados utilizando
casos de uso, um conceito similar às
estórias de usuário em XP, onde
são enunciados os requisitos como
tarefas e um processo para sua
execução.
22
• As entregas das novas versões de
software são feitos em incrementos
regulares de um mês, e existem
alguns subprodutos do processo
que são responsabilidade de
membros específicos do projeto.
23
• Grande parte da metodologia é
pouco definida, e segundo o autor,
isto é proposital; a idéia de
Crystal/Clear é permitir que cada
organização implemente as
atividades que lhe parecem
adequadas, fornecendo um mínimo
de suporte útil do ponto de vista de
comunicação e documentos
24
A família Crystal de Métodos
25
Feature Driven Development
Desenvolvimento orientado a
funcionalidades
26
FDD - Características
27
FDD - Processos
➢ O FDD consiste de 5 processos principais:
28
FDD – Processos (Cont.)
29
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)
✓ Especialísta do domínio (Domain experts)
✓ Gerente do domínio (Domain manager)
30
FDD - Cargos e Responsabilidades (Cont.)
➢ 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)
31
FDD - Boas Práticas
32
FDD - Boas Práticas (Cont.)
33
Dynamic Systems
Development Method (DSDM)
Método dinâmico de
desenvolvimento de sistemas
➢ Progenitor do XP
➢ Arcabouço para desenvolvimento rápido de aplicações
(RAD)
➢ Fixa tempo e recursos ajustando a quantia de funcio-
nalidades
➢ Pequenas equipes
➢ Suporta mudanças nos requisitos durante o ciclo de vida
35
DSDM - Fases
➢ O DSDM consiste de 5 fases:
Feasibility
Review Study
Funcional
Model Implementation
Iteration
Design
And Build
Iteration
36
DSDM – Fases (Cont.)
37
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)
38
DSDM - Práticas
39
Adaptive Software Development
Desenvolvimento
Adaptável de Software
40
ASD - Características
➢Iterativo e incremental
➢Sistemas grandes e complexos
➢Arcabouço para evitar o caos
➢Cliente sempre presente
➢Desenvolvimento de aplicações em conjunto
(Joint Application development – JAD)
41
ASD - Fases
➢ O ASD possui ciclos de 3 fases:
42
ASD – Fases (Cont.)
➢ Especular (Speculate)
✓ Fixa prazos e objetivos
✓ Define um plano baseado em componentes
➢ Colaborar (Collaborate)
✓ Construção concorrente de vários componentes
➢ Aprender (Learn)
✓ 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
43
ASD - Propriedades
44
ASD – Propriedades (Cont.)
➢ Prazos pré-fixados (Time-boxed)
✓ Força os participantes do projeto a definir severamente
decisões do projeto logo cedo.
➢ 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
45
ASD - Cargos e Responsabilidades
❑ Este método não descreve cargos em detalhes
➢ Executivo responsável (Executive Sponsor)
❑ Participantes de uma sessão (workshop) do desenvolvimento de
aplicações em conjunto (JAD)
➢ Facilitador (Facilitator)
✓Liderar e planejar as sessões
➢ Escriba (Scribe)
➢ Efetuar anotações
➢ Cliente (Customer)
✓Sempre presente
➢ Gerente de Projetos (Project Manager)
➢ Desenvolvedores (Developers)
46
Outras Metodologias Ágeis
➢ Extreme Programming
➢ Rational Unified Process (RUP)
✓ Considerado uma metodologia ágil por alguns autores
➢ Open Source Software Development
➢ Agile Modeling
➢ Pragmatic Programming
47
Links Relacionados
• http://www.agilemanifesto.org/
• http://www.dcc.unicamp.br/~ra022247/Arquivos/scrum.pdf
• http://www.poli.usp.br/pro/procsoft/tproepusp04.pdf
• http://alistair.cockburn.us/crystal
• http://www.featuredrivendevelopment.com/
• http://www.dsdm.org/
• http://www.adaptivesd.com/
• http://www.rspa.com/spi/process-agile.html
• http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf
48