Gestão Ágil de Projetos com Scrum

Preview:

Citation preview

“um framework para desenvolver produtos complexos em ambientes complexos”

Rafael Sabbagh, CSM, CSP

Marcos Garrido, CSPO

Agenda

PARTE 1

• Um pouco de história• Agilidade• Scrum

– Pilares– Papéis– Ciclo do Scrum

PARTE 2

• Scrum vs. Métodos Tradicionais• Caso real: Aplicação de Scrum em

projeto na Petrobras

Um pouco de história...

• Década de 50: a gestão de projetos é reconhecida como disciplina, nascida a partir da administração

• Henri Fayol:

– Seu trabalho é a base para a gestão de projetos tradicional

– O gestor possui 5 funções básicas:

• O gráfico de Gantt é adotado como ferramenta para listar, acompanhar e controlar a execução das tarefas contidas em um projeto.

• Até então a gestão de projetos é voltada para grandes projetos de engenharia e construção civil.

Planejar Organizar Comandar Controlar Coordenar

Um pouco de história...

• Década de 60: o desenvolvimento de software começa a ganhar complexidade.

• Para gerenciar projetos de software, as empresas utilizam a medotologia tradicional antes aplicada a projetos de engenharia e construção civil.

• Problemas começam a surgir: desenvolvimento de software exige mudanças frequentes

• Winston Royce (1970): artigo criticando a abordagem tradicional para a gestão de projetos de software, que fica conhecida como waterfall.

Um pouco de história...

• Waterfall, por Winston Royce (1970)

Um pouco de história...

Um pouco de história...

• Waterfall segue o conceito Big Design Up Front (BDUF).

• Os defensores do BDUF acreditam que o tempo gasto revisando exaustivamente a especificação garante a ausência de mudanças críticas na fase de execução.

• McConnell (1996): “corrigir erros ainda na fase de especificação gasta entre 50 e 200 vezes menos tempo do que se o erro fosse encontrado durante a execução do projeto”.

Um pouco de história...

• Meredith & Mantel: “problemas de comunicação e entendimento do que deve ser feito são responsáveis por falhas nos projetos”.

• Metodologias tradicionais sugerem que:– Mudanças devem ser evitadas a todo custo.

– Se não for possível evitá-las, o gerente de projetos deve gerenciá-las.

• Para as metodologias tradicionais, a mudança pode ter um efeito devastador

Um pouco de história...

• DeGrace & Stahl (1990): Fatores que tornam questionável o uso de BDUF para projetos de software:

– Requisitos não são completamente compreendidos no início do projeto;

– Usuários só sabem exatamente o que querem após ver uma versão inicial do software;

– Requisitos mudam durante o processo de desenvolvimento;

– Novas ferramentas e tecnologias tornam a estratégia de desenvolvimento imprevisível.

• Isso se aplica a diversos outros tipos de projeto

• BDUF é considerado adequado apenas para projetos estáveis, com pouca ou nenhuma mudança.

Um pouco de história...

• Se você ainda não conhece o problema, como especificá-lo corretamente?

• Solução é usar o método: – Cálculo Hipotético Utilizando Técnicas

Estatísticas

Um pouco de história...

• Se você ainda não conhece o problema, como especificá-lo corretamente?

• Solução é usar o método: – Cálculo Hipotético Utilizando Técnicas

Estatísticas

Um pouco de história...

• Se você ainda não conhece o problema, como especificá-lo corretamente?

• Solução é usar o método:

CHUTE

Um pouco de história...

• Questões importantes:– Ainda existem projetos com pouca ou

nenhuma mudança?

– O que acontece quando um projeto com muitas mudanças é gerenciado da forma tradicional?

• “A pior coisa que pode acontecer é o cliente receber exatamente aquilo que comprou”

Um pouco de história...

Um pouco de história...

Fonte: Standish Group

Chaos Report – Sucesso em Projetos de Software

Recente pesquisa no Brasil com gerentes de projeto aponta a mudança de escopo (71%) como o fator principal para insucesso em projetos de software

Agilidade

Manifesto Ágil

"Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho,

passamos a valorizar:

Indivíduos e interação entre eles mais que processos e ferramentasSoftware em funcionamento mais que documentação abrangente

Colaboraçã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, valorizamos mais os itens à esquerda."

2001 - representantes de processos leves de desenvolvimento de software se reuniram para discutirem o que seus processos possuíam em comum. O resultado foi o Manifesto Ágil:

