Escolar Documentos
Profissional Documentos
Cultura Documentos
ApostilaSCRUM - Cap 2
ApostilaSCRUM - Cap 2
SCRUM
Rodrigo Yoshima
Aspercom Serviços de Informática Ltda.
CNPJ 02.942.579/00001-37
Autores: Rodrigo Yoshima
Outras
15%
DSDM
8% SCRUM
40%
Híbrida
14%
XP
23%
8
Uma característica importante dos processos prescritivos é que se caso o produto final não
atenda o nível de qualidade que você espera o custo é muito alto para reconstruir esse produto
novamente ou para reparar a falha. Como exemplo, se um carro ao final da linha de produção foi
montado de maneira errada é praticamente impossível colocá-lo novamente na linha para que seja
produzido da maneira certa. É mais barato jogar o carro no lixo e corrigir a linha de produção.
O software não possui passos intermediários que possam ser verificáveis como válidos
durante o seu ciclo de vida. Quando você captura requisitos você não tem certeza que eles
solucionarão as necessidades do negócio, quando você elege uma arquitetura não tem certeza se
ela será suficiente, quando você codifica soma-se a essas incertezas aspectos técnicos e também
com relação ao futuro (como o software será mantido). Testes são efetuados sobre requisitos
incertos e também nunca sabemos se os testes são suficientes. Nós só conseguimos reduzir essa
incerteza quando o usuário olha a aplicação. Em determinadas aplicações, a incerteza só reduz
depois que ela está em produção a mais de dois anos! Por conta disso, chegamos à declaração
abaixo:
SOFTWARE = IDÉIA
Idéias são coisas que amadurecem. É bem raro uma maçã cair na sua cabeça e de uma hora
para outra você ter a idéia completa de como resolver um problema complexo. O software assim
como uma campanha publicitária, ou uma ação de marketing, ou um novo produto, é algo que
floresce com a participação de muitas pessoas e chega à maturidade em constante inspeção e
adaptação. O SCRUM é uma das maneiras empíricas de se controlar o gerenciamento da produção
de um software baseado em alta produtividade e satisfação dos envolvidos.
9
2.3. Papéis do SCRUM
O SCRUM como qualquer outra metodologia é baseada em papéis e responsabilidades,
porém, os papéis do SCRUM são bem abrangentes e direcionados para um propósito comum: O
SUCESSO DO PROJETO.
Product Owner
O Time (Team)
O Time é mais bem definido como um grupo de pessoas do que um papel. O Time é o grupo
de pessoas diretamente ligadas ao trabalho a ser feito que garantirá que o projeto seja entregue com
todas as funcionalidades necessárias. Suas características são:
• Multi-functional
• Formado por até 7 pessoas
• Define o objetivo do Sprint e especifica os resultados dos trabalhos
• Faz aquilo que é necessário dentro das diretrizes do projeto para alcançar o objetivo
do Sprint
• Auto-organizável
• Demonstram o resultado do Sprint para o Product Owner e outros Stakeholders
10
SCRUM Master
11
Neste modelo temos uma divisão onde há precedência e grande parte do projeto é analisado,
depois projetada, depois implementada e depois testada. Essa linha do tempo pode ser um prazo de
dois anos.
Um dos grandes problemas dessa abordagem é o grande risco de não entregar software
continuamente para reduzir as incertezas. Nessa abordagem, o software só fica funcional para os
usuários depois de dois anos! Em dois anos os usuários já mudaram, o mercado já mudou, a
concorrência aumentou. Desenvolvimento em cascata é uma abordagem arriscada para projetos de
software. Em projetos de software a iteratividade é primordial.
De qualquer forma, todo projeto (de software ou não) necessita de uma fase inicial ou de
concepção para definir exatamente o que o projeto deve resolver. Essas informações são
importantes para:
Nível Operacional
1.Realizar Objetivos dos Sprints
2.Aplicar Boas Práticas de Engenharia
3.Adequar mudanças
Sprint 4.Garantir a Qualidade
Software
Backlog Funcionando
12
2.5. Estrutura do Processo SCRUM
O SCRUM define conceitos importantes referentes à aplicação do processo no período do
projeto. Esses conceitos fundamentam práticas importantes para definir a estratégia de inspeção e
adaptação do projeto, fornecendo uma excelente visibilidade do andamento dos trabalhos,
juntamente com uma importante previsibilidade do que acontecerá no futuro.
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Tempo
13
TIME-BOXING: Período Fechado de Tempo
Outro conceito importante para as práticas do SCRUM é o TIME-BOXING. Um SPRINT de 30
dias é um TIME-BOX. O planejamento que ocorre no primeiro dia do SPRINT ocorre num TIME-BOX
de 1 dia. As reuniões diárias com a equipe devem demorar no máximo 15 minutos. Tudo que
acontece dentro da metodologia SCRUM tem o espaço de tempo definido e cronometrado.
O TIME-BOX, como já citado, é um artifício importante para o acompanhamento. Além disso,
quando você define um objetivo e um período de tempo fechado, isso força sua equipe a se
concentrar naquilo que é mais importante, sem gastar tempo com coisas desnecessárias para o
objetivo.
O Time-boxing é um pilar importante da metodologia SCRUM, pois a filosofia é agregar valor
de negócio num curto período de tempo. O Time-boxing garante que o tempo seja investido onde
realmente é importante para o projeto.
e v
2
cti
spe
1&
....
tro
28
3
1
2
Re
.....
ng
Di a
Dia
Di a
Sprint
Dia
Dia
w
nni
Dia
vie
Pla
Re
Tempo 30 dias
Figura 7 - Estrutura de um SPRINT
A figura acima representa os dias no sentido vertical, evoluindo dentro do período de 30 dias.
A estrutura do processo SCRUM dentro do tempo é bem simples. O SPRINT inicia com um dia de
14
planejamento que ocorre em duas partes. Neste dia, todos os envolvidos planejam quais serão os
objetivos a serem finalizados nos próximos 28 dias. Nesses 28 dias a equipe está trabalhando e
colaborando entre si em constante comunicação. No 30º dia do Sprint todo o trabalho da equipe é
avaliado juntamente ao Product Owner que pode dar novos direcionamentos ao projeto. Por último,
temos um momento de retrospectiva, onde a equipe discute as lições aprendidas e quais ajustes são
necessários no processo. Logo em seguida, um novo planejamento do próximo Sprint é realizado,
dando continuidade e fluidez à construção do Software.
Todos os Sprints possuem uma estrutura exatamente igual, o primeiro dia você planeja,
durante o Sprint você cumpre o planejamento, no último dia você avalia o resultado e ajusta o
processo buscando uma melhoria contínua. A simplicidade do modelo de papéis, artefatos e
estrutura do processo SCRUM é uma das razões da sua eficácia.
Para que cada um desses pontos fique ainda mais claro, vamos comentar cada um deles
com mais detalhes.
Parte 1 Parte 2
4 horas 4 horas
Tempo 1 dia
Figura 8 - Planejamento - Parte 1
15
Na primeira parte da reunião de planejamento o SCRUM Master reúne-se com o Product
Owner para verificar qual é o Product Backlog. O Product Backlog é um artefato do SCRUM que
nada mais é um documento ou planilha onde constam todas as funcionalidades de alto nível do
sistema. Lá estão todas as funcionalidades desejadas pelos Stakeholders ordenadas pela
prioridade. Aquilo que é mais prioritário está no topo da lista, e aquilo que é menos prioritário vai
para o fim da lista.
16
Parte 1 Parte 2
4 horas 4 horas
Tempo 1 dia
17
Este quadro é montado a cada Sprint, e a idéia é que ele esteja visível a cada membro do
Time durante o período de trabalho. Neste quadro constam os itens potencialmente implantáveis do
Product Backlog em azul na primeira coluna “Item”. A coluna “Pendente” mostra a quebra deste item
em tarefas menores com duração média de um dia através de notas em amarelo (post-it’s).
Demonstraremos mais utilidades deste quadro durante este capítulo. O que você precisa ter
em mente neste momento é que itens do Product Backlog foram selecionados para serem resolvidos
neste Sprint e esses itens foram quebrados em tarefas menores no Sprint Backlog.
O Sprint Backlog é o produto do trabalho do dia de planejamento. Ao fim deste dia, o Time já
sabe exatamente aonde o esforço dos próximos 28 dias será empregado. Toda metodologia de
gerenciamento de projetos é baseada em: planejamento, execução, controle e avaliação. No
SCRUM isso não é diferente. O primeiro dia do Sprint é investido em planejar baseado em objetivos
aquilo que será entregue aos usuários ao final do período.
18
Reunião Diária (Daily SCRUM)
Um evento importante que ocorre todos os dias durante o Sprint é a REUNIÃO DIÁRIA. A
reunião diária (Daily SCRUM) é um encontro entre o SCRUM Master, o Time e qualquer pessoa
interessada no projeto. As reuniões diárias ocorrem num TIME-BOX de 15 minutos no máximo. É
comum ocorrer algumas reuniões com menos de 5 minutos, porém, faça todos se concentrarem
naquilo que realmente é importante para que esse encontro não dure 2 ou 3 horas comprometendo
a produtividade da equipe.
A reunião diária são 15 minutos onde cada membro da equipe dará as suas impressões a
respeito do projeto, respondendo a três perguntas importantes:
É aconselhável que a reunião diária ocorra todo o dia no mesmo horário. Neste momento o
SCRUM Master verifica o andamento do trabalho, observando problemas, verificando a continuidade
do processo, resolvendo mal-entendidos e principalmente liderando as pessoas.
Esses 15 minutos diários são preciosos para manter a comunicação e a sincronização do
status do projeto entre os membros da equipe. A reunião diária promove a auto-organização, um
maior comprometimento das pessoas e um compartilhamento das responsabilidades.
Com relação à pergunta 3, o SCRUM define um conceito chamado IMPEDIMENTO.
IMPEDIMENTOS
Um impedimento é qualquer tipo de problema que um membro do Time está enfrentando que
impede o andamento dos trabalhos. Um impedimento pode ser um computador com defeito ou mal
dimensionado para o trabalho, interferências externas (recursos compartilhados com outros
projetos), dificuldades para se comunicar com Stakeholders, dependências com outras equipes ou
projetos, falhas no processo e etc... Os impedimentos são reportados diretamente ao SCRUM
Master, e o SCRUM Master é responsável por remover essas barreiras.
19
DEFINIÇÃO DE “PRONTO”
Um dos pontos de muita discussão a respeito da adoção do SCRUM é a definição da equipe
a respeito dos itens do Product Backlog finalizados. O SCRUM possui um conceito de valor
agregado (earned value do PMBOK) bem agressivo com relação aos riscos. Vamos analisar a
situação do Sprint Backlog abaixo:
Como já foi dito, os itens mais importantes do Product Backlog são as principais
funcionalidades do sistema (podendo ser casos de uso, cenários, user stories ou outros). Se você
verificar o item “Emitir Pedido”, podemos chegar à conclusão que ele está pronto, pois não existem
mais tarefas a serem realizadas para este item.
O detalhe aqui é que o Time, juntamente com o SCRUM Master, em concordância com o
Product Owner, devem ter a sentença daquilo que o projeto define como “PRONTO”. Por exemplo, é
comum aos desenvolvedores acharem que ao terminar a codificação a funcionalidade está pronta,
porém, conceitualmente no SCRUM, uma determinada funcionalidade do Product Backlog só está
pronta quando é potencialmente implantável, isto é, a funcionalidade só está pronta quando tem o
potencial de entrar em produção assim que o Product Owner decidir. Alguns exemplos de definição
de “pronto”:
20
Esta política é diretamente ligada à visão do SCRUM com relação a objetivos. O SCRUM é
direcionado por OBJETIVOS e não por TAREFAS. Esta abordagem fornece uma base concreta para
que o Product Owner realmente saiba onde o dinheiro dele está sendo investido de uma maneira
clara.
O foco em OBJETIVOS é um dos pilares importantes do SCRUM. Um time que realmente
segue a metodologia SCRUM planeja baseada em OBJETIVOS, executa as tarefas baseadas em
OBJETIVOS e principalmente, reporta o andamento do projeto baseada em OBJETIVOS e não em
porcentagens enganosas. 99% de uma funcionalidade pronta não agrega qualquer valor de negócio
ao software.
Review
$ $
$
Product Backlog
Atualizado
Tempo 4 horas
Figura 14 - Sprint Review
21
2.10. Sprint Retrospective
O SCRUM é um conjunto de práticas focadas em melhoria contínua do processo. O SCRUM,
como um controle empírico, não prega uma rigidez do processo, ao invés, o SCRUM promove a
constante adaptação das práticas mesmo durante o projeto. O processo pode mudar de um Sprint
para o outro sempre buscando uma melhoria na produtividade ou qualidade do produto final. A
retrospectiva do Sprint é uma reunião entre SCRUM Master e a equipe onde duas perguntas são
feitas:
Retrospective
Lições Aprendidas
Tempo 4 horas
Figura 15 - Retrospectiva do Sprint
Nessa reunião o objetivo é a transparência interna da equipe. O SCRUM Master deve avaliar
friamente os pontos apresentados e prover os recursos necessários para que as mudanças ocorram.
Um dos problemas mais comuns é a equipe não buscar ou não se empenhar para que essas
mudanças no processo ocorram. A adaptação contínua é um fundamento importante para controlar
projetos críticos e esses pontos de melhorias devem ser valorizados.
As lições aprendidas é um fundamento em muitas metodologias de gerenciamento de
projeto. Elas representam a memória corporativa e promovem uma maneira para que os projetos
não sofram sempre dos mesmos problemas. Se sua empresa tem muitos projetos ou projetos
simultâneos essas lições aprendidas devem ser compartilhadas em toda a organização.
22