SCRUM é um processo desenvolvimento iterativo e incremental, ele surgiu nos anos 80, mas só começou a ser utilizado para desenvolvimento de software nos anos 90. Uma das coisas mais interessantes nessa metodologia é que ela não se aplica somente a software, o SCRUM pode ser utilizado nos mais diversos tipos de projetos já que sua principal função é o gerenciamento de projeto. O SCRUM pode ser utilizado em conjunto com outros métodos ágeis como o XP (Extreme Programming), por exemplo.

No SCRUM existem papéis bem definidos e diversas etapas que devem ser cumpridas em prazos estipulados visando entregar o produto de forma rápida e que ao mesmo tempo em que atenda as expectativas do cliente. O proprietário do produto ou Product Owner representa os stakeholders e o negócio, a equipe ou Team é formada por cerca de 7 pessoas, as equipes com poucos membros e multidisciplinares são uma das principais características do SCRUM, com o tempo foi observado em diversos projetos que equipes pequenas conseguem muitas vezes serem mais produtivas dependendo da forma como trabalham. Para gerenciar o projeto surge a figura do ScrumMaster que atua como um gerente de projeto, coordenando a equipe para que as metas sejam alcançadas. Agora vejamos as etapas do processo:

Product Backlog

É basicamente uma lista com requisitos e suas prioridades definidas pelo Product Owner. No product backlog são definidas as funcionalidades a serem entregues ao cliente, este documento pode ser alterado a qualquer momento, está é outra característica importante do SCRUM, neste processo a equipe tem que ter ciência da natureza mutável do software, ou seja, as necessidades dos clientes podem e muito provavelmente vão mudar a qualquer momento e um processo de desenvolvimento ágil tem de ser flexível neste ponto. Quando se tem o Product Backlog pronto pode-se partir para a próxima etapa o Sprint Backlog.

Sprint Backlog

Consiste em uma lista de itens selecionados do Product Backog que serão realizados no próximo Sprint, esta lista é definida durante uma reunião chamada Sprint Planning Meeting na qual a equipe decide o que vai ser realizado em determinado Sprint, alias as reuniões são um dos pontos centrais do SCRUM.

Sprint

A julgar pela duração de um sprint (entre 7e 30 dias) o nome sprint(corrida) é bem apropriado, a grosso modo um sprint é o desenvolvimento de um incremento de um software a ser entregue em determinado prazo, mas esse processo envolve algumas nuances a mais que veremos a seguir.

Daily Scrum

É uma reunião diária realizada a cada dia de um sprint, está reunião tem um conjunto de regras bem definido:

  • A reunião começa precisamente no horário marcado.
  • Todos são bem-vindos, mas apenas "poucos" podem falar.
  • O encontro tem duração determinada (Time-Box) e dura 15 minutos.
  • A reunião deve acontecer no mesmo local e mesma hora todos os dias
  • Durante a reunião, cada membro da equipe responde a três perguntas:
    • O que você tem feito desde ontem?
    • O que você está planejando fazer hoje?
    • Você tem algum problema impedindo você de realizar seu objetivo?

Uma das vantagens das reuniões curtas é que evitam o cansaço causado por reuniões delongadas e que muitas vezes acabam sendo pouco produtivas, também é importante destacar que desta forma também se garante que todos os membros da equipe estarão a par de cada progresso feito durante o projeto.

Reunião de Revisão da Sprint (Sprint Review)

Esta reunião tem dois objetivos principais: rever o trabalho concluído e o não concluído e apresentar uma demo ao cliente. Dessa forma a cada sprint o cliente poderá ver uma parte do produto funcionando e participar do processo fazendo sugestões de melhorias.

Retrospectiva da Sprint (Sprint Retrospective)

Está reunião tem o objetivo de rever os erros e acertos no sprint realizado. Está é uma das partes mais importantes do processo, já que nela é possível aprender com os erros e tentar aprimorar o produto, com isso é possível obter o que se procura não só quando se está desenvolvendo software, mas em qualquer outro produto: a melhoria continua.

Conclusão

Resumindo o SCRUM é um processo que se bem utilizado pode agregar muito valor ao produto que vai ser entregue. No entanto é preciso enfatizar que nenhum dos métodos ágeis existentes faz milagre, você até pode conseguir entregar mais rápido, mas para conseguir usar todo o potencial dos métodos ágeis será preciso ter uma boa equipe que se comprometa em colaborar para melhoria constante do processo, é como dizem: só a pratica leva a perfeição.