Uma breve história sobre o Scrum
A história do Scrum pode ser traçada desde 1986 no artigo da Harvard Business Review (HBR) intitulado “The New Product Development Game”, de Hirotaka Takeuchi e Ikujiro Nonaka. Este artigo descreve como empresas como Honda, Canon e Fuji-Xerox produzem novos produtos em todo o mundo usando uma abordagem escalável e baseada em equipe para o desenvolvimento de produtos. Esta abordagem enfatiza a importância de capacitar equipes auto-organizadas.
Em 1993, Jeff Sutherland e sua equipe na Easel Corporation criaram o processo Scrum para ser usado em processos de desenvolvimento de software, combinando os conceitos do artigo de 1986 com os conceitos de desenvolvimento orientado a objetos, controle empírico de processos, desenvolvimento iterativo e incremental, processos de software e melhoria de produtividade, bem como o desenvolvimento de sistemas complexos e dinâmicos.
A Metodologia Scrum e Processo
O Scrum é executado em blocos temporários que são curtos e periódicos, chamados Sprints, que normalmente variam de 2 a 4 semanas, que é o prazo para feedback e reflexão. Cada Sprint é uma entidade por si só, ou seja, fornece um resultado completo, uma variação do produto final que deve ser capaz de ser entregue ao cliente com o menor esforço possível quando solicitado.
O processo tem como ponto de partida, uma lista de objetivos/requisitos que compõem o plano do projeto. É o cliente do projeto que prioriza estes objetivos considerando um equilíbrio entre o valor e o custo do mesmo, que é como são determinadas as iterações e consequentes entregas.
Por um lado, o mercado exige qualidade, entrega rápida a custos menores, para a qual uma empresa deve ser muito ágil e flexível no desenvolvimento de produtos para alcançar ciclos de desenvolvimento curtos que possam atender a demanda dos clientes sem prejudicar a qualidade do resultado. É uma metodologia muito fácil de implementar e muito popular pelos resultados rápidos que se obtêm.
A metodologia Scrum é utilizada principalmente para o desenvolvimento de software, mas outros setores também estão aproveitando seus benefícios ao implementar esta metodologia em seus modelos organizacionais, tais como equipes de vendas, marketing, RH, etc.
No Scrum, a equipe se concentra na construção de software de qualidade. O proprietário de um projeto Scrum se concentra em definir quais são as características que o produto deve ter para desenvolver (o que desenvolver, o que não desenvolver e em que ordem) e para superar qualquer obstáculo que possa dificultar a tarefa da equipe de desenvolvimento.
A equipe Scrum consiste nos seguintes papéis:
Scrum Master: A pessoa que lidera a equipe, orientando-os a cumprir com as regras e processos do framework. O Scrum Master gerencia a redução de impedimentos do projeto e trabalha com o Product Owner para maximizar o ROI. O Scrum Master é responsável por manter o Scrum em dia, fornecendo orientação, mentoria e treinamento para as equipes caso seja necessário.
“O trabalho do Scrum Master é orientar a equipe em direção à melhoria contínua – perguntar com regularidade, ‘Como podemos fazer melhor o que fazemos?’” – Jeff Sutherland
Product Owner (PO): É o representante das partes interessadas e dos clientes que utilizam o software. Eles se concentram na parte comercial e são responsáveis pelo ROI do projeto. Eles traduzem a visão do projeto para a equipe, validam os benefícios em histórias a serem incorporadas ao Backlog do Produto e as priorizam com regularidade.
Equipe: Um grupo de profissionais com os conhecimentos técnicos necessários que desenvolvem o projeto em conjunto, desenvolvendo as histórias com as quais se comprometem no início de cada sprint.
O Scrum apresenta muitas vantagens em relação a outras metodologias ágeis de desenvolvimento. É atualmente o framework de referência mais utilizado e confiável na indústria de software. Abaixo estão alguns dos benefícios conhecidos do Scrum:
Facilmente Escalável: Os processos Scrum são iterativos e são executados dentro de períodos de trabalho específicos, o que facilita o foco da equipe em funcionalidades definidas para cada período. Isto não só tem o benefício de alcançar melhores resultados de acordo com as necessidades do usuário, mas também dá às equipes a capacidade de dimensionar os módulos em termos de funcionalidade, design, escopo e características de forma ordenada, transparente e simples.
Cumprimento das Expectativas: O cliente estabelece suas expectativas indicando o valor que cada requisito/história do projeto traz, a equipe os estima e com estas informações o Product Owner estabelece sua prioridade. Regularmente, nas demonstrações de sprint, o Product Owner verifica se os requisitos foram atendidos e transmite o feedback para a equipe.
Flexível à Alterações: Reação rápida às mudanças nos requisitos gerados pelas necessidades dos clientes ou desenvolvimentos de mercado. A metodologia é projetada para se adaptar às mudanças nos requisitos que os projetos complexos geram.
Redução do Tempo para o Mercado: O cliente pode começar a utilizar as funcionalidades mais importantes do projeto antes que o produto esteja completamente pronto.
Maior Qualidade de Software: O método de trabalho e a necessidade de obter uma versão funcional após cada iteração, ajuda a obter um software de maior qualidade.
Previsão Precisa: Usando esta metodologia, conhecemos a velocidade média da equipe por sprint (pontos de história), com a qual, consequentemente, é possível estimar quando uma determinada funcionalidade que ainda está no backlog estará disponível.
Redução de Riscos: O fato de realizar as funcionalidades mais valiosas em primeiro lugar e de conhecer a velocidade com que a equipe avança no projeto, permite eliminar os riscos de forma eficaz e antecipada.
Cada um dos eventos de Scrum facilita a adaptação de alguns aspectos do processo, do produto, do progresso ou das relações.
Sprint: Sprint é a unidade básica de trabalho para uma equipe Scrum. Esta é a principal característica que marca a diferença entre o Scrum e outros modelos de desenvolvimento ágil.
Planejamento da Sprint: O objetivo do Planejamento da Sprint é definir o que será feito na Sprint e como será feito. Esta reunião é realizada no início de cada Sprint e é definida como abordará o projeto a partir das etapas e prazos do Backlog do Produto. Cada Sprint é composto de características diferentes.
Daily Scrum: O objetivo da Daily Scrum é avaliar o progresso e a tendência até o final da Sprint, sincronizando as atividades e criando um plano para as próximas 24 horas. É uma reunião curta que se realiza diariamente durante o período da Sprint. Três perguntas são respondidas individualmente: O que eu fiz ontem? O que eu vou fazer hoje? De que ajuda eu preciso? O Scrum Master deve tentar resolver os problemas ou obstáculos que surgirem.
Revisão da Sprint: O objetivo da revisão da sprint é mostrar que trabalho foi concluído no que diz respeito ao acúmulo do backlog do produto para entregas futuras. O sprint finalizado é revisado e já deve haver um avanço claro e tangível no produto a ser apresentado ao cliente.
Retrospectiva da Sprint: A equipe revisa os objetivos completados da corrida terminada, anota os erros e acertos, para não repetir os erros. Esta etapa serve para implementar melhorias a partir do ponto de vista do processo de desenvolvimento. O objetivo da retrospectiva da sprint é identificar possíveis melhorias no processo e gerar um plano para implementá-las na próxima Sprint.
Artefatos do Scrum são projetados para garantir a transparência das informações-chave na tomada de decisões.
Backlog do Produto (PB): O backlog do produto é uma lista que reúne tudo o que o produto precisa para satisfazer os clientes potenciais. Ela é preparada pelo Product Owner e as funções são priorizadas de acordo com o que é mais e menos importante para o negócio. O objetivo é que o Product Owner responda à pergunta “O que deve ser feito”.
Backlog da Sprint (SB): É um subconjunto de itens do backlog do produto, que são selecionados pela equipe para executar durante a sprint no qual eles vão trabalhar. A equipe estabelece a duração de cada sprint. Normalmente o backlog da sprint é exibido em quadros físicos chamados de Quadro de Scrum – que torna o processo de desenvolvimento visível para todos que entram na área de desenvolvimento.
Incremento: O Incremento é a soma de todas as tarefas, casos de uso, histórias de usuários, backlogs de produtos e qualquer elemento que foi desenvolvido durante a sprint e que será disponibilizado para o usuário final na forma de Software.