O que devemos fazer pelas histórias de usuários sobre dívidas técnicas no Pivotal Tracker? Devemos considerá-los como características (dando pontos) ou como tarefas (não dando pontos, diminuindo assim a velocidade)?
Estou confuso sobre o que deve ser considerado uma tarefa:
Duplicação de código - É claro que, se colocarmos o mesmo código em vários locais, isso é realmente uma prática ruim de código e indica que os desenvolvedores da equipe devem pensar mais para tornar o software sustentável, refatorar e a equipe deve dedicar tempo às análises de código. Como tudo isso requer experiência em maturidade, tempo e nível de código, é melhor fornecer menos número de pontos para que a qualidade do código não seja comprometida. Portanto, esses erros devem ser penalizados e a velocidade reduzida, não dando pontos à tarefa.
Atualização de tecnologia - como mudar para modularizar JS, HTTP2, React, MVC ou qualquer outra nova / melhor tecnologia. Essas etapas melhorarão o desempenho e a manutenção do código. Mas isso deveria ser tarefa ou recurso? Eu acredito que é assim que o mundo da tecnologia é, as novas tecnologias vêm de vez em quando e você precisa migrar para ele. Portanto, não vejo sentido em penalizar a velocidade da equipe por esse trabalho. Sugestões?
Código de duplicação / sub-padrão no código legado - Poucos são os códigos que são intocados desde muito tempo OU quando uma nova equipe é formada, mas a base de código é um pouco antiga, enfrentamos esse desafio. A equipe diz que não codificou esta seção, por que sua velocidade deve ser penalizada escolhendo dívidas técnicas que nunca as criaram.
Código abaixo do padrão devido à urgência dos negócios - Às vezes, os desenvolvedores são forçados a enviar recursos o mais rápido possível, ao vivo, devido à pressão dos concorrentes / alvos / negócios / usuário. A limpeza desse código incorreto também deve ser considerada uma tarefa (sem dar pontos)? Desta vez, a equipe de desenvolvimento não tem culpa; então, por que a velocidade deve ser reduzida, quando na verdade eles costumam colocar horas extras nesses casos.
Acredito que todos os tipos de tarefas mencionados acima, se realizados com sabedoria, devem melhorar a velocidade da equipe no futuro. Mas como devemos manter o equilíbrio, mantendo a velocidade da equipe e penalizando os erros técnicos que a equipe está cometendo ao tomar más decisões?
A pergunta é semelhante a: Dívida técnica deve ser agendada como um recurso ou uma tarefa (ou um bug)? , mas não encontrei respostas convincentes que abranjam todos os quatro pontos, por isso estou publicando de uma maneira diferente.
fonte
Respostas:
Resposta curta: pagar dívidas técnicas é uma tarefa árdua. Você não está fornecendo novas funcionalidades para os usuários finais, para que não sejam pontuais.
Resposta oficial:
É por isso que as histórias classificadas como bugs e tarefas não podem ter estimativas atribuídas a elas com as configurações padrão do PT, mas acho que também explica por que você não deve contar essas tarefas como recursos apenas para obter pontos por elas.
Em primeiro lugar, não acho que você deva considerar uma queda na velocidade como uma penalidade: são apenas informações. Talvez fosse algo natural, como uma nova pessoa entrando, que você teve que passar um tempo extra treinando. Talvez tenha sido algo inesperado que reduziu sua capacidade (por exemplo, doença) ou consumiu extra (por exemplo, bug "pare o mundo"). Talvez você não tenha estimado bem os recursos, por qualquer motivo; isso é algo que você pode aprender. Ou talvez tenha sido porque você decidiu, como equipe, priorizar o pagamento de alguma dívida técnica em vez de fornecer novos recursos (e talvez incorrer em mais dívidas).
Em segundo lugar, não é necessariamente um erro incorrer em dívida técnica. Não é ideal incorrer acidentalmente , mas se você decidir, por exemplo, criar a coisa "rápida e suja" agora, sabendo que precisará arrumar mais tarde, por exemplo, para que você possa obter mais comentários do usuário ou conhecer um prazo, essa é uma escolha deliberada que você fez como equipe e está bem.
Sobre se algo deve ser um recurso, uma regra simples é: os usuários finais se importam? Você mencionou a melhoria do SEO: é algo em que eles estão interessados? Desempenho com o qual eles podem se preocupar, mas, por outro lado, talvez prefiram ter algum novo recurso do que o mesmo material com algumas centenas de milissegundos fora do tempo de carregamento. Faça alguma pesquisa: vá e pergunte o que eles querem. Deixe-os ajudá-lo a priorizar o que é melhor gastar o tempo da equipe.
Você pode decidir que suas opções atuais de tecnologia o impedem de fornecer determinados recursos da maneira mais eficiente possível, caso em que é perfeitamente razoável (novamente, deliberadamente) gastar tempo migrando todo ou parte do aplicativo para algo novo.
Aqui eu concordo absolutamente com você, mas então não está ganhando pontos por essas tarefas contando duas vezes? Se você estiver fazendo o trabalho para poder fornecer mais recursos posteriormente, deverá ver a velocidade mais alta depois de fazer isso, não enquanto estiver fazendo.
Além disso, coisas como revisões de código e refatoração básica no processo de entrega (por exemplo, a parte "refatorar" do ciclo TDD) já devem fazer parte do seu trabalho em andamento e, portanto, já incluídas como parte da velocidade geral da equipe.
Divulgação : sou um Pivot, trabalhando no Pivotal Labs em Londres, mas não na equipe Tracker.
fonte
Para sermos contrários, lidamos com bugs e dívidas técnicas como qualquer outro PBI. De fato, nem sequer temos um tipo de "bug". Tudo é um PBI. Nosso backlog é ordenado pelo valor comercial atribuído ao PBI. Como resultado, um bug proeminente voltado ao usuário que está causando problemas terá um alto valor comercial atribuído a ele, pois você corre o risco de perder dinheiro com algo assim e provavelmente será uma das primeiras coisas a serem feitas. Por outro lado, um bug que realmente não tem muito impacto e não está afetando a linha de fundo terá um valor comercial relativamente baixo e pode não ser corrigido por um tempo. Essa é uma parede mental importante que deve ser derrubada: nem todo bug deve ser corrigido. Parece sacrilégio, eu sei, mas se o esforço envolvido na correção do bug for maior do que o valor comercial que ele trará, então o ROI é negativo. Tratar tudo como um PBI dá a você a liberdade de tomar esse tipo de decisão empírica sem se distrair só porque é um "bug".
Da mesma forma, com dívidas técnicas, ainda há muito em jogo um valor comercial. Algumas dívidas técnicas podem ser incorridas com muito pouco custo e podem permanecer a longo prazo, mas algumas dívidas técnicas matarão seus negócios ao longo do tempo e, portanto, terão um valor comercial muito alto. A chave novamente é perceber que tudo é apenas um PBI. Tudo entra no backlog e você trabalha nos itens desse backlog com base no valor que eles agregam aos negócios. Se é um recurso, um bug ou uma dívida técnica, está realmente fora de questão.
Isso também tem o benefício de evitar completamente sua pergunta. Como tudo é um PBI, tudo contribui para a velocidade. A ideia de fazer um trabalho que não é realmente dimensionado e contado na sua velocidade é meio que insana para mim. Você está basicamente criando um enorme buraco negro em seus dados empíricos. A velocidade já é uma métrica bastante aproximada, é uma estimativa baseada em uma estimativa baseada em ainda mais estimativas. Adicione um monte de trabalho variável que não está sendo rastreado e agora o número é praticamente sem sentido. Tudo o que sua equipe faz em um sprint faz parte da sua velocidade.
fonte