Acabei de cumprir (esse é um bom termo?) Duas histórias de usuários de um novo backlog de projeto que acabei de criar. Estes são o registro do usuário e a redefinição de senha, ambos exigindo correio. Preciso implementar um componente de correio substituto, porque minha escolha inicial e normalmente confiável não estava funcionando. Como eu estava focado em fornecer as histórias do usuário, e não em depurar o componente de email, troquei-o para fornecer código de trabalho no final do sprint. Agora, registro um novo problema de suporte para a mala direta ou 'reinseri' essas histórias no backlog? Se eu fizer o último, não estou introduzindo muitos detalhes técnicos nas histórias de usuários?
Dívida técnica é apenas mais uma história
Se uma história for concluída, isso significa que passou no controle de qualidade e foi aceita pelo proprietário do produto.
Qualquer trabalho que precise ser feito para "limpar" ou "melhorar" a implementação é considerado Dívida Técnica e deve ser simplesmente uma nova História.
Dessa forma, ele será rastreado e priorizado pelo Dono do produto, como todo o resto.
fonte
A coisa mais simples que funcionará razoavelmente
Em um comentário relacionado , o OP diz:
Se for esse o caso, a pergunta original é discutível. O princípio YAGNI exige que uma solução não seja projetada em excesso em antecipação a requisitos futuros.
Se uma solução atende aos objetivos atuais do sprint, funciona como projetado e atende à "definição de pronto" da equipe, está pronto. Não está pela metade, meio que está pronto, ou "está pendente de uma refatoração planejada".
Marque-o como concluído e siga em frente.
Advertência menor
Se você realmente acha que há outra história lá, ou algum tipo de dívida técnica que não impede que a história original seja concluída, você deve criar outra história para o Backlog do Produto .
Sempre é necessário colocar um novo trabalho no Backlog do Produto para aumentar a visibilidade - nunca há trabalho invisível! Por fim, é dever do Dono do Produto decidir se a melhoria proposta está alinhada com as metas do produto e priorizar sua nova história de usuário no Backlog do Produto, se ele optar por adicionar a história.
fonte
De acordo com sua pergunta e comentários adicionais à resposta de @ Klee, acho que o problema é um pouco diferente.
Você completou uma história. Isso significa que você passou todas as definições de concluído - caso contrário, a história do usuário não pode ser considerada concluída. Mas se você completou a história e passou todas as definições de done, isso significa que sua solução atual é satisfatória. Caso contrário, o cliente / proprietário do produto deve levantar a razão pela qual não está satisfazendo (não você) e rejeitar sua conclusão ou definir outra história de usuário que estenda esta com uma nova definição de done que não é satisfeita por sua solução atual.
A dívida técnica é aumentada apenas quando sua solução atual não atende a algum requisito ou restrição. Existe alguma restrição que você violou usando uma solução alternativa? Se sim, você não deve marcar sua história de usuário como concluída em primeiro lugar.
Existe alguma duplicação de código ou outra má prática introduzida pela sua solução alternativa? Então você criou uma dívida técnica e deve resolvê-la o mais rápido possível. Você pode ser justo com o proprietário do produto e simplesmente dizer a ele que durante o próximo sprint você deve gastar o mesmo tempo para corrigir seus problemas técnicos, o que resultará em histórias de usuários menos planejadas. Ou se sua relação com o proprietário do produto não for muito boa, basta planejar menos histórias de usuários por causa das complexidades "recém-descobertas" em qualquer uma delas e corrigir sua dívida técnica.
Se não houver duplicação de código ou qualquer motivo real para a melhoria do código, simplesmente não toque nele. Pelo motivo real, refiro-me a nenhuma restrição definida pelo cliente / proprietário do produto (por exemplo, política da empresa, desempenho, tempo predefinido para criar um novo modelo de email que não pode ser alcançado com sua solução atual, etc.). Não há dívida técnica no seu código. O que você está tentando fazer é chamado de revestimento dourado - fornecendo recursos que não eram necessários = desperdiçando recursos dos clientes.
Se sua solução não atender a nenhuma história de usuário futura, basta mover sua refatoração e aprimoramento de código para essa história de usuário. Ele não precisa ser resolvido agora porque passou na definição atual de done. Lide com as melhorias quando elas tiverem que ser feitas para passar na definição de feitas para histórias recém-implementadas e para evitar más práticas.
fonte