4 minutes

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:

  1. Features que não são complexas, mas que têm um elevado valor agregado.
  2. Features complexas que possuem um elevado valor agregado value.
  3. Features que não são complexas com um valor agregado menor.
  4. 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.