introdução ao desenvolvimento Ágil com scrum

99
INTRODUÇÃO AO DESENVOLVIMENTO ÁGIL COM SCRUM TEORIA E PRÁTICA Welington Veiga / @welingtonveiga

Upload: welington-veiga

Post on 30-Jun-2015

164 views

Category:

Software


1 download

DESCRIPTION

O Manifesto Ágil balançou a indústria de software, a partir daí metodologias ágeis como XP e SCRUM se estabelecerem no mundo todo, sendo utilizadas em companhias como Google, Amazon, Microsoft, Yahoo e etc. Apesar disso, e depois de mais de uma década do manifesto, ainda há muita desinformação e preconceito e, sem o entendimento adequado, muitas empresas fracassam ao tentar adotá-las. Nessa apresentação vamos introduzir a teoria, as práticas, e o dia a dia do desenvolvimento ágil utilizando Scrum na vida real, mostrando que desenvolvimento de software não precisa ser uma rotina estressante.

TRANSCRIPT

Page 1: Introdução ao Desenvolvimento Ágil com Scrum

INTRODUÇÃO AO DESENVOLVIMENTO ÁGILCOM SCRUM

TEORIA E PRÁTICAWelington Veiga / @welingtonveiga

Page 2: Introdução ao Desenvolvimento Ágil com Scrum

SOBRE MIM...Graduado e mestrando em Ciência daComputação pela UFJFCoordenador de TI na AfferoLabCertified ScrumMaster pela ScrumAlliance.

Page 3: Introdução ao Desenvolvimento Ágil com Scrum
Page 4: Introdução ao Desenvolvimento Ágil com Scrum

E VOCÊ?Já trabalha no mercado de TI?Já conhece alguma coisa deDesenvolvimento Ágil?Alguém já sabe o que é SCRUM?

BEM VINDO A BORDO!

Page 5: Introdução ao Desenvolvimento Ágil com Scrum

AGENDA:

Page 6: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 1 - ANTES DO MOVIMENTO ÁGIL

Page 7: Introdução ao Desenvolvimento Ágil com Scrum

ENGENHARIA DE SOFTWARE "TRADICIONAL"Analogia com a Engenharia.Foco em Processos eFerramentas.Determinismo.

Page 8: Introdução ao Desenvolvimento Ágil com Scrum

O MODELO CASCATA (WATERFALL)Engenharia de Sistemas.Análise de Requisitos.Projeto.Codificação.Testes e Integração.Operação e codificação.

Page 9: Introdução ao Desenvolvimento Ágil com Scrum

DIFERENTES PAPÉIS DENTRO DO PROJETOGerente de ProjetoAnalista de SistemasArquiteto de SistemasProgramadorTesterImplantadorOperador de plataforma

Page 10: Introdução ao Desenvolvimento Ágil com Scrum

PLANEJAMENTO DE TODO O SOFTWARE!

Page 11: Introdução ao Desenvolvimento Ágil com Scrum

QUAL O PROBLEMA?

Page 12: Introdução ao Desenvolvimento Ágil com Scrum

A NATUREZA DO TRABALHO NODESENVOLVIMENTO DE SOFTWARE NÃO É A

MESMA DO TRABALHO NA CONSTRUÇÃOCIVIL.

Page 13: Introdução ao Desenvolvimento Ágil com Scrum

UM PLANEJAMENTO DETALHADO DE LONGO PRAZO EXIGE UMESCOPO BEM DEFINIDO E FIXO.

Dificuldade em levantar todos osrequisitos de uma vezO cliente não sabe de tudo o queele precisa a priori!O Mundo muda cada vez maisrápido!

Page 14: Introdução ao Desenvolvimento Ágil com Scrum

PESADAS FERRAMENTAS DE PLANEJAMENTO,ACOMPANHAMENTO E CONTROLE.

Muitos documentos e artefatos.Estimativas complexas.Controle preciso das tarefas ecronogramasDiferentes papéis comatribuições específicas

Page 15: Introdução ao Desenvolvimento Ágil com Scrum

QUAL É O CENÁRIO IDEAL EM UM PROCESSODETERMINÍSTICO?

“Dia 17 de Fevereiro de 2015, às 13h45, oProgramador I vai colocar o botão de

visualização de detalhes na tela de cadastro declientes, e vai gastar 15 minutos para terminar,com uma margem de erro de até 2 dias para o

início da tarefa.”

Page 16: Introdução ao Desenvolvimento Ágil com Scrum

