Introdução ao Scrum
Scrum vem sendo utilizado para o desenvolvimento de produtos complexos desde o início dos anos 90. Este guia descreve como usar o Scrum para desenvolver produtos. Scrum não é um processo ou uma técnica para o desenvolvimento de produtos. Ao invés disso, é um framework dentro do qual você pode empregar diversos processos e técnicas. O papel do Scrum é fazer transparecer a eficácia relativa das suas práticas de desenvolvimento para que você possa melhorá-las, enquanto provê um framework dentro do qual produtos complexos podem ser desenvolvidos.
PESSOAS E OS SEUS PAPÉIS
Cada pessoa possui um papel dentro de um time scrum: Product Owner (dono do produto, cliente), Scrum Master (líder do time), Time (desenvolvedores, analistas, testers).
Scrum Master: O ScrumMaster é responsável por garantir que o Time Scrum esteja aderindo aos valores do Scrum, às práticas e às regras. O ScrumMaster ajuda o Time Scrum e a organização a adotarem o Scrum. O ScrumMaster educa o Time Scrum treinando-o e levando-o a ser mais produtivo e a desenvolver produtos de maior qualidade. O ScrumMaster ajuda o Time Scrum a entender e usar autogerenciamento e interdisciplinaridade. No entanto, o ScrumMaster não gerencia o Time Scrum; o Time Scrum é auto-organizável.
Product Owner: O Product Owner é a única pessoa responsável pelo gerenciamento do Backlog do Produto e por garantir o valor do trabalho realizado pelo Time. Essa pessoa mantém o Backlog do Produto e garante que ele está visível para todos. Todos sabem quais itens têm a maior prioridade, de forma que todos sabem em que se irá trabalhar. O Product Owner é uma pessoa, e não um comitê. Podem existir comitês que aconselhem ou influenciem essa pessoa, mas quem quiser mudar a prioridade de um item, terá que convencer o Product Owner. Empresas que adotam Scrum podem perceber que isso influencia seus métodos para definir prioridades e requisitos ao longo do tempo.
Time: Times de desenvolvedores transformam o Backlog do Produto em incrementos de funcionalidades potencialmente entregáveis em cada Sprint. Times também são interdisciplinares: membros do Time devem possuir todo o conhecimento necessário para criar um incremento no trabalho. Membros do Time frequentemente possuem conhecimentos especializados, como programação, controle de qualidade, análise de negócios, arquitetura, projeto de interface de usuário ou projeto de banco de dados. No entanto, os conhecimentos que os membros do Time devem compartilhar - isto é, a habilidade de pegar um requisito e transformá-lo em um produto utilizável - tendem a ser mais importantes do que aqueles que eles não dividem. As pessoas que se recusam a programar porque são arquitetas ou designers não se adaptam bem a Times. Todos contribuem, mesmo que isso exija aprender novas habilidades ou lembrar-se de antigas. Não há títulos em Times, e não há exceções a essa regra. Os Times também não contém subtimes dedicados a áreas particulares como testes ou análise de negócios.
Times também são auto-organizáveis. Ninguém - nem mesmo o ScrumMaster - diz ao time como transformar o Backlog do Produto em incrementos de funcionalidades entregáveis. O Time descobre por si só. Cada membro do Time aplica sua especialidade a todos os problemas. A sinergia que resulta disso melhora a eficiência e eficácia geral do Time como um todo.
A composição do Time pode mudar ao final da Sprint. Toda vez que o Time muda, a produtividade ganha através da auto-organização é reduzida. Deve-se tomar cuidado ao mudar a composição do Time.
TIME-BOXES
Os Eventos com Duração Fixa (Time-Boxes) no Scrum são a Reunião de Planejamento da Versão para Entrega, a Sprint, a Reunião de Planejamento da Sprint, a Revisão da Sprint, a Retrospectiva da Sprint e a Reunião Diária.
REUNIÃO DE PLANEJAMENTO DA VERSÃO PARA ENTREGA
O propósito do planejamento da versão para entrega é o de estabelecer um plano e metas que o Time Scrum e o resto da organização possam entender e comunicar. O planejamento da versão para entrega responde às questões: “Como podemos transformar a visão em um produto vencedor da melhor maneira possível? Como podemos alcançar ou exceder a satisfação do cliente e o Retorno sobre Investimento (ROI) desejados?” O plano da versão para entrega estabelece a meta da versão, as maiores prioridades do Backlog do Produto, os principais riscos e as características gerais e funcionalidades que estarão contidas na versão. Ele estabelece também uma data de entrega e custo prováveis que devem se manter se nada mudar. A organização pode então inspecionar o progresso e fazer mudanças nesse plano da versão para entrega a cada Sprint.
Ao se utilizar Scrum, os produtos são construídos iterativamente, de modo que cada Sprint cria um incremento do produto, iniciando pelo de maior valor e maior risco. Mais e mais Sprints vão adicionando incrementos ao produto. Cada incremento é um pedaço potencialmente entregável do produto completo. Quando já tiverem sido criados incrementos suficientes para que o produto tenha valor e uso para seus investidores, o produto é entregue.
Planejamento de versão para entrega requer estimar e priorizar o Backlog do Produto para a Versão. Há diversas técnicas para fazê-lo que estão fora do alcance do Scrum, mas que apesar disso são úteis quando usadas com ele.
A SPRINT
A Sprint é uma iteração. Sprints são eventos com duração fixa. Durante a Sprint, o ScrumMaster garante que não será feita nenhuma mudança que possa afetar a Meta da Sprint. Tanto a composição do time quanto as metas de qualidade devem permanecer constantes durante a Sprint. As Sprints contêm e consistem na reunião de Planejamento de Sprint, o trabalho de desenvolvimento, a Revisão da Sprint e a Retrospectiva da Sprint. As Sprints ocorrem uma após a outra, sem intervalos entre elas.
REUNIÃO DE PLANEJAMENTO DA SPRINT
A Reunião de Planejamento da Sprint é quando a iteração é planejada. É fixada em oito horas de duração para uma Sprint de um mês. Para Sprints mais curtas, aloca-se para essa reunião aproximadamente 5% do tamanho total da Sprint, e ela consiste de duas partes. A primeira parte, um evento com duração fixa em quatro horas, é quando é decidido o que será feito na Sprint. A segunda parte, outro evento com duração fixa em quatro horas, é quando o Time entende como desenvolverá essa funcionalidade em um incremento do produto durante a Sprint.
REVISÃO DA SPRINT
Ao final da Sprint, é feita uma reunião de Revisão da Sprint. Para Sprints de um mês, essa é uma reunião com duração fixa em quatro horas. Para Sprints de durações mais curtas, essa reunião não deve tomar mais do que 5% do total da Sprint. Durante a Revisão da Sprint, o Time Scrum e as partes interessadas colaboram sobre o que acabou de ser feito. Baseados nisso e em mudanças no Backlog do Produto feitas durante a Sprint, eles colaboram sobre quais são as próximas coisas que podem ser feitas. Essa é uma reunião informal, com a apresentação da funcionalidade, que tem a intenção de promover a colaboração sobre o que fazer em seguida.
RETROSPECTIVA DA SPRINT
Após a Revisão da Sprint e antes da próxima reunião de Planejamento da Sprint, o Time Scrum tem uma reunião de Retrospectiva da Sprint. Nessa reunião, com duração fixa em três horas, o ScrumMaster encoraja o Time a revisar, dentro do modelo de trabalho e das práticas do processo do Scrum, seu processo de desenvolvimento, de forma a torná-lo mais eficaz e gratificante para a próxima Sprint. Muitos livros documentam técnicas que são úteis em Retrospectivas.
REUNIÃO DIÁRIA
Cada time se encontra diariamente para uma reunião de 15 minutos chamada Reunião
Diária. Essa reunião é sempre feita no mesmo horário e no mesmo local durante as
Sprints. Durante a reunião, cada membro explica:
- O que ele realizou desde a última reunião diária;
- O que ele vai fazer antes da próxima reunião diária; e
- Quais obstáculos estão em seu caminho.
As Reuniões Diárias melhoram a comunicação, eliminam outras reuniões, identificam e removem impedimentos para o desenvolvimento, ressaltam e promovem a tomada rápida de decisões e melhoram o nível de conhecimento de todos acerca do projeto.
ARTEFATOS DO SCRUM
Os artefatos do Scrum incluem o Backlog do Produto, o Burndown da Versão para Entrega, o Backlog da Sprint e o Burndown da Sprint.
BACKLOG DO PRODUTO
Os requisitos para o produto que o(s) Time(s) está(ão) desenvolvendo estão listados no Backlog do Produto. O Product Owner é o responsável pelo Backlog do Produto, por seu conteúdo, por sua disponibilidade e por sua priorização. O Backlog do Produto nunca está completo. A seleção inicial para o seu desenvolvimento somente mostra os requisitos inicialmente conhecidos e melhor entendidos. O Backlog do Produto evolui à medida que o produto e o ambiente em que ele será usado evoluem. O Backlog é dinâmico, no sentido de que ele está constantemente mudando para identificar o que o produto necessita para ser apropriado, competitivo e útil. Enquanto existir um produto, o Backlog de Produto também existirá.
O Backlog do Produto representa tudo que é necessário para desenvolver e lançar um produto de sucesso. É uma lista de todas as características, funções, tecnologias, melhorias e correções de defeitos que constituem as mudanças que serão efetuadas no produto para versões futuras. Os itens do Backlog do Produto possuem os atributos de descrição, prioridade e estimativa. A prioridade é determinada por risco, valor e necessidade. Há diversas técnicas para dar valor a esses atributos.
BACKLOG DA SPRINT
O Backlog da Sprint consiste nas tarefas que o time executa para transformar itens do Backlog do Produto em um incremento “pronto”. Muitas delas são elaboradas durante a Reunião de Planejamento da Sprint. O Backlog da Sprint é todo trabalho que o Time identifica como necessário para alcançar a Meta da Sprint. Os itens do Backlog da Sprint devem ser decompostos. A decomposição deve ser suficiente para que mudanças no progresso possam ser entendidas na Reunião Diária.
PRONTO
Scrum exige que os Times desenvolvam um incremento de funcionalidade do produto a cada Sprint. Esse incremento deve ser potencialmente entregável, pois o Product Owner pode optar por implantar a funcionalidade imediatamente. Para isso ser possível, o incremento deve ser um pedaço completo do produto. Ele deve estar “pronto”. Cada incremento deve ser adicionado a todos os incrementos anteriores e exaustivamente testado, garantindo que todos os incrementos funcionem juntos.
REFERÊNCIAS
Guia do Scrum por Ken Schuwaber, Maio de 2009 - Scrum Alliance
TREINAMENTO
O scrum pode ser aplicado em qualquer tipo de projeto, e tem se popularizado devido a sua eficácia nos projetos em que é utilizado.
Caso a sua empresa precise de treinamento ou consultoria em Scrum, entre em contato conosco.
