O framework Scrum

O Scrum é um framework de desenvolvimento iterativo de produtos, que tem suas raízes no desenvolvimento de software ágil, dentro do qual pessoas são estimuladas a resolver problemas complexos e adaptativos, de forma incremental.

Esta postagem é uma introdução básica ao Scrum, e a primeira de uma série onde pretendo explorar os diversos princípios, estruturas, papéis e cerimônias, além de experiências práticas com o Scrum.

Modelo do Framework Scrum
Modelo do Framework Scrum. Fonte: Wikipedia

O propósito do Scrum

Buscando por sua definição no guia oficial do Scrum, temos que:

Scrum é um framework para desenvolver e manter produtos complexos.

Através desta breve descrição, já podemos perceber que o Scrum tem como principal objetivo tratar o desafio da complexidade no desenvolvimento de produtos. Essa é uma noção importante, pois reconhece que o desenvolvimento de produtos, na maioria dos casos, não pode ser simplificado a modelos previsíveis, com padrões de causa e efeito repetidos, que é a base de muitos processos e metodologias tradicionais de desenvolvimento de produtos. O framework Scrum, por entender que os projetos normalmente são de natureza imprevisível, oferece mecanismos que vão apoiar as pessoas a tratar e resolver problemas complexos e adaptativos.

É importante entender que o Scrum não é uma metodologia e nem oferece técnicas de como construir produtos. Ele é um framework no qual podemos utilizar diversas metodologias e técnicas.

O Scrum é baseado no empirismo, que afirma que o conhecimento vem da experiência e da tomada de decisão baseados no que já é conhecido, e três são os pilares que apoiam o processo empírico:

  • Transparência: Os aspectos significativos do processo devem ser visíveis a todos os responsáveis pelos resultados.
  • Inspeção: Os envolvidos devem inspecionar regularmente o progresso do trabalho, para identificar variações.
  • Adaptação: Uma vez encontradas variações, devem ser realizados ajustes para minimizar os desvios o mais rápido possível.

O time do Scrum

O time do Scrum é um time multidisciplinar, possuindo todas as competências necessárias para realizar o trabalho, e que se auto-organiza da melhor forma que encontrar, ao invés de ser dirigido por pessoas de fora do time. Adotando este modelo o Scrum estimula a flexibilidade, criatividade e produtividade.

O time do Scrum é enxuto e possui apenas três papéis:

  • Development team: O time de desenvolvimento, responsável por realizar o trabalho. É um time que possui todas as competências necessárias para realizar o trabalho em questão, e seu tamanho pode variar de 3 a 9 profissionais. Não há distinção de papéis entre os membros do time de desenvolvimento.
  • Product Owner (PO): É um papel chave do Scrum, que tem por responsabilidade maximizar o valor de negócio do que é produzido pelo time de desenvolvimento. O PO organiza o backlog do produto, priorizado-o de forma alinhada com os resultados de negócio esperados pelas partes interessadas do produto.
  • Scrum Master (SM): É o responsável por auxiliar o time do Scrum a compreender os princípios, artefatos e eventos do Scrum, e garantir que ele seja corretamente aplicado.

Os eventos do Scrum

O Scrum é estruturado em eventos, cada um com seu propósito específico, que juntos criam uma rotina de trabalho capaz de estimular os princípios do Scrum, e minimizar necessidade de reuniões fora do processo.

A Sprint é a essência, o coração, do Scrum. É cada um dos ciclos de desenvolvimento, com duração máxima de 1 mês. É pela Sprint que o time desenvolve de forma iterativa, adicionando valor real ao produto de forma recorrente. Além disso, a Sprint limita o risco do projeto ao custo de no máximo um mês.

As Sprints são compostas pelo trabalho de desenvolvimento propriamente dito, mais o seguinte conjunto de eventos:

  • Sprint Planning: A reunião de planejamento é o momento onde o time do Scrum identifica o que será produzido na próxima Sprint. É o primeiro evento de uma Sprint. Nela é definido um objetivo, e itens do backlog do produto são levados para o backlog da Sprint.
  • Daily Scrum: É uma rápida reunião diária do time de desenvolvimento, onde cada membro do time esclarece o que fez desde a última reunião diária, o que fará até a próxima, e identifica obstáculos para o andamento da Sprint. O time a utiliza para inspecionar o andamento da Sprint.
  • Product Backlog Refinement: É a reunião na qual o time de desenvolvimento analisa, detalha, estima e ordena os itens do backlog do produto, junto com o PO, de forma que se tenha um horizonte de trabalho bem defindo para as próximas Sprints.
  • Sprint Review: É uma reunião realizada ao término da Sprint, para fins de inspeção do incremento produzido na Sprint e adequação do backlog do produto, se necessário. Esta reunião envolve partes interessadas de fora do time do Scrum, promovendo feedback e colaboração.
  • Sprint Retrospective: Na reunião de retrospectiva o time do Scrum tem a oportunidade de inspecionar o seu próprio processo de trabalho, a fim de promover melhorias a este de forma contínua.

Os artefados do Scrum

O framework Scrum também contempla um conjunto de artefatos. Por não se tratar de metodologia, o framework não entra no mérito de como estes artefatos são definidos ou produzidos, apenas especifica o seu propósito e características, bem como a forma que ele é utilizado dentro do Scrum. São eles:

  • Product Backlog: O backlog do produto é a listagem dos itens a serem desenvolvidos no produto, e é de responsabilidade do Product Owner. No Scrum, o backlog do produto é único, ou seja, não deve existir outra fonte de requisitos do produto. Esta é uma ferramenta em constante adaptação durante o desenvolvimento do produto. Contempla todos os requisitos já descobertos do produto.
  • Sprint Backlog: O backlog da Sprint é elaborado durante a reunião de planejamento e, de acordo com o objetivo da Sprint, o time do Scrum aloca nele os itens necessários, selecionados do backlog do produto. Os itens do backlog da Sprint são executados (implementados) durante o ciclo de desenvolvimento da Sprint, e são inspecionados durante a reunião de revisão da Sprint.
  • Increment: O resultado da Sprint é um incremento potencialmente utilizável do produto, ou seja, ele tem qualidade para ser realmente utilizado após a Sprint, seguindo critérios definidos pelo próprio time do Scrum.

 

O objetivo desta postagem foi de oferecer uma visão superficial dos conceitos que compõem o Scrum. Embora sua teoria não seja complexa, por se tratar de um framework bastante leve, o domínio da aplicação do framework não é nada trivial.

Em futuras publicações irei trabalhar com profundidade cada um dos elementos aqui expostos. Caso você esteja enfrentando algum desafio na adoção do Scrum, ou tenha curiosidade pelo aprofundamento de algum ponto em específico, deixe um comentário, que tentarei priorizá-lo na medida do possível!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s