Princípios Ágeis

• Satisfação do cliente através da entrega rápida e frequente de produto funcional

• Produto funcional é a principal medida de progresso do projeto

• Mudanças são vistas como parte natural do processo e são bem-vindas

• Cooperação diária entre a equipe de projeto e o pessoal de negócios

• Comunicação aberta dentro da equipe

Princípios Ágeis

• Equipe de pessoas motivadas, com o suporte necessário e confiança

• Atenção contínua para o bom design e excelência técnica

• Simplicidade. Nada de desperdícios!

• Equipes autogerenciadas: Empowerment!

• Foco maior nas pessoas do que nos processos

• Melhoria contínua

Aplicação

Métodos Ágeis não servem apenas para desenvolvimento de software!

Aplicação

Métodos ágeis podem ser utilizados em projetos em que há:

- Ambiente de mudanças frequentes- Requisitos- Tecnologia- Leis e regras

- Ambiente de incertezas- Necessidade de entrar rapidamente

no mercado- Oportunidades- Responder a uma ameaça

Aplicação

Exemplos:

• Alexandre Magno (CST): Scrum Executivo – mudança organizacional

• Projetos de Publicidade/Marketing

– Ex: Accenda (http://grupoaccenda.com.br)

• Projetos de Hardware

• Infra-estrutura

• Jogos olímpicos, Copa do mundo…

O que é Scrum?

Scrum...

• ...é um framework para desenvolvimento de produtos complexos em ambientes complexos;

• ...não é um processo ou técnica: dentro de Scrum podem-se empregar diversos processos e técnicas;

• ...utiliza abordagem iterativa e incremental para melhorar a predizibilidade e o controle de riscos;

• ...gera entrega frequente de valor para o cliente;

• ...torna transparentes problemas das práticas de desenvolvimento, para que se possa melhorá-las;

• ...utiliza inspeção e adaptação para melhoria contínua, em ciclos de feedback.

Scrum: Origens

• Ken Schwaber: www.controlchaos.com• Jeff Suttherland: jeffsutherland.com

• Mike Beedle: www.mikebeedle.com

• “The New New Product Development Game”, de Takeuchi e Nonaka

• Sistema de Produção da Toyota: modelo enxuto e just-in-time

Processos Definidos X Empíricos

• Processo definido– Ambientes controlados – ex: linhas de produção

• Processo empírico: – Complexos e imprevisíveis

• Scrum é embasado na teoria de controle de processos empíricos

• Três pilares sustentam a teoria de controle de processos empíricos: Transparência, Inspeção e Adaptação

Pilares

Os Pilares do Scrum

• #1: Transparência

– Aspectos que afetam o resultado do projeto devem ser visíveis para os que gerenciam estes resultados

– O que é visto deve ser compreendido: se quem inspeciona o processo acredita que está pronto, isso deve corresponder à definição de pronto utilizada

Os Pilares do Scrum

• #2: Inspeção

– Deve haver inspeção no processo com frequência suficiente para se detectar variações inaceitáveis

Os Pilares do Scrum

• #3: Adaptação

– Ao se detectar variações inaceitáveis, o processo deverá ser ajustado o tão rápido quanto possível para se minimizar desvios ainda maiores

Introdução ao Ciclo do Scrum

O Ciclo do Scrum

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

O representante do cliente, o PRODUCT OWNER, levanta com o cliente requisitos

mais prioritários no momento

Ele então insere estes requisitos em uma lista priorizada, chamada

BACKLOG DO PRODUTO

A equipe então se reúne com o representante do cliente e decide, a partir dessa lista de requisitos, o que será feito

no próximo ciclo de desenvolvimento: o BACKLOG DA SPRINT

A equipe faz o trabalho no ciclo de desenvolvimento, chamado de SPRINTEm cada dia, a equipe faz uma reunião de

15 minutos para promover visibilidade e comunicação

Ao final do ciclo de desenvolvimento, a equipe terá produzido um incremento no produto, que significa valor para o cliente

A equipe então se reúne com o representante do cliente na REUNIÃO DE

REVISÃO e apresenta o que foi feito

E, em seguida, se reúne para a RETROSPECTIVA, onde verifica o que

funcionou bem e o que pode melhorar no próximo ciclo de desenvolvimento

Papéis

Papéis no Scrum

• ScrumMaster:– responsável por garantir que o processo

é entendido e seguido

• Product Owner:– responsável por maximizar o valor, para

o cliente, do trabalho que o Time de Scrum faz

• Time de Scrum:– é a equipe, que faz o trabalho

propriamente dito

Papéis no Scrum: O ScrumMaster

• Garante a adesão do time aos valores do Scrum, práticas e regras

• Ajuda o Time de Scrum e a organização a adotarem o Scrum

• Remove os impedimentos que atrapalham o trabalho do Time de Scrum

• Ajuda o Time de Scrum a usar o auto-gerenciamento e a multidisciplinaridade, a ser mais produtivo e a ter mais qualidade

• O ScrumMaster não gerencia o Time de Scrum: o Time de Scrum é auto-organizável

Papéis no Scrum: O Product Owner

• Gerencia a lista de requisitos (Backlog do Produto) através do contato frequente com o(s) cliente(s), e garantir sua visibilidade a todos

• Assegura o valor do trabalho realizado pelo Time de Scrum: garante o ROI do cliente

• Gerencia a visão do produto: estabelece, mantém e comunica

• Gerencia as entregas do produto para o cliente

• É sempre uma pessoa, e não um comitê. Mas pode ser aconselhado/influenciado por outras pessoas

• Suas decisões devem ser respeitadas: ninguém mais pode mudar as prioridades

Papéis no Scrum: O Time de Scrum

• É a equipe de desenvolvimento do projeto, com 5 a 9 membros, que:

• Transformam a lista de requisitos (Backlog do Produto) em incrementos de funcionalidades potencialmente entregáveis em cada iteração

• São multidisciplinares: todo conhecimento necessário para gerar o incremento

• Não há títulos no Time de Scrum

• Gerenciam a iteração de desenvolvimento

• São auto-organizáveis: ninguém diz ao Time de Scrum como transformar o Backlog do Produto em incrementos entregáveis.

O Ciclo do Scrum

Backlog do Produto

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

O Product Owner levanta com o(s) cliente(s) os requisitos mais prioritários

naquele momento

O Product Owner insere estes requisitos no BACKLOG DO

PRODUTO

O que é o Backlog do Produto?

• É uma lista incompleta e dinâmica dos requisitos do produto, ordenados por prioridade de desenvolvimento

• A prioridade é determinada por: valor que gerará ao cliente naquele momento, risco e necessidade

• Contém funcionalidades, correções de bugs, tecnologias e melhorias que constituem a mudança que será implementada no produto

• O Product Owner é o responsável por atualizar, priorizar e dar visibilidade ao Backlog do Produto

• Nunca está completo – evolui à medida que o produto e o ambiente evoluem

• Seus itens possuem descrição e estimativa em pontos de esforço. Itens do alto da lista são de menor granularidade e mais detalhados

Reunião de Planejamento da Sprint

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

O Time de Scrum então se reúne com o Product Owner e decide, a partir do

Backlog do Produto, o que será feito no próximo ciclo de desenvolvimento:

o BACKLOG DA SPRINT

O que é a Reunião de Planejamento da Sprint?

• Planejamento da iteração:– Time de Scrum e Product Owner defininem que

itens do Backlog do Produto serão implementados na Sprint e os quebram em tarefas - Backlog da Sprint

• 1a. Parte: O quê?– Escolha de itens mais prioritários do Backlog do

Produto a serem implementados– Definição da Meta da Sprint

• 1a. Parte: Como?– Time de Scrum quebra itens em tarefas e estima

o tempo que levará para realizar cada tarefa

O que é o Backlog da Sprint?

• Composto por uma lista dos itens que serão desenvolvidos durante a Sprint, as tarefas correspondentes, o andamento e as estimativas

• Os itens são selecionados do Backlog do Produto na Reunião de Planejamento da Sprint

• Cada item é quebrado em tarefas. Parte das tarefas é definida no Planejamento da Sprint, parte ao longo do Sprint

• O Backlog da Sprint é modificado ao longo da Sprint – estimativas são atualizadas, tarefas podem surgir para os itens já existentes

• Deve ter alta visibilidade

• Pertence ao Time de Scrum

A Sprint

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

O Time de Scrum faz o trabalho no ciclo de desenvolvimento, a SPRINT

O que é a Sprint? (1/2)

• Sprint é a iteração (ciclo) de desenvolvimento– Reunião de Planejamento da Sprint– Trabalho de Desenvolvimento– Revisão e Retrospectiva da Sprint

• Cada Sprint deve ter uma Meta

• Tem duração fixa (de 2 semanas a 1 mês) e ocorrem uma atrás da outra– Duração deve contemplar horizonte curto suficiente

para que mudanças não alterem a Meta

• ScrumMaster deve assegurar que não seja feita nenhuma mudança que afete a Meta da Sprint

O que é a Sprint? (2/2)

• Cada Sprint deve ter como saída um incremento do produto potencialmente entregável

• A Sprint pode ser cancelada se a Meta da Sprint perder o sentido – somente Product Owner pode decidir

• É muito raro a Sprint ser cancelada

A Reunião Diária

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

Em cada dia, o Time de Scrum faz uma reunião de 15 minutos para promover

visibilidade e comunicação

O que é a Reunião Diária?

• Reunião de 15 minutos realizada todo dia no mesmo local, à mesma hora. – Visibilidade– Comunicação– Decisão rápida

• Cada membro do Time de Scrum detalha:

– O que ele completou desde a última reunião diária;– O que ele vai fazer antes da próxima reunião diária;– Quais obstáculos estão em seu caminho.

• O ScrumMaster deve remover os obstáculos encontrados

• O gráfico de BURNDOWN deve ser atualizado!

O que é o Burndown da Sprint?

• É um gráfico que mostra a soma dos tempos estimados restantes das tarefas da Sprint pelo tempo

– Y: tempos estimados restantes– X: dias da Sprint

• Serve para acompanhar o progresso em direção ao final de um sprint

• É feito inicialmente no Planejamento da Sprint e deve ser atualizado a cada dia da Sprint

Incremento no Produto

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

Ao final da Sprint, o Time de Scrum terá produzido um incremento PRONTO no

produto, que significa valor para o cliente

O que significa Pronto?

• Ao final da Sprint, o trabalho desenvolvido deve estar pronto

• Mas o que significa “pronto”?

• O Time de Scrum e o Product Owner devem definir o que significa “pronto”

• Quando alguém diz que algo está “pronto”, todos devem entender o que isso significa

• Ex. de software: codificado, testado e documentado

A Reunião de Revisão da Sprint

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

O Time de Scrum então se reúne com o Product Owner e apresenta o que foi feito na REUNIÃO DE REVISÃO DA SPRINT

O que é a Revisão da Sprint?

• Reunião onde o Time mostra aos stakeholders o que foi feito durante a Sprint:– Product Owner presente

• Time de Scrum demonstra o que fez e responde a perguntas

• Product Owner verifica o que foi e o que não foi feito na Sprint

• Deve prover entradas para a Reunião de Planejamento de Sprint seguinte

A Reunião de Retrospectiva

BACKLOG DO

PRODUTO

BACKLOG DA SPRINT

REUNIÃO DIÁRIA

INCREMENTO DO PRODUTO

POTENCIALMENTENTREGÁVEL

2-4 SEMANAS

24 HORAS

E, em seguida, o Time de Scrum se reúne para a RETROSPECTIVA, onde verifica o que funcionou bem e o que pode melhorar

na próxima Sprint

O que é a Retrospectiva da Sprint?

• Reunião para inspecionar como correu a Sprint com relação às pessoas, relacionamentos, processos e ferramentas:– Product Owner não deve estar presente

• Identificar e priorizar:

– O que foi bem?

– O que pode melhorar?

• Identificar ações para melhorias - adaptação

E o ciclo recomeça...

BACKLOG DO

PRODUTO

2-4 SEMANAS

Exercíciode

Priorização

Planejando um Hotel

• Formem grupos de até 5 pessoas• Escolham um membro do grupo para

ser o Product Owner• O Product Owner representa os

clientes (demais membros do grupo) que estão construindo um hotel

• O Product Owner deve priorizar (do maior para o menor) os itens que devem fazer parte do seu hotel com base no desejo dos seus clientes

Planejando um Hotel

• Itens disponíveis para priorização:

Internet no Quarto

Camareira / Arrumadeira

Piscina

Escada

Estacionamento

Elevador

Quartos

Quartos

Recepção

Restaurante

Cozinha do Hotel

Planejando um Hotel

• Agora imagine que durante a construção o dinheiro acabou assim que o 5º Item ficou pronto.

• Pergunta:– Os primeiros 5 itens são suficientes para

tornar o hotel viável?

Scrumvs.

Métodos Tradicionais

Desperdício

Metodologias não-ágeis afirmam que devem ser gerados inúmeros documentos para o sucesso do projeto

Termo de Abertura

Declaração Preliminar de Escopo

Plano de Gerenciamento

do Projeto

Pedidos de Mudança

Relatório de Progresso

Relatório de Desempenho

Relatório de Aceite

Relatório de Encerramento

Cronograma Detalhado

Análise de Earned Value

Documento de Lições

Aprendidas

Diagramas de Sequência

Diagrama de Componentes

Diagrama de Colaboração

Diagrama de Estados

Diagrama de Casos de Uso

Diagrama de Pacotes

Diagrama de Atividades

...algo mais?

O custo de produção e manutenção destes documentos compensa?

Quantos destes documentos se manterão atualizados?

Quantos serão realmente úteis para o desenvolvimento do projeto?

Desperdício

Fonte: Standish Group CHAOS Report

• 35% dos requisitos mudam

• 65% das funcionalidades nunca ou raramente serão utilizadas

Em projetos típicos, 50% do tempo é gasto com requisitos, arquitetura e especificação

Análise de RequisitosEspecificação /

ArquiteturaImplementação Testes Manutenção

e isso tudo é feito antes de se construir qualquer funcionalidade!e para

piorar...

Desperdício

Afinal, o objetivo do projeto é o produto, e não a documentação!

Com Scrum, o projeto deve ter somente a documentação suficiente e necessária.

Ou seja, adote somente o que será usado.

Desperdício

A documentação do projeto não pode roubar tempo e recursos do desenvolvimento do produto.

A documentação do produto é importante e não pode ser deixada de lado.

Atenção!!!

Maior Valor Primeiro

Em metodologias não-ágeis, o cliente só percebe retorno ao investimento no

final do projeto.

Entrega

Mudanças Frequentes

Em metodologias tradicionais, a mudança é fonte de estresse!

Mudança é indesejada!

Mudança é arriscada!

Mudança é cara!

Mudança deve ser

negociada!

Como quase todo o planejamento é feito no começo do projeto, há pouquíssimo

espaço para mudanças!

Mudanças Frequentes

O contrato com escopo amarrado deve nos defender! O cliente vai querer mudar tudo!

Cada mudança deve ser negociada com o cliente! Seu impacto deve ser quantificado!

Cada mudança deve ser revista, aprovada, planejada, documentada e gerenciada!

Mudanças Frequentes

Como o Scrum lida com a mudança?

Scrum encara a mudança como parte natural do processo de desenvolvimento

Mudanças solicitadas pelo cliente podem ser introduzidas no produto na sprint seguinte!

A resposta rápida à mudança pode se transformar em vantagem competitiva!

Comunicação

Em um projeto tradicional, quando o cliente é encorajado a participar?

Análise de RequisitosEspecificação /

ArquiteturaImplementação ManutençãoTestes

Comunicação

Em um projeto tradicional, quando o cliente é encorajado a participar?

Análise de Requisitos

Testes de Aceitação

Comunicação

Em um projeto tradicional, quando o cliente é encorajado a participar?

Análise de Requisitos

Testes de Aceitação

O cliente percebe o projeto como

uma grande caixa preta, cujo conteúdo será revelado apenas no final do processo

Comunicação

Assim, ao final do projeto, o resultado dificilmente atenderá às necessidades do cliente naquele momento!

Comunicação

Como o Scrum lida com a comunicação?

O Product Owner está em frequente contato com o cliente para levantar suas necessidades

O cliente recebe frequentemente novas versões...

...e assim pode mais rapidamente dar feedback para a equipe

Comunicação

A relação com o cliente deixa de ser meramente comercial, e passa a contemplar:

Parceria Cumplicidade Satisfação Fidelidade

E assim, cria-se uma relação de longo prazo com o cliente.

O cliente se sente envolvido no processo, compartilhando a responsabilidade

Comunicação

Em metodologias não-ágeis, como se promove a visibilidade no projeto

para seus stakeholders?

Diagrama de Estados

Principalmente através de documentação......que dá

muito trabalho

...que não é eficiente

...que não se mantém atualizada

...que acaba deixada de

lado

Comunicação

No Scrum, a visibilidade no projeto é constantemente promovida!

Reuniões diárias

KanbanEquipe em um mesmo ambiente

Envolvimento do cliente

Gráficos de Burndown

Entregas frequentes

Reunião de Revisão

Retros-pectiva

...são alguns exemplos.

Scrum na PetrobrasCase de Sucesso

Obrigado!

Rafael Sabbaghsabbagh@gmail.com

Marcos Garridomgarridobr@gmail.com