Upload
wagnersantos
View
4.832
Download
2
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
Globalcode – open4education1
[Agile] Scrum + XPAgilidade eXtrema
Wagner Roberto dos SantosArquiteto Java EE / Scrum Master
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
Globalcode – open4education3
AgendaAgenda
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.
Globalcode – open4education5
IntroduIntroduçção: Evoluão: Evoluççãoão
VS
Métodos Tradicionais Métodos Iterativos
Globalcode – open4education6
MMéétodos Tradicionaistodos Tradicionais
Será que precisamos de tanta documentação?
Globalcode – open4education7
MMéétodos Tradicionaistodos Tradicionais
64% é nunca ou raramente utilizado...
Globalcode – open4education8
MMéétodos Tradicionaistodos Tradicionais
• Custo de Mudanças
Globalcode – open4education9
MMéétodos Tradicionaistodos Tradicionais
• E a luta continua ...
• Índice de sucesso nos projetos
2009 Standish Chaos Report
Globalcode – open4education10
MMéétodos Tradicionaistodos Tradicionais
• Dinheiro jogado fora ....
Globalcode – open4education11
MMéétodos Tradicionaistodos Tradicionais
Mas por que os projetos ainda
falham?
Globalcode – open4education12
Sucesso nos projetos Sucesso nos projetos ÁÁgeisgeis
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.
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.
Globalcode – open4education15
Metodologias Metodologias ÁÁgeis geis -- SCRUMSCRUM
• SCRUM
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.
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.
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.
Globalcode – open4education19
ComprometimentoComprometimento
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
Globalcode – open4education21
Planejamento Planejamento ÁÁgilgil
• Múltiplos níveis de planejamento
Globalcode – open4education22
Planejamento Planejamento ÁÁgilgil
• Visão Geral do Planejamento
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
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.
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
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
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
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.
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
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.
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.
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 .
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.
Globalcode – open4education34
O que O que éé XP?XP?
Globalcode – open4education35
O que O que éé XP?XP?
• Uma filosofia de desenvolvimento de Software fundamentada em 4 valores:
– Comunicação– Feedback– Simplicidade– Coragem
Globalcode – open4education36
Valores, PrincValores, Princíípios e Prpios e Prááticasticas
Globalcode – open4education37
ValoresValores
• Comunicação
Globalcode – open4education38
ValoresValores
• Simplicidade
– Busque por soluções simples
Globalcode – open4education39
ValoresValores
Feedback
Globalcode – open4education40
Valores
Coragem•Refactor quando Necessário.•Desenvolver semuma arquitetura definida
Sem o 3 anteriores leva ao CAOS.
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
Globalcode – open4education42
PrPrááticasticas
• Primárias e Corolários
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.
Globalcode – open4education44
Ciclo de Vida no XPCiclo de Vida no XP
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
Globalcode – open4education46
PrPrááticas Primticas Primááriasrias
• Estórias
Globalcode – open4education47
PrPrááticas Primticas Primááriasrias
• Cliente escreve suas estórias.
Globalcode – open4education48
PrPrááticas Primticas Primááriasrias
• Estimativas Ágeis – Planning Poker
Globalcode – open4education49
PrPrááticas Primticas Primááriasrias
• Priorização
Globalcode – open4education50
PrPrááticas Primticas Primááriasrias
• Quadro de Stories
Globalcode – open4education51
PrPrááticas Primticas Primááriasrias
• Tarefas visuais
Globalcode – open4education52
PrPrááticas Primticas Primááriasrias
• Programação em Pares
Globalcode – open4education53
Como iniciar? Baby Como iniciar? Baby StepsSteps
• Desenvolvimento Incremental (TDD) �
• Feedbacks do que esta sendo feito.
Globalcode – open4education54
PrPrááticas Primticas Primááriasrias
• Test First Programming– Teste antes ....
Globalcode – open4education55
PrPrááticas Primticas Primááriasrias
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
Globalcode – open4education57
Combinando as DuasCombinando as Duas
Scrum promove práticas de GERENCIAMENTO.
Processo no SCRUM
Globalcode – open4education58
Combinando as DuasCombinando as Duas
XP promove práticas de GERENCIAMENTO + ENGENHARIA.
Processo no XP
Globalcode – open4education59
Combinando as DuasCombinando as Duas
Processo combinado
Globalcode – open4education60
DDúúvidasvidas
Globalcode – open4education61
Obrigado !!!Email: [email protected]: http://netfeijao.blogspot.com/Twitter: http://twitter.com/wrsantos
ThatThat´́ss AllAll FolksFolks !!!!!!