VAI DAR CERTO?

Page 17: Introdução ao Desenvolvimento Ágil com Scrum

OS NÚMEROS RESPONDEM...

Taxa de sucesso e flha em projetos de software segundo TheStandish Group's industry survey (1994; 2012).

Page 18: Introdução ao Desenvolvimento Ágil com Scrum

COMO RESOLVER?Mais processos!Mais ferramentas!Mais controle!Escopo ainda mais definido!

Page 19: Introdução ao Desenvolvimento Ágil com Scrum

FRUSTRAÇÃO!Desenvolvedores desgastadosProjetos falhandoClientes frequentemente mal atendidos

Page 20: Introdução ao Desenvolvimento Ágil com Scrum

DÚVIDAS?

Page 21: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 2 - MANIFESTO ÁGIL

Page 22: Introdução ao Desenvolvimento Ágil com Scrum

UM POUCO DE HISTÓRIA...Reunião de 17 profissionais que já vinham praticando epublicando sobre metodologias mais "leves". Isso em 2001 nacidade de Utah, EUA.Definir pontos comuns entre o que eles acreditavam.Aí surgiu o termo Ágil (Agile)Foram definidos 4 valores e 12 princípios.

Page 23: Introdução ao Desenvolvimento Ágil com Scrum

QUEM ERAM OS 17?Kent Beck @KentBeckMike Beedle@mikebeedl3Arie v. Bennekum@arievanbennekumAlistair Cockburn@TotherAlistairWard Cunningham@WardCunninghamMartin Fowler@martinfowler

James Grenning@jwgrenningJim Highsmith@jimhighsmithAndrew Hunt@PragmaticAndyRon Jeffries@RonJeffriesJon Kern@JonKernPABrian Marick@marick

Robert C. Martin@unclebobmartinSteve MellorKen Schwaber@kschwaberJeff Sutherland@jeffsutherlandDave Thomas@pragdave

Page 24: Introdução ao Desenvolvimento Ágil com Scrum

MANIFESTO PARA DESENVOLVIMENTO ÁGILDE SOFTWARE

Estamos descobrindo maneiras melhores de desenvolversoftware, fazendo-o nós mesmos e ajudando outros a fazerem o

mesmo. Através deste trabalho, passamos a valorizar:

Indivíduos e interações mais que processos e ferramentasSoftware em funcionamento mais que documentaçãoabrangenteColaboração com o cliente mais que negociação de contratosResponder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor nos itens à direita, valorizamosmais os itens à esquerda.

Page 25: Introdução ao Desenvolvimento Ágil com Scrum

INDIVÍDUOS E INTERAÇÕESMAIS QUE PROCESSOS E FERRAMENTAS

Page 26: Introdução ao Desenvolvimento Ágil com Scrum

SOFTWARE EM FUNCIONAMENTOMAIS QUE DOCUMENTAÇÃO ABRANGENTE

Page 27: Introdução ao Desenvolvimento Ágil com Scrum

COLABORAÇÃO COM O CLIENTEMAIS QUE NEGOCIAÇÃO DE CONTRATOS

Page 28: Introdução ao Desenvolvimento Ágil com Scrum

RESPONDER A MUDANÇASMAIS QUE SEGUIR UM PLANO

Page 29: Introdução ao Desenvolvimento Ágil com Scrum

ATENÇÃO!ISSO NÃO QUER DIZER QUE...

...não existem processos e ferramentas!

...não é necessário ter documentação.

...não precisamos de contrato.

...não seguimos um plano.

Page 30: Introdução ao Desenvolvimento Ágil com Scrum

O QUE É O MANIFESTO ÁGIL?Conjunto de valores e princípios para desenvolvimento desoftware.Não é prescritivo, não define regras!É uma visão de desenvolvimento de software centrada empessoas.

Page 31: Introdução ao Desenvolvimento Ágil com Scrum

DÚVIDAS?

Page 32: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 3 - AGILIDADE

Page 33: Introdução ao Desenvolvimento Ágil com Scrum

PROCESSO DETERMINÍSTICOTRAJETO DE AVIÃO

Page 34: Introdução ao Desenvolvimento Ágil com Scrum

PROCESSO EMPÍRICOTRAJETO DE CARRO

Page 35: Introdução ao Desenvolvimento Ágil com Scrum

COM QUAL DESSES CENÁRIOS ODESENVOLVIMENTO DE SOFTWARE SE

PARECE?

