Baseado em práticas de gerenciamento já fundamentadas no Extreme Programming e no RUP, o SCRUM produz os benefícios do desenvolvimento ágil com a vantagem de ser uma implementação bem simples.
O SCRUM aumenta significativamente a produtividade e reduz o tempo para obter resultados, pois facilita a adaptação a processos empíricos de desenvolvimento de sistemas.
Elementos 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.
Papeis
Product Owner
- Define as funcionalidades do produto;
- Concentra as informações vindas de usuários, stakeholders ou do mercado de maneira que se obtenha uma visão única dos requisitos do sistema;
- Sua maior responsabilidade é o ROI do projeto
- Prioriza o Product Backlog
- Pode alterar as prioridades fora do Sprint
- Aceita ou rejeita os resultados dos trabalhos
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 (ver definição abaixo) para o Product Owner e outros Stakeholders
SCRUM Master
O SCRUM Master desempenha um papel de liderança, gerenciando os interesses do Product Owner mediante o Time. Numa abordagem tradicional de gerenciamento de projetos, o SCRUM Master seria um Gerente de Projetos, porém, essa nomenclatura foi substituída para diferenciar o foco de liderança necessário para que um processo empírico funcione. Um SCRUM Master eficiente deve:
- Melhorar a vida e a produtividade do time de desenvolvimento promovendo a criatividade e o conhecimento
- Estimular uma comunicação e cooperação muito próxima entre todas as pessoas do time
- Proteger o time de interferências externas
- Remover Impedimentos ("Impediments")
- Garantir que o processo está sendo respeitado
- Convidar pessoas apropriadas para as reuniões de acompanhamento (Daily SCRUM, Sprint Review e Sprint Retrospective)
- Remover barreiras entre o desenvolvimento e o cliente para garantir que realmente é o cliente que está direcionando as funcionalidades desenvolvidas
- Auxiliar o Product Owner a maximizar o ROI atingindo os seus objetivos com o SCRUM
- Promover práticas de engenharia para que cada pedaço de funcionalidade seja potencialmente implantável.
O SCRUM também possui fases para definição da visão do projeto e também para um estudo de viabilidade.
Nível Estratégico (Product Owner)
1.Definir os problemas a serem resolvidos
2.Estabelecer a visão e um escopo de alto nível
3.Investigar a viabilidade do projeto
4.Fornecer esforço e prazo preliminares
5.Conseguir recursos como financiamento
Produto: visão e backlog inicial
Nível Tático (SCRUM Master)
1.Planejar Objetivos dos Sprints
2.Resolver Impedimentos
3.Liderar a Equipe
4.Promover a Comunicação
Produto: Backlog
Nível Operacional (team)
1.Realizar Objetivos dos Sprints
2.Aplicar Boas Práticas de Engenharia
3.Adequar mudanças
4.Garantir a Qualidade
Produto: Sprint Backlog e Software funcionando
Sprint (a iteração do SCRUM)
No SCRUM, a iteração é chamada de SPRINT. Durante esse período o TIME trabalha nos objetivos determinados para o SPRINT. Esse período de tempo pode variar, mas geralmente é um período de 30 dias.
Um projeto é composto por vários sprints do mesmo tamanho.
TIME-BOXING: Período Fechado de Tempo
Outro conceito importante para as práticas do SCRUM é o TIME-BOXING. Um SPRINT de 30dias é 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.
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.
O Planejamento do Sprint
No primeiro dia do Sprint é feito o planejamento do trabalho a ser desenvolvido. Esse planejamento é feito através de uma reunião composta de duas partes.
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, uma 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.
Abaixo um exemplo de Product Backlog.
Na segunda parte do dia do planejamento, o SCRUM Master se reúne com o time e com o Product Owner (opcionalmente) para planejar o Sprint baseado no Product Backlog criado ou atualizado. O trabalho nessa segunda parte é estabelecer e firmar os objetivos do Sprint, selecionando quais itens prioritários do Backlog serão implantados completamente até o fim do Sprint.
Para isso, métricas são adotadas para quantificar o esforço de cada item do Backlog a fim de estimar a velocidade da equipe.
Note que é importante ressaltar que o Product Owner e o SCRUM Master somente definiram a ordem das coisas, mas não cabe a eles definir os prazos. Os prazos, como boa prática de todas as metodologias de gerenciamento de projeto, são dados pelo Time que é responsável pela parte produtiva do projeto.
Após ter selecionado quais itens potencialmente implantáveis serão resolvidos neste Sprint, o Time quebra cada item selecionado em tarefas menores que podem ser cumpridas em um dia (desejável). Esta quebra de cada item é chamado SPRINT BACKLOG e o time define que cada uma dessas tarefas menores esclarece tudo que é necessário ser feito para implantar os itens do
PRODUCT BACKLOG selecionados para esse Sprint.
Abaixo o sprint backlog
Com o Sprint Backlog definido a idéia é que os integrantes do Time peguem tarefas para realizar. Isso consiste em retirar o post-it da coluna “Pendente” e colocá-lo na coluna “Alocado”,
conforme a figura a seguir:
Como os itens estão ordenados de acordo com a prioridade do Product Backlog, é importante que os itens no topo da lista sejam resolvidos primeiro. Se o foco é resolver os itens em ordem, seria estranho que um post-it do item “Integração com ERP” estivesse alocado no início do Sprint.
Uma característica importante é que o membro do Time é quem seleciona a tarefa que ele vai fazer. Isso permite que as pessoas tenham um maior controle e comprometimento sobre o
próprio trabalho, sem que alguém esteja delegando tarefas repetidamente de uma maneira prescritiva. Um time multi-funcional e auto-organizável traz um ótimo ambiente de trabalho e uma melhor performance no desenvolvimento.
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:
- O que eu fiz desde a última reunião diária?
- O que eu pretendo fazer até amanhã?
- Tem alguma coisa impedindo o meu trabalho?
É 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.
O estado de pronto
Quando as tarefas constantes na coluna alocado passarem para a coluna pronto (ver figura abaixo), finalizamos aquele item do backlog.
A definição de “pronto” é um importante aspecto para avaliação no andamento do projeto, isso porque a metodologia SCRUM não considera as funcionalidades 50% realizadas como é comum nas abordagens tradicionais de gerenciamento de projeto. Para o SCRUM, um item só está pronto quando atende à definição de “pronto” do time e o projeto só avança quando itens são dados como completamente “prontos” no Product Backlog. No SCRUM, 20% da codificação feita não significa nada para o andamento do projeto.
Sprint Review
Ao final do Sprint é feito o Sprint Review. A Revisão é um importante ponto de inspeção da metodologia SCRUM. Esta reunião ocorre no último dia do Sprint e representa o momento que a equipe e o SCRUM Master demonstram as funcionalidades potencialmente implantáveis executadas para o Product Owner.
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:
- O que foi bom durante o Sprint?
- O que pode ser melhorado?
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.
Neste post tentamos mostrar a essência do SCRUM.
Até a próxima!
Nenhum comentário:
Postar um comentário