Priorizar é uma das atividades mais importantes e difíceis na vida de qualquer Product Owner. Em boa parte das vezes a dificuldade em priorizar ocorre porque as pessoas têm diferentes opiniões sobre os impactos que cada item do Product Backlog pode causar no produto final.
Bom, e esse é o problema. A priorização com base em opiniões (que geralmente têm um peso proporcional ao peso do crachá de quem opina). Quando de alguma forma conseguimos tangibilizar o valor de cada item de nosso Product Backlog a discussão se torna muito mais racional.
Uma forma de entender melhor o valor de cada funcionalidade vem através de um simples questionamento: quanto estamos perdendo por ainda não ter entregue este item?
Responder esta pergunta nem sempre é fácil, e muitas vezes implica em um muito trabalho de pesquisa. O importante é lembrar sempre que nem sempre estamos em busca de uma informação super precisa aqui. O propósito de entender o valor de cada item está em nos ajudar a tomar uma decisão racional.
Por exemplo: digamos que um determinado item vai me render entre R$30.000,00 e R$ 200.000,00. Esta faixa é muito ampla e pode parecer ter pouco valor, mas se eu sei que o custo do item não deve exceder R$ 15.000,00 eu já sou capaz de tomar uma decisão e não preciso investir mais tempo refinando minha pesquisa para diminuir este intervalo.
Cada item pode ter um custo de atraso em um formato diferente: alguns tendem a crescer linearmente e outros exponencialmente. Há ainda aqueles com uma data fixa, como a adequação a alguma lei com data para entrar em vigor e outros cujo custo não tem uma relação tão relevante com o tempo de atraso. Entender quais tipos de item você tem em seu Product Backlog é o primeiro passo para racionalizar seu processo de priorização.
O tipo de item mais comum de se encontrar em um Product Backlog são aqueles cujo custo de atraso tende a aumentar com o tempo, seja de forma linear ou exponencial. Imagine um produto com os seguintes items em seu Product Backlog:
Cada item tem um custo estimado por semana de atraso e um tempo estimado de desenvolvimento. Se dividirmos o custo de atraso pela duração de cada item chegamos ao famoso CD3: Cost of Delay Divided by Duration (custo de atraso dividido pela duração).
Mas por que esse tal de CD3 é importante? Para responder essa pergunta, vamos tentar priorizar este backlog de três maneiras diferentes.
Priorização por tamanho
Se optarmos por entregar primeiro os itens menores, nossa curva de entrega ficaria mais ou menos assim:
Na primeira semana teríamos um custo de atraso equivalente a todos os itens somados (2.000 + 5000 + 6000 + 1500), afinal não entregamos nada.
Ao final da semana 1 conseguimos entregar o item Notificações (que foi priorizado por ter a menor duração) e com isso diminuímos nosso custo de atraso total em 2.000. E aí é repetimos este processo para os próximos items do Product Backlog.
No final das contas, temos o seguinte cenário:
1 semana com custo de atraso total de 14.500
2 semanas com custo de atraso total de 12.500
3 semanas com custo de atraso total de 11.000
4 semanas com custo de atraso total de 6.000
Neste cenário nosso custo de atraso total foi de:
(1 x 14.500) + (2 x 12.500) + (3 x 11.000) + (4 x 6.000) = 96.500
Priorização por valor
Quando priorizamos por valor a coisa muda um pouco de figura:
4 semanas com custo de atraso total de 14.500
3 semanas com custo de atraso total de 8.500
1 semanas com custo de atraso total de 3.500
2 semanas com custo de atraso total de 1.500
Neste cenário começamos a trabalhar com o item APP por ser o que tem o maior custo de atraso por semana. Ao final temos um custo de atraso total de:
(4 x 14.500) + (3 x 8.500) + (1 x 3.500) + (2 x 1.500) = 90.000
Priorização por CD3
A priorização por valor gerou um resultado um pouco melhor, mas ainda temos espaço para melhorias. Veja o que acontece quando priorizamos pelo CD3:
1 semana com custo de atraso total de 14.500
3 semanas com custo de atraso total de 12.500
4 semanas com custo de atraso total de 7.500
2 semanas com custo de atraso total de 1.500
(1 x 14.500) + (3 x 12.500) + (4 x 7.500) + (2 x 1.500) = 85.000
Uma boa redução não é mesmo? E um ótimo exemplo de como uma pessoa que atua como Product Owner pode causar um impacto muito positivo no desenvolvimento de um produto!
Conclusão
Saber priorizar bem é importante, e para fazer isso sempre vai ser necessário ter uma boa noção do valor de cada item de seu Product Backlog.
Fórmulas como o cálculo do CD3 podem ajudar bastante uma vez que você tenha dado o primeiro passo: ter esta noção de valor. Mas este primeiro passo é muito dependente da aproximação do Product Owner com o mercado e o bom entendimento dos problemas de seus clientes. E bem, para isso não tem uma fórmula mágica. :)
Priorização com Cost of Delay was originally published in facta.works on Medium, where people are continuing the conversation by highlighting and responding to this story.