A maior rede de estudos do Brasil

Grátis
27 pág.
[05] EngSW - Métodos Ágeis - XP v1 6

Pré-visualização | Página 1 de 3

1
Teoria de Engenharia de 
Software
Aula 5
Metodologias Ágeis - XP
Prof. Rafael Targino
rtargino@unicarioca.edu.br
2
Conteúdo da Aula
• Metodologias Ágeis
– Motivação
– Manifesto Ágil
– Princípios Ágeis
• Extreme Programming (XP)
– Valores
– Práticas
Engenharia de Software
2
3
Casos Comuns em Projetos
Cliente não presente 
e não explica direito 
suas necessidades
Equipe culpa o 
cliente por não 
conseguir entregar
Patrocinador do 
projeto exige que o 
projeto entre em 
produção
4
Alguns outros problemas no 
desenvolvimento de projetos...
• Escopo do projeto muda com frequência...
• O prazo não é cumprido...
• Equipe do projeto desmotivada...
• Equipe do projeto com baixa produtividade...
• Orçamento estourado..
• Cliente não satisfeito...
3
Planejamento x Realidade
6
Mas Mudanças no Projeto Sempre 
Ocorrem
• Usuários tem baixa percepção do problema no início 
do projeto
• Nossa capacidade de planejar mais do que 2 ou 3 
meses do projeto é muito limitada
– Frequentes estouros de prazos e orçamentos...
• O negócio muda muito rápido
• As equipe não sabem a melhor maneira de 
executar o projeto no início
4
7
Manifesto Ágil
• No início dos anos 2000, um grupo de 17 
profissionais veteranos da ares de 
desenvolvimento de software decidiram se 
reunir em uma estação de esqui nos EUA, 
para discutir novas formas de melhorar o 
desempenho de seus projetos
Manifesto Ágil
Indivíduos e Iterações entre eles mais do que 
processos e ferramentas 
(Pessoas)
Software em funcionamento mais do que 
documentação abrangente 
(Valor)
Colaboração com o cliente mais do que negociação 
de contratos 
(Confiança)
Responder a mudança mais que seguir um Plano
(Complexidade)
5
9
Métodos Ágeis
AnarquiaGovernança
Ordem Complexidade Caos
Métodos Ágeis
10
Concepção do Ágil
Á g i l ≠ R á p i d o
Á g i l = A d a p t a t i v o
6
11
• Quando o cliente aprende com o produto 
que está sendo entregue e reavalia as suas 
necessidades, gerando feedback para a 
equipe do projeto.
• É o mecanismo fundamental que permite 
que o cliente conduza o desenvolvimento do 
projeto diariamente.
• Garante que a equipe direcione as 
suas atenções para aquilo 
que irá gerar mais valor.
A Importância do Feedback
12
Abordagem Iterativa
Ciclos Iterativos e Incrementais
Versão 1
Versão 2
Versão 3
tempo
abrangência 
Feedback
Feedback
Feedback
Aprendizado
7
13
Visibilidade do Progresso do Projeto
• Os clientes e demais partes interessadas vem o 
progresso do projeto – incrementos do produto 
– a cada final de iteração, ou seja, em 
semanas.
Engenharia de Software
• Estabelece um senso de 
progresso do projeto
• Constrói a confiança entre o 
cliente e a equipe de 
desenvolvimento
Redução do Desperdício
• Produzir apenas o que é necessário e 
suficiente
– Produzir apenas o que os usuários irão utilizar
– Planejar apenas com o nível de detalhe possível
– Utilizar apenas os artefatos necessários e suficientes
Engenharia de Software
8
15
Iterações e Releases
• Os métodos Ágeis estão centrados nas 
utilizações de Iterações e Releases
Engenharia de Software
16
Exemplo de uma Iteração de 1 
Semana
Engenharia de Software
Definição com o cliente
Desenvolvimento
Teste
Avaliação pelo cliente
Validação parcial com o cliente
9
17
Conteúdo da Aula
• Metodologias Ágeis
– Motivação
– Manifesto Ágil
– Princípios Ágeis
• Extreme Programming (XP)
– Valores
– Práticas
Engenharia de Software
18
Extreme Programming (XP)
• Principal Criador: Kent Beck 
• Projeto C3 (Chrysler Comprehensive 
Compensation System) obteve sucesso com 
uso de XP
– Sistema Ficou pronto bem antes do tempo 
estimado
–O projeto C3 teve diversos problemas 
antes de XP
• Metodologias Ágeis passaram a se destacar
• Composta de 4 valores e 12 práticas
Engenharia de Software
10
19
Práticas do XP
1. Jogo do Planejamento
2. Cliente Presente
3. Reuniões de Pé (Stand Up Meeting)
4. Programação por Pares
5. Desenvolvimento guiado pelos Testes
6. Refatoração
7. Código Coletivo
8. Código Padronizado
9. Design Simples
10.Ritmo Sustentável
11.Integração Contínua
12.Releases Curtos
Engenharia de Software
20
Prática 1 - O jogo do planejamento
• Planejamento da Release: geralmente de 2 a 
3 meses. Uma release possui diversas 
iterações curtas (1 a 3 semanas). 
– 1ª Etapa: Histórias dos Usuários
– 2ª Etapa: Estimativas
– 3ª Etapa: Priorização de Histórias e definição do 
conteúdo da Iteração
– 4ª Etapa: Avaliação da Iteração
11
21
1º Etapa: Histórias de Usuários
• Presença constante do cliente.
• Histórias dos usuários em torno dos 
requisitos.
• História definida a partir de um pedaço de 
negócio que possa ser testada, executada e 
entregue.
• Divisão de histórias em tarefas caso 
necessário.
Engenharia de Software
22
Requisitos dos Usuários são 
definidos em Histórias
• Cartões de Histórias dos Usuários
Como um <tipo_de_usuário>, eu gostaria de 
<funcionalidade> para <benefício>
Engenharia de Software
12
23
Quadro de Histórias
Engenharia de Software
24
Épico: Histórias de mais alto nível
Engenharia de Software
13
25
2º Etapa: Estimativas
• Os programadores estimam qual o 
esforço gasto para implementar cada 
estória. 
–Story Points - baseadas em pontos 
–Dias ideais
• Técnicas para atingir um consenso
–Planning Poker
Engenharia de Software
26
Estimativas baseadas em pontos –
Story Points
• Pontos indicam a “grandeza” de uma história 
a ser implementada
• Técnica baseada em comparação com outras 
histórias
• Define as histórias mais simples como 1 
ponto
• Vai comparando as histórias uma com as 
outras. As demais histórias são derivadas a 
partir das mais simples
• Não possui unidade. São apenas “pontos”.
Engenharia de Software
14
Exercício: Zoo Points
• Determinar os “zoo points” para os seguintes animais
Engenharia de Software
Urso Girafa Gorila Hipopótamo
Canguru Leão Tigre Rinoceronte
28
Estimativas baseadas em Dias Ideais
• 1 ponto = dia de trabalho ideal
• Dia de trabalho ideal
–Tudo funciona bem
–Você não tem nenhuma interrupção
–Tudo o que você precisa está disponível
• Analogia: partida de futebol ideal
– A bola nunca sai na lateral e no escanteio
– Não há faltas (e nem o tempo perdido com elas)
– Ao sair um gol, a bola é imediatamente 
reposicionada no jogo (sem comemorações...)
– Padrão Fifa de bola rolando: 60 mintos
Engenharia de Software
15
29
Planning Poker
• Abordagem interativa de estimativas para 
ajudar um time a chegar a um consenso.
– Cada membro possui um conjunto de cartas 
com as estimativas válidas
• Sequência de Fibonacci: 1, 2, 3, 5, 8, 13, 20
–A equipe joga cartas com quantos pontos 
cada um estima para determinada 
história. 
–As pessoas que indicaram os menores e 
maiores valores explicam o motivo da 
decisão
–Uma nova rodada de cartas é jogada
Engenharia de Software
30
Planning Poker - Exemplo
Engenharia de Software
Equipe Rodada 1 Rodada 2
João 3 5
Maria 8 5
José 2 5
Carlos 5 8
Usando o exercício anterior 
do Zoo Points, estime 
utilizando a técnica de 
Planning Poker o tamanho 
de uma baleia
Planning Poker – Exercício
16
31
3º Etapa: Priorização do Cliente e 
Definição do conteúdo da Iteração
• O cliente atribui as prioridades para as 
histórias.
• Em uma iteração várias histórias são 
implementadas.
• As histórias mais prioritárias