Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA...

26
Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010

Transcript of Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA...

Page 1: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Desenvolvimento ágil:

eXtreme Programming vs SCRUM

Tiago Rodrigues de MelloCCO-230 – ENGENHARIA DE SOFTWARE / 2010

Page 2: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Agenda

Desenvolvimento Ágil de Software eXtreme Programming SCRUM Comparações Conclusão

Page 3: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Manifesto Ágil

Indivíduos e interação entre eles mais que processos e ferramentas;

Software em funcionamento mais que documentação abrangente;

Colaboração com o cliente mais que negociação de contratos;

Responder a mudanças mais que seguir um plano.

Page 4: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

eXtreme Programming - XP

Método de desenvolvimento de software; Conjunto de valores, princípios e práticas; Ciclo de desenvolvimento curtos e releases

frequentes; Permite respostas rápidas a mudanças de

requisitos em qualquer etapa do desenvolvimento; Enfatiza o trabalho em equipe que se auto-

organiza em que todos são iguais num trabalho colaborativo.

Page 5: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP - Valores

Simplicidade; Comunicação; Feedbacks; Coragem; Respeito.

Page 6: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP: Simplicidade

Não tente prever o futuro! Comece por soluções simples e que funcionem. Melhorias são adicionadas depois.

Page 7: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP: Comunicação

Todos são parte do time, inclusive o cliente! Contato diário e face a face. Pair programming.

Page 8: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP: Feedbacks

Testes: Unitários; Integração.

Cliente: Testes funcionais.

Membros do time: Quando um novo requisito chega o time estima

quanto tempo será necessário.

Page 9: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP: Coragem

Não deixe para amanha o que pode ser feito agora!

Não ficou bom?! Refaça o quanto necessário! Se não precisa, jogue fora!

Page 10: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP: Respeito

Ninguém modifica o código no repositório sem testar antes;

Todos buscam a melhor solução, o melhor design para poupar retrabalhos futuros;

Todos os valores anteriores são respeitados; Pessoas são valorizadas e ninguém é ignorado.

Page 11: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP - Práticas

Process – On-site customer (cliente no local), testing (testes), small releases (versões pequenas), planning game (planejamento do jogo)

Programming – Simple design (projeto simples), testing (testes), refactoring(reconstrução), coding standars(código padrão) ;

Team – Collective ownership (código coletivo), continuous integration (integração continua), metaphor (metáfora), pair programming (programação em par), small releases (versões pequenas) ;

Page 12: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

SCRUM

Framework iterativo e incremental para desenvolvimento ágil de sofware;

Não há prática de engenharia pré-definida; Conjunto de práticas e papéis predefinidos; Sprints (iterações);

Page 13: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

SCRUM

Page 14: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

SCRUM: Planejamento, Product Backlog

Product Backlog é criado; Data de entrega do produto final é definida; Componentes do sistema são priorizados; Custo e riscos são estimados; Cliente participa.

Page 15: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

SCRUM: Sprints

Ciclo iterativo de desenvolvimento; 1 a 4 semanas de duração (o time define); Um subconjunto do Product Backlog é

selecionado para fazer parte do Sprint atual (Sprint Backlog) ;

Durante o sprint, nenhuma funcionalidade deve ser adicionada; no entanto as existentes no Sprint Backlog podem ser atualizadas ou alteradas.

Page 16: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

SCRUM: Papéis

Dono do produto (Product Owner); ScrumMaster; Equipe.

Page 17: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Dono do Produto

Define as funcionalidades do produto e as prioriza;

Responsável pela visão de negócios do projeto; Aceita ou rejeita resultados dos trabalhos; Cliente + Analista de Requisitos.

Page 18: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

ScrumMaster

Facilitador: responsável por remover obstáculos do time e assegurar que as práticas estão sendo executadas corretamente;

Escudo contra interferências externas.

Page 19: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Time

Reponsável pela entrega de soluções; Desenvolvedores de software, analista de testes,

designers entre outros; Trabalha de forma auto-gerenciada.

Page 20: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Reuniões

Sprint Planning 1 → Product Backlog (Todos participam);

Sprint Planning 2 (Cliente não participa) → Sprint Backlog;

Daily Scrum (Time + ScrumMaster) Sprint Review/Reflection (30 dias).

Page 21: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Daily Scrum

Reunião curta (15 min); ScrumMaster é o responsável e pergunta a cada

membro do time: O que fez ontem? O que fará hoje? Existe algum obstáculo?

Page 22: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP vs SCRUM

Semelhanças: Ambos não prevêem o futuro (não definem todos

os requisitos já de início); Ambos produzem software que funcionam a cada

iteração; Comunicação é essencial (Reuniões diárias).

Page 23: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

XP vs SCRUM

Diferenças: SCRUM tem papéis pré-definidos; XP a validação do software é feita a todo instante

(Testes); SCRUM somente ao final de cada Sprint; XP adota a programação em par como prática

fundamental; XP é um método e SCRUM é um

FRAMEWORK?!

Page 24: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Conclusão

Ambas abordagens procuram resolver limitações dos métodos tradicionais de desenvolvimento ;

Reduzir custos com mudanças de requisitos ao longo do desenvolvimento;

Reduzir tempo de entrega do produto final ao cliente.

Embora SCRUM seja mais abrangente; ambas dependem de uma avaliação do contexto para serem utilizadas.

Page 25: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Referências

Extreme Programming Explained: Embrace Change, Kent Beck;

http://www.extremeprogramming.org/; Wikipedia; http://improveit.com.br.

Page 26: Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.

Dúvidas e discussões