Page 36: Introdução ao Desenvolvimento Ágil com Scrum

AÇÃO, INSPEÇÃO E ADAPTAÇÃO!Definir um plano bom o bastante.Definir uma forma de avaliar o progresso.Adaptar o plano, as métricas e processo iterativamente.

Page 37: Introdução ao Desenvolvimento Ágil com Scrum

FEEDBACK CONTÍNUO!

Page 38: Introdução ao Desenvolvimento Ágil com Scrum

CUSTO PARA CORRIGIR UM PROBLEMA AOLONGO DO CICLO DE VIDA

PROBLEMA PODE SER UM BUG, UM TESTE NÃO REALIZADO, A FALHA NA ESPECIFICAÇÃO OU ONÃO ENTENDIMENTO DA NECESSIDADE DO CLIENTE.

Page 39: Introdução ao Desenvolvimento Ágil com Scrum

NÃO QUEREMOS DESPERDÍCIO!

Page 40: Introdução ao Desenvolvimento Ágil com Scrum

DESENVOLVIMENTO INCREMENTALDesenvolvimento preparado para a mudança!

Page 41: Introdução ao Desenvolvimento Ágil com Scrum

ENTREGAS FREQUENTES:

INTEGRAÇÃO CONTÍNUA

Page 42: Introdução ao Desenvolvimento Ágil com Scrum

ENTREGAS FREQUENTES:

TESTES AUTOMATIZADOS

Page 43: Introdução ao Desenvolvimento Ágil com Scrum

ENTREGAS FREQUENTES:

CÓDIGO LIMPOREFACTORING(REDESENHO)

Page 44: Introdução ao Desenvolvimento Ágil com Scrum

ENTREGAS FREQUENTES:

Excelência técnicaDevops...

Page 45: Introdução ao Desenvolvimento Ágil com Scrum

PROCESSO SUSTENTÁVEL

Page 46: Introdução ao Desenvolvimento Ágil com Scrum

FOCO NAS PESSOAS E INTERAÇÕES!Valorização das conversas face-a-faceAmbiente de trabalho adequado e com pessoas motivadasConfiança

Page 47: Introdução ao Desenvolvimento Ágil com Scrum

MELHORIA CONTÍNUA!TÉCNICA, PROCESSOS, FERRAMENTAS E INTERAÇÕES.

Page 48: Introdução ao Desenvolvimento Ágil com Scrum

DÚVIDAS?

Page 49: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 4 - SCRUM

Page 50: Introdução ao Desenvolvimento Ágil com Scrum

SCRUM?

Page 51: Introdução ao Desenvolvimento Ágil com Scrum

SCRUM EM ENGENHARIA DE SOFTWARE?Framework para gerenciamento de projetos de softwareO que isso quer dizer?

Não é uma metodologia de desenvolvimento.Não é um processo de desenvolvimento.Você vai ter que adaptá-lo.

Page 52: Introdução ao Desenvolvimento Ágil com Scrum

UM FRAMEWORK É UM ARCABOUÇO A PARTIR DO QUAL VOCÊCONSTRÓI O QUE PRECISA.

Page 53: Introdução ao Desenvolvimento Ágil com Scrum

1. PAPÉIS

Page 54: Introdução ao Desenvolvimento Ágil com Scrum

PRODUCT OWNER (PO)QUEM É?

Pessoa que representa o produto.Responsável por definir a visão do produto e garantir, atravésdo trabalho da equipe, o maior retorno de investimentopossível para o cliente.

Page 55: Introdução ao Desenvolvimento Ágil com Scrum

PRODUCT OWNER (PO)O QUE FAZ?

Define e prioriza o que deve ser desenvolvido pela equipe.Mantem a comunicação direta com os stakeholders.Define visão do produto junto com o cliente e garante que otrabalho segue em direção a ela.

Page 56: Introdução ao Desenvolvimento Ágil com Scrum

TIMEQUEM É?

Grupo muldisciplinar de pessoas, responsável pelodesenvolvimento do produto.Auto-organizado.Pequeno.Motivado.

Page 57: Introdução ao Desenvolvimento Ágil com Scrum

TIMEO QUE FAZ?

Planeja como vai executar o trabalho.Faz as tarefas necessárias.Interage com o PO sempre que necessário para esclarecerdúvidas.

Page 58: Introdução ao Desenvolvimento Ágil com Scrum

SCRUM MASTERQUEM É?

