Palestra realizada na Fundação Santo André (fsa.br) para MBA de Engenharia de Software. Também ministrada na semana da computação na Universidade de São Caetano (uscs.edu.br) e PHP Conference BR 2010
A NDRÉ B ARBOSA
E-mail: andre@abcg.com.br
Twitter: @andre_ibbrasil
AGILIDADE E QUALIDADE
Quantos...
são gerentes, diretores
são desenvolvedores
adotam alguma
metodologia de
desenvolvimento de
software
já ouviram falar sobre
Scrum
adotam Scrum
Como isso
é possível?
VELOCIDADE de entrega
QUALIDADE, menos bugs
MOTIVAÇÃO no time
Trabalho em EQUIPE
COMPARTILHAMENTO
do conhecimento
INTERAÇÃO c/ cliente
Aceitar MUDANÇAS
1986
Artigo no Harvard Business Review 1995
por Hirotaka Takeuchi Formalizado, implantado e
e Ikujiro Nonaka divulgado em todo mundo
1993
Foi concebido, documentado
e implantado como é hoje
YES!
Waterfall
never more!
Ken Schwaber
Thanks,
John Scumniotales
Jeff Sutherland
Lean and
Jeff McKenna
RUP!
MANIFESTO ÁGIL
agilemanifesto.org
Fev./2001
Estamos descobrindo maneiras melhores de
desenvolver software, fazendo-o nós mesmos e
ajudando outros a fazerem o mesmo. Através
deste trabalho, passamos a valorizar:
Indivíduos e interações processos e ferramentas
Software que funciona documentação abrangente
Colaboração com cliente negociação de contratos
Responder a mudanças seguir um plano
Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda.
Scrum é um...
framework iterativo e incremental para gerenciamento
de projetos e desenvolvimento ágil de software.
http://pt.wikipedia.org/wiki/Scrum
Scrum é uma...
abordagem ágil para gerenciamento de
projetos complexos.
http://scrumalliance.org
Scrum NÃO é...
complexo
extenso
frágil
garantia de sucesso
xp
É composto basicamente por:
1. Pessoas e seus papéis associados
2. Artefatos
3. Eventos com duração fixa
Só isso?
Não estou
acreditando...
Pigs
Product Owner *
Scrum Master *
Team
Chickens
Stakeholders
Managers
Outros
Essa estória é
velha, heim?!
Ei Porco! Acho que
deveríamos abrir Que tal
um restaurante. “Pernil com Ovos” ?
Não, obrigado. Eu estaria
comprometido, enquanto
Não sei não. você estaria apenas
Qual o nome? envolvido.
...
Pigs
Product Owner
Representante do cliente
Gerencia o Product Backlog
Só um por projeto (Product Backlog)
Barreira entre Chickens -> Time
Facilitador entre Time -> Cliente
Define a meta por Sprint
Não define como fazer, mas sim o que fazer primeiro
Único que pode cancelar um Sprint
Scrum Master
Team
Chickens
Pigs
Product Owner
Scrum Master
Garante que o time adote o Scrum
Atualiza Burn Down Charts
Garante produtividade e qualidade
Barreira entre Chickens -> Time
Remove impedimentos
Pode ser um desenvolvedor
Não é gerente
Team
Chickens
Pigs
Product Owner
Scrum Master
Team
Transformam o Sprint Backlog em produto
São interdisciplinares
Possuem conhecimento especializado
Compartilham conhecimento
São auto gerenciáveis
Chickens
Pigs
Product Owner
Scrum Master
Team
Chickens
Todos os envolvidos de alguma forma
Fornecem informações para o time (Team)
Não podem dizer aos Pigs como devem trabalhar
Não podem interferir (tirar o foco) do time (Team)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Projeto:
Locadora Virtual
Cadastro de DVDs e Blu-Rays
Categorização dos cadastros projeto ou
Admin de Planos e preços release
Login com níveis de permissão
Processo de locação
Processo de entrega
Processo de retirada
Pagamento
Serviços para cliente VIP
- Product Backlog extração
- Sprint Backlog do product
backlog
- Brun Down Charts
Projeto:
Locadora Virtual
Cadastro de DVDs e Blu-Rays Cadastro de DVDs e Blu-Rays
Categorização dos cadastros
Categorização dos cadastros
Admin de Planos e preços
Login com níveis de permissão
Processo de locação
Processo de entrega
Processo de retirada
Pagamento
Serviços para cliente VIP
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Estórias:
Tarefas (esforço)...
- desenho (13)
Cadastro de DVDs e Blu-Rays
- definição dos campos (3)
- modelagem BD (3)
- criação do formulário (13)
- testes unitários (8)
- inserção inicial (2)
Categorização dos cadastros - atualização do BD (2)
- listagem de registros (5)
- criação do formulário (8)
- atualização cadastro (5)
- testes unitários (8)
- inserção inicial (2)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Kanban:
Estórias Em andamento Aprovação Correção Feito
Cadastro
de DVDs e
Blu-Rays
(42)
Categorização
de cadastros
(30)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Kanban:
Estórias Em andamento Aprovação Correção Feito
Cadastro
de DVDs e
Blu-Rays
(42)
Categorização
de cadastros
(30)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Kanban:
Estórias Em andamento Aprovação Correção Feito
Cadastro
de DVDs e
Blu-Rays
(42)
Categorização
de cadastros
(30)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Kanban:
Estórias Em andamento Aprovação Correção Feito
Cadastro
de DVDs e
Blu-Rays
(42)
Categorização
de cadastros
(30)
- Product Backlog
- Sprint Backlog
- Brun Down Charts
Kanban:
Estórias Em andamento Aprovação Correção Feito
Cadastro
de DVDs e
Blu-Rays
(42)
Categorização
de cadastros
(30)
Planning Meeting
Release
Objetivo: estabelece planos, metas, prioridades
Planejam como transformar a visão em produto
Organiza o ROI, define riscos
Não precisa acontecer sempre
Não pertence ao Sprint Então por que
Sprint está aqui?
Sprint
Daily Meeting
Review Meeting
Retrospective Meeting
Planning Meeting
Release
Sprint
Duração: 5% do Sprint
Objetivo: criar e organizar o Sprint Backlog
1º) O que será feito no Sprint (P.O. explica)
2º) Como será feito no Sprint (time conversa)
O time “pontua” definindo sua capacidade de desenvolvimento
São criadas as estórias, tarefas (Sprint Backlog)
P.O. define a meta do Sprint
Sprint
Daily Meeting
Review Meeting
Retrospective Meeting
Planning Meeting
Release
Sprint
Sprint
Duração: 2 a 4 semanas*
Objetivo: tornar o Backlog em produto
Nenhuma mudança deve ocorrer
Não deve haver interferências externas
As 4 reuniões ocorrem dentro do Sprint
Ocorrem uma após a outra, sem intervalo
Daily Meeting
Review Meeting
Retrospective Meeting
Planning Meeting
Sprint
Daily Meeting
Duração: 15 minutos, no máximo !!!
Objetivo: alinhar o desenvolvimento com a meta
Realizada de pé.
Sempre no mesmo local (reservado) e horário
Participantes: Scrum Master e Team
Ouvinte: Product Owner
Cada membro explica:
O que fez desde a última reunião diária
O que vai fazer até a próxima reunião diária
Impedimentos, problemas, ...
Não são discutidas questões técnicas ou como serão feitas
Review Meeting
Retrospective Meeting
Planning Meeting
Release
Sprint
Sprint
Daily Meeting
Review Meeting
Duração: 5% do Sprint
Objetivo: dar a todos uma visão real do que foi feito
Participantes: Pigs e Chickens
Os usuários “navegam” pelo que já está pronto e em produção
Os usuários são orientados pelo time
Dúvidas de uso são esclarecidas
Não é momento para testes de aceitação
Retrospective Meeting
Planning Meeting
Release
Sprint
Sprint
Daily Meeting
Review Meeting
Retrospective Meeting
Duração: 5% do Sprint
Objetivo: refletir, rever e definir meios de entrega sem
maiores transtornos e incômodos
Participantes: Pigs
Não há culpados, mas uma equipe que trabalha com objetivos
5%
Estórias
Sprint Tarefas
Backlog
Planning Meeting
Sprint
Product Burn
Backlog
Sprint
Down
Desenv.
2 à 4 semanas diário
5%
5%
Retrospective Review Daily Meeting
Meeting Meeting 15 min.
Dificuldades
Resistência de quem está "perdendo poder“
Desmotivação de quem está “fora” do time
Visão tradicional dos superiores
Alt + tab nas tarefas
Indefinição do cliente
Mitos
Scrum é para projetos pequenos
Somente para experientes e times nivelados
Não há documentação
Não tem como estimar, logo é impossível vender
Verdade
Scrum não funciona em qualquer time
Propriedade coletiva de código
Programação em pares
Desenvolvimento dirigido por testes (TDD)
Refatoração constante
Agile Software Development with Scrum,
Ken Schwaber
Scrum e XP Direto das Trincheiras,
Henrik Kniberg (PDF)
Scrum Guide,
Ken Schwaber
ScrumAlliance.org
Scrum.org
Tarefa:
Criar um site de venda e locação de filmes
Pedidos do cliente (contratante):
Página inicial com lançamentos, recomendados, top
10 do mês e alguma publicidade da locadora
Cadastro de clientes
Página para escolha dos planos (com preços)
Processo de locação e compra
Serviços para clientes VIP
Busca de filmes
Objetivo:
Aplicar o framework em um Sprint
Atividades:
Definir pigs (papéis): P.O., Scrum Master, Team
Criar artefatos: Product Backlog e Sprint Backlog
Utilizar Kanban para visualizar estórias e tarefas ...
Executar todos os eventos de pelo menos um Sprint:
planejamento, reunião diária (a cada 10 minutos),
revisão e retrospectiva ...