61
Globalcode – open4education 1 [Agile] Scrum + XP Agilidade eXtrema Wagner Roberto dos Santos Arquiteto Java EE / Scrum Master [email protected]

Scrum + XP na prática

Embed Size (px)

DESCRIPTION

Nesta apresentação será apresentado os conceitos por trás das metologias ágeis até culminar no surgimento do manifesto ágil. Vamos abordar os fundamentos do Gerenciamento Ágil de projetos com Scrum e analisar como é feito o planejamento e a estimativa de projetos dentro de um contexto ágil. E vamos abordar os príncipios, valores e práticas do Extreme Programming, conforme apresentado por Kent Beck no livro Extreme Programming Embrace Change, e demonstrar como Scrum e XP se relacionam, e como trabalhar em conjunto com as duas dentro de um contexto prático.

Citation preview

Page 1: Scrum + XP na prática

Globalcode – open4education1

[Agile] Scrum + XPAgilidade eXtrema

Wagner Roberto dos SantosArquiteto Java EE / Scrum Master

[email protected]

Page 2: Scrum + XP na prática

Globalcode – open4education2

ApresentaApresentaççãoão

• Arquiteto Java EE / Scrum Master• Lead Editor da Queue Arquitetura do Portal InfoQ Brasil

(http://infoq.com/br).

• Participação nos projetos de tradução e teste do NetBeans.• Palestrante de eventos como Just Java, Sun Tech Days,

Campus Party.• Premiações em competições de tecnologia .

• Autor de vários artigos para a revista Mundo Java• Participação em diversos projetos Open Source.

• Certificações: SCJA, SCJP, SCSNI, SCJWSD, SCBCD, SCEA(I), CSM.

• Mantém o blog http://netfeijao.blogspot.com

Page 3: Scrum + XP na prática

Globalcode – open4education3

AgendaAgenda

Page 4: Scrum + XP na prática

Globalcode – open4education4

O MinistO Ministéério da Sario da Saúúde Advertede Adverte

A APRESENTAÇÃO A SEGUIR PODE IR CONTRA SEUS CONCEITOS DE GERENCIAMENTO DE SOFTWARE E PODE CAUSAR MALES A SUA SAÚDE.

Page 5: Scrum + XP na prática

Globalcode – open4education5

IntroduIntroduçção: Evoluão: Evoluççãoão

VS

Métodos Tradicionais Métodos Iterativos

Page 6: Scrum + XP na prática

Globalcode – open4education6

MMéétodos Tradicionaistodos Tradicionais

Será que precisamos de tanta documentação?

Page 7: Scrum + XP na prática

Globalcode – open4education7

MMéétodos Tradicionaistodos Tradicionais

64% é nunca ou raramente utilizado...

Page 8: Scrum + XP na prática

Globalcode – open4education8

MMéétodos Tradicionaistodos Tradicionais

• Custo de Mudanças

Page 9: Scrum + XP na prática

Globalcode – open4education9

MMéétodos Tradicionaistodos Tradicionais

• E a luta continua ...

• Índice de sucesso nos projetos

2009 Standish Chaos Report

Page 10: Scrum + XP na prática

Globalcode – open4education10

MMéétodos Tradicionaistodos Tradicionais

• Dinheiro jogado fora ....

Page 11: Scrum + XP na prática

Globalcode – open4education11

MMéétodos Tradicionaistodos Tradicionais

Mas por que os projetos ainda

falham?

Page 12: Scrum + XP na prática

Globalcode – open4education12

Sucesso nos projetos Sucesso nos projetos ÁÁgeisgeis

Page 13: Scrum + XP na prática

Globalcode – open4education13

Manifesto Manifesto ÁÁgilgil

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 14: Scrum + XP na prática

Globalcode – open4education14

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• O que é SCRUM ?

SCRUM é uma metodologia (ou Framework de acordo com o criador Ken Schwaber) onde a espinha dorsal é que chamamos de Sprint. Que nada mais é do uma lista de objetivos ou requisitos bem definidos cujo time de desenvolvimento irá trabalhar focado em um período de 30 dias.

Page 15: Scrum + XP na prática

Globalcode – open4education15

Metodologias Metodologias ÁÁgeis geis -- SCRUMSCRUM

• SCRUM

Page 16: Scrum + XP na prática

Globalcode – open4education16

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Papéis no SCRUM

Product Owner

No Scrum existem 3 papéis que devem estar bem definidos, que são:

É o “cliente” focal, responsável por reunir todas as mudanças planejadas para o produto e priorizar as funcionalidades possíveis. Administra o Backlog do Produto e assegura que o Scrum Team esta trabalhando com as tarefas certas na perspectiva do negócio.

Page 17: Scrum + XP na prática

Globalcode – open4education17

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Papéis no SCRUM

Scrum Master

No Scrum existem 3 papéis que devem estar bem definidos, que são:

O Scrum Master lidera o time de desenvolvimento, resolve possíveis impedimentos e trabalha para assegurar que o time possui a ferramentas e condições necessárias para alcançar os objetivos estabelecidos pelo Sprint. Realiza reuniões diárias “Daily Scrum”com o Scrum Team para o acompanhamento das atividades.

Page 18: Scrum + XP na prática

Globalcode – open4education18

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Papéis no SCRUM

Scrum Team

No Scrum existem 3 papéis que devem estar bem definidos, que são:

São os membros que formam o time de desenvolvedores, designers, consiste de 5 a 9 pessoas. Interagem com o Product Owner para determinar o objetivo do Sprint e priorizar as funcionalidades, e quebrar o Sprint em tarefas detalhadas. O time é auto organizável e tem a responsabilidade conjunta pelos resultados.

Page 19: Scrum + XP na prática

Globalcode – open4education19

ComprometimentoComprometimento

Page 20: Scrum + XP na prática

Globalcode – open4education20

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

A

B

C

DEF

ProductBacklog

O Product Owner éresponsável por compilar todas as requisições e especificações no documento chamado Product Backlog, essas mudanças são referentes ao produto, como novas funções e correções de bugs. As prioridades devem ser feitas durante a criação de cada tarefa.

A

C

D

E

SprintBacklog

Em um período de 30 dias, éfeito uma reunião que serádefinido o Sprint Backlog , ou seja, de acordo com os itens de maior prioridade é criado o Sprint Backlog que a equipe terá a responsabilidade de terminar até o próximo Sprint.

O Scrum Master faz diariamente o “Daily Scrum ” que é uma reunião com o Scrum Team cujo propósito é eliminar qualquer impedimento. Cada integrante deve responder a 3 perguntas:

1º O que você fez desde a ultima reunião ? 2º O que você vai fazer entre esse e a próxima reunião ? 3º Tem algo impedindo você de efetuar a sua tarefa ? Daily Scrum

Page 21: Scrum + XP na prática

Globalcode – open4education21

Planejamento Planejamento ÁÁgilgil

• Múltiplos níveis de planejamento

Page 22: Scrum + XP na prática

Globalcode – open4education22

Planejamento Planejamento ÁÁgilgil

• Visão Geral do Planejamento

Page 23: Scrum + XP na prática

Globalcode – open4education23

Planejamento Planejamento ÁÁgilgil

• Release, Iteração e Velocidade

• Uma release comprime múltiplas iterações.

• Cada iteração pode ter o mesmo tamanho.

• Estórias são incluídas em cada box até que esteja completa.

• O tamanho do box édado pela velocidade planejada

Page 24: Scrum + XP na prática

Globalcode – open4education24

Planejamento Planejamento ÁÁgilgil

• Tamanho da estimativa / Duração

Tamanho Cálculo Duração

300 pontos de estória

Velocidade = 20300 / 20 =

15 Iterações.

Page 25: Scrum + XP na prática

Globalcode – open4education25

• Qual é o critério para decidir a história que será incluída no Sprint ?

Ex:

A = 6

B = 4

C = 8

D = 4E = 2F = 2

Inicio do Sprint

Velocidade Estimada = 26

PesoA = 6

B = 4

C = 8

D = 4E = 2F = 2

Final do Sprint

Feito !

Feito !

Feito !

Feito Parcialmente!

Feito Parcialmente!

Não iniciado !

Velocidade atual = 18

Resp : Cálculo de VelocidadeCálculo de Velocidade é uma medida em cima do “total do trabalho feito”, onde cada item recebe um peso de acordo com a sua estimativa inicial.

Após de 30 dias

Planejamento Ágil

Page 26: Scrum + XP na prática

Globalcode – open4education26

• Como estimar a velocidade ?Resp: A maneira mais simples de estimar a velocidade é verificar o histórico do time.

Qual foi a velocidade do time nos últimos Sprints ? Então assumir que a velocidade será a mesma para o último Sprint, mas isso só funciona se o time já tive feito alguns Sprints antes.

Outra maneira de calcular é através de cálculo de recurso. Por exemplo, vamos assumir que estamos planejando um Sprint de 3 semanas (15 dias) com um time de 4 pessoas. Eliel ficará dois dias de folga, Zanatto apenas 50%, colocando tudo isso no papel ficará:

13Eliel

15Trainee

15Wagner

7Marcelo

Disponibilidade em dias

Recurso

50 Dias de recurso disponível para o Sprint.

Esta não é ainda nossa estimativa de velocidade, a nossa unidade de estimativa são os pontos de estória, que no nosso caso corresponde ao “dias de recurso ideal”.

Planejamento Planejamento ÁÁgilgil

Page 27: Scrum + XP na prática

Globalcode – open4education27

• Estimamos que a velocidade estimada será menor que 50. Mas quanto menos ? Utilizamos o termo “Fator Foco” para isso:

Fórmula para velocidade estimada do Sprint:

Fator Foco é uma estimativa de como o time esta focado no Projeto. Um fator foco baixo significa que o time espera encontrar vários inconvenientes. A melhor maneira de determinar um Fator Foco concreto é analisando o ultimo Sprint, ou melhor, a média dos últimos Sprints.

Fator Foco do último Sprint:

Velocidade atual é a soma da estimativa inicial de todas as estórias que foram finalizadas no Sprint anterior. Por exemplo, no ultimo Sprint complemos 18 pontos em um time de 3 pessoas, trabalhando por 3 semanas para um total de 45 Dias de Recurso. Vamos calcular o novo Sprintbaseado nestes dados, para complicar imagine que chegou mais um recurso (Trainee), que totalizando dá 50 Dias de Recurso com treinamentos, feriados, etc...

(Dias de Recurso Disponível) * (Fator Foco) = (Velo cidade Estimada) �

(Fator Foco) = (Velocidade Atual) ______(Dias de Recurso Disponível) �

Fator Foco do último Sprint(40%) = (18 Pontos de estória) ______

(45 Dias de Recurso) �

Velocidade Estimada do Sprint(50 Dias de Recurso) * (40%) = (20 Pontos estória) �

Desta maneira a velocidade estimada para o próximo Sprint é de 20 pontos de estória. Isso significa que o time deve adicionar estórias para o Sprint até o mesmo chegar perto de 20 pontos.

A = 6

B = 4

C = 8

D = 4E = 2F = 2

Inicio do Sprint

20 Pontos de estória incluídos no Sprint

Não entram no Sprint senão estoura os pontos

Resultado

Planejamento Planejamento ÁÁgilgil

Page 28: Scrum + XP na prática

Globalcode – open4education28

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

•Index Cards: O que são ?Scrum propõe uma maneira muito mais ágil de expor os problemas que serão discutidos que são os Index Cards. Na verdade para cada item do backlog é criado um cartão e estes cartões são expostos em um mural.

EX: Os cartões deverão conter as seguintes informações **:

•ID: Identificador único

•Nome : Descrição curta da estória.

•Importância : Grau de importância da estória. Ex: 10–50. Alto: Mais importante.

•Estimativa inicial : Estimativa do time de quanto trabalho é preciso, a medida é feita por pontos de estória que corresponde a “Dias de Recurso” .

•Demonstração :Uma descrição de alto nível de como será feito a demo do Sprint.

•Observação : Outras informações...** Estas informações serão as mesmas do ProductBacklog que podem ser armazenadas em arquivo Excel.

Page 29: Scrum + XP na prática

Globalcode – open4education29

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Quebrando estórias em tarefas:A diferença entre estórias e tarefas, é que estórias são as funções que o Product

Owner solicitou e que espera que elas sejam entregues.

Desmembramos as estórias em tarefas unitárias de modo a distribuir as atividades do desenvolvimento da estória para toda a equipe.

Ex:

Consulta de Clientes

DetalharRequisito

Escrever caso de

teste

Desenhartela

Integrar testes,

refactoring,debug

ImplantarDAO declientes

Ou poderiamos quebrar a estória em estórias menores

Consulta de Clientes

Adicionar / EditarClientes

Consulta deClientes

Page 30: Scrum + XP na prática

Globalcode – open4education30

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Gráfico Burndown de acompanhamento diário.

Na linha vertical, colocamos a quantidade de pontos de estória, que é a quantidade de trabalho que deve ser feito para este Sprintatravés do cálculo de velocidade por atividade, é a velocidade estimada de todo o Sprint. Na linha horizontal, marcamos o primeiro dia do Sprint, nor exemplo 1º de Augusto, e esperamos terminar este Sprint no dia 19 de Junho, a linha tracejada indica a estimativa de trabalho. A linha azul indica o trabalho realizado, no exemplo o gráfico nos mostra que no dia 16 ainda temos aproximadamente 15 pontos de estória de trabalho para fazer. O gráfico é atualizado diariamente durante o Daily Scrum.

Page 31: Scrum + XP na prática

Globalcode – open4education31

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• IndicadoresCuidado ! É preciso

remover alguns itens de backlog do Sprint, senão

teremos atrasos.

Atenção ! Aqui eu posso incluir alguns itens de

backlog no Sprint.

Page 32: Scrum + XP na prática

Globalcode – open4education32

Itens de menor prioridade

Itens de maior

prioridade

AgileAgile DevelopmentDevelopment -- SCRUMSCRUM

• Quadro de AcompanhamentoAtividades que ninguém estátrabalhando.

Atividades que estão sendo trabalhadas.

Atividades finalizadas.

Objetivo do Sprint.

Gráfico Burndownatualizado

diariamente após o Daily Scrum.

Estórias que entrarão em próximos Sprints, ou como novos itens no Sprint se couber no

tempo.

Itens fora de escopo devem ser incluídos aqui.

Primeiro as atividades amarelas devem ser finalizadas.Para depois o

item de backlogbranco ir para Done .

Page 33: Scrum + XP na prática

Globalcode – open4education33

RetrospectivaRetrospectiva

• Retrospectiva1ºO que foi bom durante o Sprint: Se tivéssemos que fazer outra Sprint, faríamos da mesma maneira.

2ºPoderíamos fazer melhor : Se tivéssemos que fazer outro Sprint, faríamos de maneira diferente..

3º Ações/Melhorias: Idéias concretas que poderíamos implementar no futuro.

Exemplo de um quadro de sugestões / análise.

Page 34: Scrum + XP na prática

Globalcode – open4education34

O que O que éé XP?XP?

Page 35: Scrum + XP na prática

Globalcode – open4education35

O que O que éé XP?XP?

• Uma filosofia de desenvolvimento de Software fundamentada em 4 valores:

– Comunicação– Feedback– Simplicidade– Coragem

Page 36: Scrum + XP na prática

Globalcode – open4education36

Valores, PrincValores, Princíípios e Prpios e Prááticasticas

Page 37: Scrum + XP na prática

Globalcode – open4education37

ValoresValores

• Comunicação

Page 38: Scrum + XP na prática

Globalcode – open4education38

ValoresValores

• Simplicidade

– Busque por soluções simples

Page 39: Scrum + XP na prática

Globalcode – open4education39

ValoresValores

Feedback

Page 40: Scrum + XP na prática

Globalcode – open4education40

Valores

Coragem•Refactor quando Necessário.•Desenvolver semuma arquitetura definida

Sem o 3 anteriores leva ao CAOS.

Page 41: Scrum + XP na prática

Globalcode – open4education41

PrincPrincíípiospios

•Feedback Rápido

•Mudança Incremental

•Abraçar Mudança (Embrace Change)�

•Qualidade do trabalho

•Simplicidade Assumida

•Outros•Humanitário, Benefício Mútuo, Oportunidade, Falha, Baby Steps

Page 42: Scrum + XP na prática

Globalcode – open4education42

PrPrááticasticas

• Primárias e Corolários

Page 43: Scrum + XP na prática

Globalcode – open4education43

PrPrááticasticas

• Primárias

• São práticas úteis que podem ser aplicadas independente do que você esteja fazendo.

• Cada uma delas, dá um retorno de melhoria imediato.

• Podem ser iniciadas em qualquer ordem.

Page 44: Scrum + XP na prática

Globalcode – open4education44

Ciclo de Vida no XPCiclo de Vida no XP

Page 45: Scrum + XP na prática

Globalcode – open4education45

PrPrááticasticas

• Pequenos Releases• Jogo do Planejamento• Refactoring• Testing (TDD)• Pair Programming• Baby Steps

• Código Compartilhado• Padronização de

Código• Design Simples• Metáfora• Integração Contínua• Cliente ao lado

Page 46: Scrum + XP na prática

Globalcode – open4education46

PrPrááticas Primticas Primááriasrias

• Estórias

Page 47: Scrum + XP na prática

Globalcode – open4education47

PrPrááticas Primticas Primááriasrias

• Cliente escreve suas estórias.

Page 48: Scrum + XP na prática

Globalcode – open4education48

PrPrááticas Primticas Primááriasrias

• Estimativas Ágeis – Planning Poker

Page 49: Scrum + XP na prática

Globalcode – open4education49

PrPrááticas Primticas Primááriasrias

• Priorização

Page 50: Scrum + XP na prática

Globalcode – open4education50

PrPrááticas Primticas Primááriasrias

• Quadro de Stories

Page 51: Scrum + XP na prática

Globalcode – open4education51

PrPrááticas Primticas Primááriasrias

• Tarefas visuais

Page 52: Scrum + XP na prática

Globalcode – open4education52

PrPrááticas Primticas Primááriasrias

• Programação em Pares

Page 53: Scrum + XP na prática

Globalcode – open4education53

Como iniciar? Baby Como iniciar? Baby StepsSteps

• Desenvolvimento Incremental (TDD) �

• Feedbacks do que esta sendo feito.

Page 54: Scrum + XP na prática

Globalcode – open4education54

PrPrááticas Primticas Primááriasrias

• Test First Programming– Teste antes ....

Page 55: Scrum + XP na prática

Globalcode – open4education55

PrPrááticas Primticas Primááriasrias

Page 56: Scrum + XP na prática

Globalcode – open4education56

Outras PrOutras Prááticasticas

• Envolvimento real do cliente

• Deployment Incremental• Continuidade do Time• Times Pequenos• Análise da Causa Raiz• Codificar e Testar• Deployment Diário

• Slack• Build de Dez Minutos• Ciclo Semanal• Sente o time• Time Completo• Área de Trabalho

Informativa• Contrato de Escopo

Negociável

Page 57: Scrum + XP na prática

Globalcode – open4education57

Combinando as DuasCombinando as Duas

Scrum promove práticas de GERENCIAMENTO.

Processo no SCRUM

Page 58: Scrum + XP na prática

Globalcode – open4education58

Combinando as DuasCombinando as Duas

XP promove práticas de GERENCIAMENTO + ENGENHARIA.

Processo no XP

Page 59: Scrum + XP na prática

Globalcode – open4education59

Combinando as DuasCombinando as Duas

Processo combinado

Page 60: Scrum + XP na prática

Globalcode – open4education60

DDúúvidasvidas

Page 61: Scrum + XP na prática

Globalcode – open4education61

Obrigado !!!Email: [email protected]: http://netfeijao.blogspot.com/Twitter: http://twitter.com/wrsantos

ThatThat´́ss AllAll FolksFolks !!!!!!