Uma das funções do Product Owner é fornecer ao product backlog as funcionalidades ou recursos que a equipe técnica terá que desenvolver. O outro, sem dúvida mais complexo, é definir a prioridade das tarefas a serem executadas. Como escolher a funcionalidade que deve ser desenvolvida primeiro? A solução para este problema pode tornar-se rapidamente uma dor de cabeça para o product owner e ser bastante morosa. O WSJF, ou “Weighted Shortest Job First”, (trabalho mais curto ponderado) é uma ferramenta muito eficaz que simplificará o trabalho do product owner quando tiver que priorizar o conteúdo do product backlog.
Como definir WSJF?
O Weighted Shortest Job First (trabalho mais curto ponderado) é um modelo Agile projetado para determinar a priorização das user stories (ou features ou epics) presentes no product backlog. Como o nome indica, o WSJF consiste em dar maior prioridade aos recursos mais importantes e mais curtos.
O WSJF faz parte da metodologia Scaled Agile Framework (SAFe). A SAFe é uma estrutura Agile completa, projetada para ser implantada em toda a empresa. Não está concebida para trabalhar com menos de 50 pessoas e, portanto, não é adequada para equipes menores. No entanto, o WSJF é uma ferramenta que pode ser usada sozinha, pelo product owner, independentemente do tamanho do projeto ou da equipe.
A suposição básica é que qualquer recurso que não seja entregue no prazo tem um custo, o “Custo do Atraso”. Uma má priorização do product backlog pode, portanto, levar à multiplicação desses custos. Mesmo que não sejam importantes para cada feature, a sua acumulação pode ser desastrosa.
O objetivo do WSJF é minimizar esses custos e trazer o máximo de valor agregado no final de uma sprint. O WSJF será particularmente útil para ajudar o product owner a decidir quando é difícil decidir entre duas features semelhantes (em termos de valor e tempo de desenvolvimento), que feature deve ser desenvolvida primeiro. Se duas features tiverem o mesmo valor, mas uma delas levar menos tempo a desenvolver, a solução é simples, é a última que será uma prioridade. Por outro lado, se houver uma feature cujo tempo de desenvolvimento seja ainda menor, mas que não tenha sido considerada uma prioridade até então, a arbitragem será necessária. É neste caso que o WSJF fornecerá a maior ajuda.
Utilização do WSJF
O WSJF será calculado para cada feature presente no product backlog. Este cálculo permitirá a atribuição de um valor para determinar as prioridades. Quanto maior for o WSJF de um recurso, maior será sua prioridade na ordem de desempenho.
No final do cálculo do WSJF, as fetures a serem realizadas serão encontradas em uma ordem muito especial:
- Features que não são complexas, mas que têm um elevado valor agregado.
- Features complexas que possuem um elevado valor agregado value.
- Features que não são complexas com um valor agregado menor.
- Features complexas com um valor agregado menor.
Para calcular o WSJF de uma feature, são considerados quatro critérios. Cada um é avaliado em uma escala crescente não linear, baseada na sequência de Fibonacci.
- Valor para o negócio: o valor para o negócio da feature (muito alto para todas as principais funções do aplicativo).
- Criticalidade: A feature necessita ser rapidamente entregue ou não?
- Redução de riscos / facilidade no desenvolvimento de outra feature.
- Tamanho da feature a ser desenvolvida (tamanho do trabalho): o esforço que a equipe de desenvolvimento dispende para a realização.
This last criterion, the effort to be provided, is generally evaluated by the development team.
Este último critério, o esforço a dispender, é geralmente avaliado pela equipe de desenvolvimento.
É possível calcular o “Custo do Atraso” de uma feature a partir dos valores desses critérios.
Custo do Atraso = Valor para o negócio + Criticalidade + Redução do risco / facilidade no desenvolvimento de outra feature
Por foim, o cálculo do WSJF da feature processa-se da seguinte forma:
WSJF = Custo do Atraso / Tamanho da feature
Uma vez que cada feature possua o seu WSJF, é possível determinar as prioridades de desenvolvimento. Quanto maior o WSJF, maior será a feature.
Observa-se imediatamente que o critério com maior peso no cálculo do WSJF é o tamanho da feature ou o esforço a dispender. O que mostra que as features pequenas serão mais fáceis de estimar e planejar. Uma funcionalidade importante em termos do esforço dispender não será necessariamente uma prioridade, ao contrário do que se poderia pensar. Tudo depende do valor agregado que traz e das consequências sobre o progresso do projeto, se não for desenvolvido mais ou menos a curto prazo. Também não é incomum ver features que exigem um esforço significativo, mas que trazem pouco valor, e que por fim são abandonados pelo cliente.
É importante ter em mente que o WSJF não se fixa no tempo. Após o cálculo efetuado, o resultado não é intangível. O product backlog será atualizado regularmente pelo product owner (refinamento de backlog) e, consequentemente, todos os critérios podem variar. O WSJF é então recalculado e a priorização pode ser modificada.
Em conclusão sobre o WSJF
O WSJF é uma ferramenta eficaz que permite ao product owner determinar a priorização da implementação das features presentes no product backlog. Nem sempre é necessário recorrer ao WSJF. Por vezes, a priorização de tarefas é óbvia e não está aberta a discussão. Por outro lado, quando é difícil determinar que feature deve ser realizada antes das demais, a avaliação dos critérios e o cálculo do WSJF facilitarão a obtenção de uma classificação. Os critérios usados para calcular o WSJF são geralmente avaliados em uma reunião atendida pelo product owner, o scrum master e a equipe de desenvolvimento.
Nutcache, uma solução completa de gerenciamento de projetos online, que oferece todas as ferramentas necessárias para calcular o WSJF e priorizar o product backlog. A utilização gratuita durante um período teste de 14 dias da solução Nutcache completa irá ajudá-lo a saber mais sobre o produto. Não hesite em contactar-nos.