Responsável por facilitar e potencializar o trabalho do time deSCRUM.Atua ajudando a manter e aperfeiçoar o uso do SCRUM portodos os envolvidos no projeto.Ajuda o Time e o PO a serem mais eficientes na realização deseu trabalho.

Page 59: Introdução ao Desenvolvimento Ágil com Scrum

SCRUM MASTERO QUE FAZ?

Facilita o trabalho do Time.Resolve conflitosRetira impedimentos encontrados pelo Time.Promove as mudanças organizacionais necessárias para que oTime possa fazer seu trabalho.Assegura que o SCRUM seja corretamente entendido eutilizado pelo Time.

Page 60: Introdução ao Desenvolvimento Ágil com Scrum

PRODUCT OWNER (PO)Define e apresenta para o Time o que deve ser desenvolvidoTira dúvidas do Time em relação ao que deve ser feito.Aceitar ou rejeitar o trabalho desenvolvido pelo Time.

TIMEPlaneja de forma vai executar o que é definido pelo PO.Executa todas as tarefas para que o trabalho seja feito.Recebe feedback do PO em relação ao trabalho desenvolvido.

SCRUM MASTERUtiliza técnicas de facilitação para auxiliar o Time.Remove impedimentos para a execução do trabalho.Garante que todos entendem e aplicam corretamente oSCRUM.

Page 61: Introdução ao Desenvolvimento Ágil com Scrum

IMPORTANTE!NÃO BUSQUE CORRESPONDÊNCIAS COM OS PAPÉIS NA

ENGENHARIA DE SOFTWARE TRADICIONAL.

Page 62: Introdução ao Desenvolvimento Ágil com Scrum

IMPORTANTE!O QUE OS PAPÉIS NÃO SÃO!!!

O PO...não define como o trabalho deve ser feito.

O Scrum Master...não é o "chefe" da equipe....não gerencia as tarefas do time.

Page 63: Introdução ao Desenvolvimento Ágil com Scrum

PROCESSO ITERATIVOCada ciclo completo de planejamento, desenvolvimento eentrega é chamado SprintUm Sprint varia de 1 a 4 semanas.

Page 64: Introdução ao Desenvolvimento Ágil com Scrum

SPRINT NO SCRUMTodo Sprint tem um período fixo e uma meta.O Time negocia com o PO o quanto de trabalho conseguerealizar nesse período.O Time se compromete com a entrega que será realizada.No fim do Sprint, o PO valida a meta.

Page 65: Introdução ao Desenvolvimento Ágil com Scrum

REGRA DE OURO!TODO RESULTADO DE SPRINT DEVE SER UM INCREMENTO PRONTO PARA ENTREGA.

Page 66: Introdução ao Desenvolvimento Ágil com Scrum

FEEDBACK!!!

Após aceitar uma entrega ao fim do Sprint o PO decide quandoentregá-la ao cliente.

Page 67: Introdução ao Desenvolvimento Ágil com Scrum

2. ARTEFATOS

Page 68: Introdução ao Desenvolvimento Ágil com Scrum

PRODUCT BACKLOGLista com os Itens que precisam ser desenvolvidos.Sempre ordenada de acordo com a prioridade dos Itens.Apenas o PO pode alterar o Product Backlog.O PO pode alterar o Product Backlog a qualquer momento.

Page 69: Introdução ao Desenvolvimento Ágil com Scrum

EXEMPLO DE PRODUCT BACKLOG

Page 70: Introdução ao Desenvolvimento Ágil com Scrum

SPRINT BACKLOGOs Itens selecionados para o desenvolvimento no SprintOrdenado de acordo com a Prioridade dos ItensO Sprint backlog está congeladostrong> até o final do Sprint

Page 71: Introdução ao Desenvolvimento Ágil com Scrum

EXEMPLO DE SPRINT BACKLOG

Page 72: Introdução ao Desenvolvimento Ágil com Scrum

SCRUM BOARDQuadro de tarefas do SCRUM (Quadro Kanbam).Controle e visibilidade das tarefas da equipe.Deve exibir sempre a realidade e o plano atual.Pode ser apenas eletrônico, mas o ideal é que seja físico.

Page 73: Introdução ao Desenvolvimento Ágil com Scrum

EXEMPLO DE SCRUM BOARD

Page 74: Introdução ao Desenvolvimento Ágil com Scrum

PRONTO SIGNIFICA PRONTO!DEFINIÇÃO DE PRONTO

Page 75: Introdução ao Desenvolvimento Ágil com Scrum

