Given that the User Story we are carrying over is partially complete, how do we estimate for it correctly in the next Sprint Planning session?
Eu não acho que as opções A até C são boas, principalmente porque o que (eu acho) deveria ser mais importante em relação à velocidade de uma equipe é a velocidade média e não se a velocidade de qualquer sprint subiu ou desceu.
Quando uma história de usuário é definida, ela deve ter critérios de aceitação. Se alguma coisa nos critérios de aceitação não for feita , a equipe simplesmente não ganhará nenhum dos pontos. Se a história for terminada (ou seja, codificada, testada e aceita pelo P.O.), então a equipe recebe todos os pontos.
Isso funciona bem quando a equipe está focada na sua velocidade média e não na velocidade de um determinado sprint.
Como M. Cohn em seu livro, eu costumo ter uma preferência por um cenário de tudo ou nada. Afinal, tentar estimar se você completou 5 pontos de uma história de 8 pontos, ou talvez apenas 6 ou 7, acabará sendo outro jogo de adivinhação ... e não se esqueça de que você já recebeu a inicial estimar a distância. Provavelmente, é melhor usar o método mais simples e obter todos os pontos depois de realmente ter sido concluído.
Citando M. Cohn de seu livro¹ (minha ênfase):
I’m generally in favor of an all-or-nothing stance toward counting velocity: if a story is done (coded, tested, and accepted by the product owner), the team earns all the points, but if anything on the story isn’t done, they earn nothing. At the end of an iteration, this is the easiest case to assess: If everything is done, they get all the points; if anything is missing, they get no points. If the team is likely to take on the remaining portion of the story in the next iteration, this works well. Their velocity in the first iteration is a bit lower than expected because they got no credit for partially completing a story. In the second iteration, however, their velocity will be higher than expected because they’ll get all of the points, even though some work had been completed prior to the start of the iteration. This works well as long as everyone remembers that we’re mostly interested in the team’s average velocity over time, not in whether velocity jumped up or down in a given iteration.
Estimativa Ágil e Planejamento , Re-Estimando Histórias Parcialmente Concluídas, p.66
Minha equipe já havia tentado atribuir pontos parciais, apesar de algumas objeções, e não acho que funcionou bem. (Não fazemos mais isso ... vai ver) Este é especialmente o caso porque as histórias devem ser estimadas como uma equipe , mas se apenas uma pessoa estiver trabalhando nisso, ser mais difícil para a equipe saber o quanto um indivíduo realmente foi concluído. O Agile está mais interessado na velocidade média de um time do que em quão "agradável" um determinado sprint parece.
Dito isto, o autor faz mencionar que a atribuição de pontos parciais pode ser considerada se for improvável que a equipe lide com o trabalho restante na próxima iteração. Nesse caso, a equipe estimaria o trabalho que ainda resta e o dividiria em novas histórias de usuários com qualquer tamanho que eles achem que deveriam ter. Como o autor menciona²:
The combined estimates would not need to equal the original estimate...
² Ditto, p.66
A melhor recomendação para a equipe é dividir as histórias em um tamanho suficientemente pequeno para evitar esse tipo de problema³:
However, the two best solutions to allocating points for incomplete stories are not to have any incomplete stories and to use sufficiently small stories that partial credit isn’t an issue.
³ Ditto, p.67
Espero que isso ajude.