SCRUM
Abaixo estão listadas algumas das principais características da metodologia SCRUM, a única que utilizaremos está em negrito.
Scrum é um método ágil para Gerenciamento de Projetos.Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de projetos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no livro "The New New Product Development Game" (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares (cross-functional) produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação do Scrum no Rugby. Jeff Sutherland, John Scumniotales, e Jeff McKenna documentaram, conceberam e implementaram o Scrum, como descrito abaixo, na empresa Easel Corporation em 1993, incorporando estilos de gerenciamento observados por Takeuchi e Nonaka. Em 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo em desenvolvimento de software em todo o mundo.
Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.
A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planejamento de um casamento.
Mesmo que o Scrum tenha sido idealizado para ser usado em gestão de projetos de desenvolvimento de software, ele também pode ser usado para gerenciar equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.
Características de Scrum
- Cada sprint é uma iteração que segue o ciclo PDCA e entrega um incremento de software pronto.
- Um backlog é um conjunto de requisitos, priorizado pelo Product Owner (cliente);
- Há entrega de um conjunto fixo de itens do backlog em uma série de iterações curtas ou sprints;
- Uma breve reunião diária ou scrum, onde cada participante fala sobre o progresso conseguido, o trabalho a ser realizado e/ou o que o impede de seguir avançando (também chamado de Standup Meeting, já que os membros do time geralmente ficam em pé).
- Uma breve sessão de planejamento, na qual os itens do backlog para uma sprint (iteração) são definidos;
- Uma retrospectiva, na qual todos os membros da equipe refletem sobre a sprint passada.
O Scrum é facilitado por um Scrum Master, que tem como função primária remover qualquer impedimento à habilidade de uma equipe de entregar o objetivo do sprint. O Scrum Master não é o líder da equipe (já que as equipes são auto-organizadas) mas atua como um firewall entre a equipe e qualquer influência desestabilizadora. Outra função extremamente importante de um Scrum Master é o de assegurar que a equipe esteja utilizando corretamente as práticas de Scrum, motivando-os e mantendo o foco na meta da Sprint.
Scrum permite a criação de equipes auto-organizadas, encorajando a comunicação verbal entre todos os membros da equipe e entre todas as disciplinas que estão envolvidas no projeto.
Um princípio chave do Scrum é o reconhecimento de que desafios fundamentalmente empíricos não podem ser resolvidos com sucesso utilizando uma abordagem tradicional de "controle". Assim, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando na maximização da habilidade da equipe de responder de forma ágil aos desafios emergentes.
Um dos grandes defeitos do Scrum, porém, é a abordagem de "receita de bolo" do gerenciamento de projetos exemplificado no Project Management Body of Knowledge ou Prince2, que tem como objetivos atingir qualidade através da aplicação de uma série de processos prescritos.
Algumas práticas de Scrum
- Clientes se tornam parte da equipe de desenvolvimento (os clientes devem estar genuinamente interessados na saída);
- Entregas freqüentes e intermediárias de funcionalidades 100% desenvolvidas;
- Planos freqüentes de mitigação de riscos desenvolvidos pela equipe;
- Discussões diárias de status com a equipe;
- A discussão diária na qual cada membro da equipe responde às seguintes perguntas:
- O que fiz desde ontem?
- O que estou planejando fazer até amanhã?
- Existe algo me impedindo de atingir minha meta?
- Transparência no planejamento e desenvolvimento;
- Reuniões freqüentes com os stakeholders (todos os envolvidos no processo) para monitorar o progresso;
- Problemas não são ignorados e ninguém é penalizado por reconhecer ou descrever qualquer problema não visto;
- Locais e horas de trabalho devem ser energizadas, no sentido de que "trabalhar horas extras" não necessariamente significa "produzir mais".
|