BURNING DOWN CHARTGráfico pata acompanhamento do progresso do Sprint.Compara o progresso ideal com o real.Visibilidade.

Page 76: Introdução ao Desenvolvimento Ágil com Scrum

BURNING DOWN CHART

Page 77: Introdução ao Desenvolvimento Ágil com Scrum

ARTEFATOS DO SCRUM1. Product Backlog2. Sprint Backlog3. SCRUM Board Backlog4. Burning Down

É só isso???Depende.

Page 78: Introdução ao Desenvolvimento Ágil com Scrum

3. EVENTOS

Page 79: Introdução ao Desenvolvimento Ágil com Scrum

SPRINT:D

Page 80: Introdução ao Desenvolvimento Ágil com Scrum

SPRINT PLANNINGPO, TIME E SCRUM MASTER

Detalhar e estimar os Items do topo do backlogNegociar com o PO o quanto de trabalho que cabe no Sprint.Estabelecer a meta do Sprint.Equipe vai "tarefar" os Itens do Sprint backlog.

LIMITE DE TEMPO!

Page 81: Introdução ao Desenvolvimento Ágil com Scrum

DAILY SCRUMTIME E SCRUM MASTER

Reunião diária, sempre no mesmo horário.Feita em pé.Limite de tempo. 15 minutosObjetivo:

Entender o que foi feito dede o último Daily SCRUM.Identificar problemas e impedimentos.Comunicação!!!

Page 82: Introdução ao Desenvolvimento Ágil com Scrum

SPRINT REVIEWPO, TIME E SCRUM MASTER

O Time apresenta os Itens desenvolvidos no Sprint.O PO aceita ou rejeita os items de acordo com o estabelecidono Sprint Planning.

Page 83: Introdução ao Desenvolvimento Ágil com Scrum

RETROSPECTIVATIME, SCRUM MASTER (E PO)

Ação, Avaliação, Adaptação.Identificar eventos que atrapalharam a equipe ao longo doSprint.Identificar pontos positivos.Identificar pontos de melhoria.Propor ações e combinados para a melhoria da equipe,processos, produto, entrega...

Page 84: Introdução ao Desenvolvimento Ágil com Scrum

RETROSPECTIVAATENÇÃO!!!

Não é lavação de roupa suja.Não é rasgação de seda.Ambiente seguro.

Page 85: Introdução ao Desenvolvimento Ágil com Scrum

VISÃO GERAL DO SCRUM:

Page 86: Introdução ao Desenvolvimento Ágil com Scrum

FALAMOS DE TUDO?Como são feitas as estimativas?Como é consuzida a retrospectiva?Como é feita a tarefação?

Page 87: Introdução ao Desenvolvimento Ágil com Scrum

DÚVIDAS?

Page 88: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 5 - O DIA-A-DIA DE UM TIME ÁGIL

Page 89: Introdução ao Desenvolvimento Ágil com Scrum

BUSCA PELA MELHORIA CONTÍNUA!Excelência técnica.Estar pronto para compartilhar conhecimento e aprender.

Page 90: Introdução ao Desenvolvimento Ágil com Scrum

MULTIDISCIPLINARIDADETodo mundo sabe um pouco de tudo.

Page 91: Introdução ao Desenvolvimento Ágil com Scrum

POSSE COLETIVATodo trabalho, tarefa, sucesso ou falha é divido pela equipe.

Page 92: Introdução ao Desenvolvimento Ágil com Scrum

COMPROMETIMENTO

Page 93: Introdução ao Desenvolvimento Ágil com Scrum

MOTIVAÇÃO

Page 94: Introdução ao Desenvolvimento Ágil com Scrum

TODO MUNDO SE ADAPTA?NÃO.

Page 95: Introdução ao Desenvolvimento Ágil com Scrum

PARTE 6 - CONSIDERAÇÕES FINAIS

Page 96: Introdução ao Desenvolvimento Ágil com Scrum

DESENVOLVIMENTO ÁGIL É A SOLUÇÃO DE TODOS OSPROBLEMAS?

NÃO.

Escopo bem definido e imutável.Modelos de contrato inflexível.Clientes que não querem proximidade com a equipe dedesenvolvimento.Níveis de gestão não entendem ou não aceitam.

Page 97: Introdução ao Desenvolvimento Ágil com Scrum

COMO EU COMEÇO?DEVAGAR!

Estude.Mude aos poucos.Ação, inspeção, adaptação.

Page 99: Introdução ao Desenvolvimento Ágil com Scrum