Scrum: A Meta da Sprint
Sem dúvidas hoje o Scrum é uma das principais metodologias utilizadas por equipes ágeis de desenvolvimento de software ao redor do mundo. Talvez isso se deva por alguns motivos como:
- Sua simplicidade
- Seu refinamento com o passar dos anos
- Seu modelo Iterativo e Incremental
- Seu modelo de Time-Box(que ajuda em previsibilidade)
- Hoje ele ser um Framework(focando no o que deve ser feito, e não no como deve ser feito)
O Scrum prescreve que o desenvolvimento do software seja feito em iterações, chamadas de Sprint, com duração máxima de 1 mês, sendo que ao final de cada Sprint o time de desenvolvimento deve entregar um incremento pronto do produto. Ao iniciar uma nova Sprint o primeiro evento a ser realizado é o Sprint Planning, cujo objetivo é definir o que pode ser entregue como incremento pronto do produto ao final da Sprint que está se iniciando.
Durante o Planning uma coisa muito importante que deve ser feita, em colaboração entre todos do time, é a definição da Meta da Sprint.
Segundo o Scrum Guide, guia oficial que explica o funcionamento do Scrum, a meta da Sprint é definida como:
The Sprint Goal is an objective that will be met within the Sprint through the implementation of the Product Backlog, and it provides guidance to the Development Team on why it is building the Increment.
Ou seja, a meta deve servir como guia para o time de desenvolvimento, pois ela reflete o que se espera alcançar ao final da Sprint, do ponto de vista de negócio.
No nosso curso de Scrum gostamos de ensinar aos alunos que eles podem definir a meta como uma Frase que descreve o valor a ser entregue aos clientes/usuários ao final da Sprint, para que assim seja possível inspirar o time de desenvolvimento, pois eles conseguirão entender melhor o porquê de estarem desenvolvendo os itens que foram escolhidos no planning e como isso vai mudar a vida dos clientes/usuários para melhor.
Mas como assim a meta deveria ser uma frase? Vamos a um exemplo:
Imagine que você está trabalhando em um projeto de um E-commerce e já se passaram algumas Sprints. O produto já está sendo utilizado em produção, com várias funcionalidades que foram desenvolvidas nas Sprints anteriores.
Tudo está funcionando conforme o esperado, mas os clientes(empresa ou pessoas responsáveis pelo projeto) estão enfrentando um problema: o sistema não aceita pagamentos via cartão de crédito, e isso está gerando muitas reclamações, ocasionando inclusive a perda de muitas vendas para usuários que somente podem pagar via cartão de crédito.
O Product Owner está ciente desse problema e considera isso como prioridade, alterando assim a ordem dos próximos itens a serem desenvolvidos na Sprint seguinte.
No Sprint Planning ele explica tudo, e todos chegam a um acordo sobre as funcionalidades que serão desenvolvidas na Sprint que está começando. Agora o time precisa definir qual será a meta dessa Sprint.
A meta não deveria ser definida como algo genérico que não demonstra o real valor de negócio a ser alcançado ao final da Sprint. Portanto, definir a meta dessa Sprint como:
- Entregar todos os itens
- Não gerar nenhum bug
- Implementar as funcionalidades de pagamento
- Colocar em produção as funcionalidades
Não é interessante, pois não reflete o real valor a ser entregue ao final da Sprint, sendo que esse valor deveria ser algo relacionado com a Visão de Negócio do produto.
Seria muito mais interessante se a meta da Sprint fosse algo como:
- Aumentar o faturamento da loja com novas formas de pagamento
- Evitar perder vendas e possíveis clientes fiéis por não suportar pagamento com cartão de crédito
Perceba como agora ficou muito melhor. Dá para saber exatamente o que se espera alcançar e como isso vai afetar de maneira positiva o produto, e consequentemente seus usuários e clientes.
No Scrum Guide há também outro trecho que descreve a meta da Sprint da seguinte maneira:
The Sprint Goal gives the Development Team some flexibility regarding the functionality implemented within the Sprint.
Com isso em mente, se utilizarmos a ideia de definir a meta como uma frase relacionada com o valor de negócio do produto, às vezes pode acontecer de no final de uma Sprint o time de desenvolvimento não ter conseguido finalizar todos os itens, mas mesmo assim a meta ter sido alcançada com os outros itens que foram concluídos. Inclusive quando esse tipo de situação ocorre, o Product Owner deve ser notificado para que assim o time negocie um ajuste de escopo, e com uma meta bem definida o time consegue discutir muito melhor o que é possível de se fazer, sem causar impactos no alcance da meta ao final da Sprint.
Atualmente você trabalha em algum projeto utilizando Scrum? Conte-nos como seu time costuma definir a meta das Sprint's.