Você está na página 1de 61

[Agile] Scrum + XP

Agilidade eXtrema

Wagner Roberto dos Santos


Arquiteto Java EE / Scrum Master
wrsconsulting@gmail.com

1 Globalcode – open4education
Apresentaçã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
2 Globalcode – open4education
Agenda

3 Globalcode – open4education
O Ministério da Saúde Adverte
A APRESENTAÇÃO A SEGUIR PODE IR CONTRA
SEUS CONCEITOS DE GERENCIAMENTO DE
SOFTWARE E PODE CAUSAR MALES A SUA
SAÚDE.

4 Globalcode – open4education
Introdução: Evolução

VS

Métodos Tradicionais Métodos Iterativos

5 Globalcode – open4education
Métodos Tradicionais

Será que precisamos de tanta


documentação?

6 Globalcode – open4education
Métodos Tradicionais

64% é nunca ou raramente utilizado...


7 Globalcode – open4education
Métodos Tradicionais

• Custo de Mudanças

8 Globalcode – open4education
Métodos Tradicionais

• E a luta continua ...


• Índice de sucesso nos projetos

2009 Standish Chaos Report


9 Globalcode – open4education
Métodos Tradicionais

• Dinheiro jogado fora ....

10 Globalcode – open4education
Métodos Tradicionais

Mas por que os


projetos ainda
falham?

11 Globalcode – open4education
Sucesso nos projetos Ágeis

12 Globalcode – open4education
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.

13 Globalcode – open4education
Agile Development - SCRUM
• 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.

14 Globalcode – open4education
Metodologias Ágeis - SCRUM

• SCRUM

15 Globalcode – open4education
Agile Development - SCRUM

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

Product Owner É 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.
16 Globalcode – open4education
Agile Development - SCRUM

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

Scrum Master 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.
17 Globalcode – open4education
Agile Development - SCRUM

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

Scrum Team 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.
18 Globalcode – open4education
Comprometimento

19 Globalcode – open4education
Agile Development - SCRUM
Em um período de 30 dias, é
feito uma reunião que será
definido o Sprint Backlog, ou
seja, de acordo com os itens
Product de maior prioridade é criado o
O Product Owner é
Backlog Sprint Backlog que a equipe
responsável por compilar
terá a responsabilidade de
todas as requisições e A terminar até o próximo Sprint.
especificações no
documento chamado B Sprint
Product Backlog, essas
mudanças são referentes Backlog
C
ao produto, como novas
A
funções e correções de
D
bugs. As prioridades
devem ser feitas durante E C
a criação de cada tarefa. F
O Scrum Master faz diariamente o “Daily Scrum” que é uma
D
reunião com o Scrum Team cujo propósito é eliminar qualquer E
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 ?
Daily Scrum
20 3º Tem algo impedindo você de efetuar a sua tarefa ?Globalcode – open4education
Planejamento Ágil

• Múltiplos níveis de planejamento

21 Globalcode – open4education
Planejamento Ágil

• Visão Geral do Planejamento

22 Globalcode – open4education
Planejamento Ágil

• 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

23 Globalcode – open4education
Planejamento Ágil

• Tamanho da estimativa / Duração

Tamanho Cálculo Duração

300 pontos 300 / 20 =


Velocidade = 20
de estória 15 Iterações.

24 Globalcode – open4education
Planejamento Ágil

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


no Sprint ?
Resp: Cálculo de Velocidade
Cá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.

Ex:
Inicio do Após de 30 dias Final do
Sprint Sprint
Peso
A=6 Feito ! A=6

B=4 Feito ! B=4 Velocidade


atual = 18
Velocidade
C=8 Estimada = 26 Feito ! C=8

D=4 Feito Parcialmente! D=4


E=2 Feito Parcialmente! E=2
F=2 Não iniciado ! F=2

25 Globalcode – open4education
Planejamento Ágil

• 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á:

Recurso Disponibilidade
em dias
50 Dias de recurso
Marcelo 7 disponível para o Sprint.
Wagner 15
Eliel 13 Esta não é ainda nossa estimativa de
velocidade, a nossa unidade de estimativa
Trainee 15 são os pontos de estória, que no nosso caso
corresponde ao “dias de recurso ideal”.

26 Globalcode – open4education
Planejamento Ágil
• 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:
(Dias de Recurso Disponível) * (Fator Foco) = (Velocidade Estimada)
Fator Foco é uma estimativa de como o time esta focado no Projeto. Um fator foco baixo
Resultado
Inicio
significa que o time espera encontrar vários do
inconvenientes. A melhor maneira de determinar
Sprint
um Fator Foco concreto é analisando o ultimo Sprint, ou melhor, a média dos últimos Sprints.
Fator Foco do último Sprint: (Fator
A =Foco)
6 = (Velocidade Atual)______
(Dias de Recurso Disponível)
B = 4de todas as estórias que foram finalizadas no
Velocidade atual é a soma da estimativa inicial
Sprint anterior. Por exemplo, no ultimo Sprint complemos 18 pontos em um time de 3 pessoas,
trabalhando por 3 semanas para um total de C 45
= 8Dias de Recurso. Vamos calcular
20 Pontos o novo Sprint
de estória
baseado nestes dados, para complicar imagine que chegou mais um recursono
incluídos (Trainee),
Sprint que
totalizando
Nãodá 50 Dias
entram D=4
no de Recurso com treinamentos, feriados, etc...
Sprint senão E=2
Fator Foco do último Sprint Velocidade Estimada do Sprint
‘ estoura os pontos
(50 FDias
(40%) = (18 Pontos de estória)______ = 2 de Recurso) * (40%) = (20 Pontos estória)
(45 Dias de Recurso)
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.
27 Globalcode – open4education
Agile Development - SCRUM
•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.
** Estas informações serão as mesmas do Product •Observação: Outras informações...
Backlog que podem ser armazenadas em arquivo Excel.
28 Globalcode – open4education
Agile Development - SCRUM

• 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:
Ou poderiamos quebrar a estória em estórias menores
Consulta de
Clientes
Consulta de
Escrever Clientes
Detalhar Desenhar
caso de
Requisito tela
teste

Integrar
Implantar Adicionar / Editar Consulta de
testes,
DAO de Clientes Clientes
refactoring,
clientes
debug

29 Globalcode – open4education
Agile Development - SCRUM

• 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 Sprint
atravé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.

30 Globalcode – open4education
Agile Development - SCRUM
Cuidado ! É preciso Atenção ! Aqui eu posso
• Indicadores remover alguns itens de incluir alguns itens de
backlog do Sprint, senão backlog no Sprint.
teremos atrasos.

31 Globalcode – open4education
Agile Development - SCRUM

• Quadro de Acompanhamento
Atividades que Atividades que Atividades Objetivo do
ninguém está estão sendo finalizadas. Sprint.
trabalhando. trabalhadas.
Itens de
Gráfico Burndown
maior
prioridade atualizado
diariamente após o
Daily Scrum.

Estórias que entrarão em


Primeiro as atividades
próximos Sprints, ou
amarelas devem
ser finalizadas. como novos itens no
Para depois o Sprint se couber no
item de backlog tempo.
branco ir para Done.

Itens de menor Itens fora de escopo


prioridade devem ser incluídos aqui.
32 Globalcode – open4education
Retrospectiva

• Retrospectiva
1º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.

33 Exemplo de um quadro de sugestões /Globalcode


análise. – open4education
O que é XP?

34 Globalcode – open4education
O que é XP?

• Uma filosofia de desenvolvimento de Software


fundamentada em 4 valores:

– Comunicação
– Feedback
– Simplicidade
– Coragem

35 Globalcode – open4education
Valores, Princípios e Práticas

36 Globalcode – open4education
Valores

• Comunicação

37 Globalcode – open4education
Valores

• Simplicidade

– Busque por soluções simples

38 Globalcode – open4education
Valores

Feedback

39 Globalcode – open4education
Valores

Coragem
•Refactor quando
Necessário.
•Desenvolver sem
uma arquitetura definida

Sem o 3 anteriores
leva ao CAOS.

40 Globalcode – open4education
Princípios

•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

41 Globalcode – open4education
Práticas
• Primárias e Corolários

42 Globalcode – open4education
Práticas

• 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.

43 Globalcode – open4education
Ciclo de Vida no XP

44 Globalcode – open4education
Práticas

• Pequenos Releases • Código Compartilhado


• Jogo do Planejamento • Padronização de
• Refactoring Código
• Testing (TDD) • Design Simples
• Pair Programming • Metáfora
• Baby Steps • Integração Contínua
• Cliente ao lado

45 Globalcode – open4education
Práticas Primárias

• Estórias

46 Globalcode – open4education
Práticas Primárias

• Cliente escreve suas estórias.

47 Globalcode – open4education
Práticas Primárias

• Estimativas Ágeis – Planning Poker

48 Globalcode – open4education
Práticas Primárias

• Priorização

49 Globalcode – open4education
Práticas Primárias

• Quadro de Stories

50 Globalcode – open4education
Práticas Primárias

• Tarefas visuais

51 Globalcode – open4education
Práticas Primárias

• Programação em Pares

52 Globalcode – open4education
Como iniciar? Baby Steps

• Desenvolvimento
Incremental (TDD)

• Feedbacks do que esta


sendo feito.

53 Globalcode – open4education
Práticas Primárias

• Test First Programming


– Teste antes ....

54 Globalcode – open4education
Práticas Primárias

55 Globalcode – open4education
Outras Práticas

• Envolvimento real do • Slack


cliente • Build de Dez Minutos
• Deployment Incremental • Ciclo Semanal
• Continuidade do Time • Sente o time
• Times Pequenos • Time Completo
• Análise da Causa Raiz • Área de Trabalho
• Codificar e Testar Informativa
• Deployment Diário • Contrato de Escopo
Negociável
56 Globalcode – open4education
Combinando as Duas
Processo no SCRUM

Scrum promove práticas de GERENCIAMENTO.

57 Globalcode – open4education
Combinando as Duas
Processo no XP

XP promove práticas de
GERENCIAMENTO + ENGENHARIA.
58 Globalcode – open4education
Combinando as Duas
Processo combinado

59 Globalcode – open4education
Dúvidas

60 Globalcode – open4education
That´s All Folks !!!

Obrigado !!!
Email: wrsconsulting@gmail.com
Blog: http://netfeijao.blogspot.com/
Twitter: http://twitter.com/wrsantos
61 Globalcode – open4education