Como gerenciar a lista de pendências de um rastreador de problemas

10

Nós usamos o Trac há vários anos e nossa lista de "tickets ativos" aumentou para quase 200 itens. Isso inclui bugs de baixa prioridade e complicados de corrigir por enquanto, solicitações de recursos adiadas, problemas que nunca geraram reclamações, mas todos concordam que algum dia serão corrigidos, refatorações de código planejadas e outras infelicidades de design que não solucionamos ' não quero perder o controle, etc.

Como resultado, com quase 200 desses problemas, a lista é quase esmagadora; não é mais útil como fonte do que precisa ser trabalhado no momento.

Qual é a melhor maneira de acompanhar problemas desse tipo?

Parte do problema é que alguns desses problemas são de baixa prioridade e talvez nunca sejam resolvidos. Eu odeio perder o controle desses itens (semelhante a não querer jogar algo fora da minha casa, caso eu precise dele algum dia); preciso jogá-los fora independentemente (marcando-os como wontfix) e supor que posso encontrá-los no futuro, se precisar deles?

Josh Kelley
fonte
200 para toda uma equipe me fez rir. :-) Só eu tenho 120 questões em aberto, a maioria das quais nunca vou resolver! - Então, para resumir: ótima pergunta! Eu estava prestes a perguntar o mesmo.
Martin Ba

Respostas:

6

Primeiro, peça a cada desenvolvedor que analise cada um dos itens e revise / teste cada item para verificar se ainda é um problema (pode ser melhor dividi-los entre as pessoas). Em seguida, feche qualquer um que não seja mais um problema ou que já tenha sido resolvido com outros esforços de desenvolvimento.

Agora, verifique se cada um deles está marcado como um esforço de desenvolvimento grande, médio ou pequeno. Essa é uma estimativa bastante aproximada, usada apenas para categorizar os projetos com mais facilidade e ajudar a reunir as coisas. Se tudo já estiver estimado, isso ajudará, mas não desligue as horas. Basta ir com uma verificação rápida do intestino. Geralmente funciona para colocar os desenvolvedores em uma sala e apenas passar por cada item e usar o esforço que a maioria das pessoas considera apropriado.

Revise cada um dos três grupos de esforço e marque cada item no grupo com uma prioridade de Crítico, Alto valor comercial, Alto valor técnico, Médio valor, Baixo valor e Nunca será corrigido.

A essa altura, você realmente conhece a lista de dentro para fora e realmente entende o trabalho envolvido em sua lista de pendências e pode começar a tomar realmente uma decisão sobre o que fazer com os itens. Pegue todos os itens marcados como nunca corrigidos e arquive-os no seu backlog.

Agora, quando você agendar os itens para o próximo lançamento, poderá usar os itens críticos e de alta importância como o núcleo do seu lançamento. Revise a lista de itens de média e baixa prioridade e adicione itens que possam ser trabalhados ao mesmo tempo que os outros itens da sua lista, porque os desenvolvedores já estarão trabalhando nessa parte do sistema.

A lista de itens marcados com prioridade média ou baixa pode ser usada como uma lista de itens para as pessoas trabalharem quando tiverem algum tempo livre ou como treinamento para novos funcionários. Eu sempre acho que é bom ter uma pessoa na equipe durante cada iteração trabalhando nesses itens e ajudando o restante da equipe sempre que necessário. Dessa forma, você ainda está concluindo o trabalho na iteração atual, mas possui alguém que é flexível e pode ajudar a apagar incêndios quando necessário, mas está lidando com os problemas que normalmente não chamariam atenção.

Uma coisa que achamos interessante foi que, entre cada iteração, tivemos um período curto de duas semanas em que toda a equipe trabalhava apenas em itens marcados com um pequeno esforço de desenvolvimento. Nos concentraríamos em fechar um grande número de tickets em pouco tempo.

Amy Patterson
fonte
3

O Trac tem uma configuração de prioridade? Algo como 1 para grandes artistas e 5 ou mais para coisas que seria bom ter feito em algum momento?

Se você pode classificar por prioridade, pode desconsiderar os itens de menor prioridade por enquanto.

David Thornley
fonte
11
Qualquer coisa que esteja no nível de "bom ter feito algum dia" nunca será feita. Arranque.
Aaron McIver
11
@ Aaron: Prefiro mantê-lo por perto, caso desejemos aumentar a prioridade em algum momento. Claramente, isso nunca será feito com essa prioridade, a menos que os desenvolvedores tenham muito tempo em suas mãos (e já tenham feito um cliente de Gopher para o software e sejam compatíveis com haiku).
David Thornley
O Trac tem uma configuração de prioridade, embora tenhamos acumulado uma lista de pendências o suficiente para que eu tenha decidido que ainda precisamos de uma abordagem "arrancá-la".
Josh Kelley
3

leia: http://en.wikipedia.org/wiki/5S_%28methodology%29

Coloque-os no sótão, espere um ano e depois mude de casa. É isso que eu faço.

Sério, se você não vai consertar, esqueça. Consulte Programação extrema.

Mas para itens sobre código. Você pode colocá-los em um sistema de revisão de código, como pequenas observações. Este sistema pode ser configurado para sinalizar problemas quando essa parte do sistema é editada. Descobri que isso não funcionava como colegas de trabalho, pensei que era o que era esperado e não abordava as observações da revisão.

A única maneira de fazer isso é a priorização implacável. Faça agora ou não se incomode.

ctrl-alt-delor
fonte
você pode explicar como o 5s se refere ao rastreamento de erros do sw, o artigo da wikipedia parece focar na fabricação
jk.
@jk tudo está conectado. Nós podemos aprender com tudo. Manufatura enxuta e desenvolvimento de software Agile são quase a mesma coisa. Com uma grande exceção. Na fabricação, não ser repetível é um defeito; no design, repetir é um defeito (pare de escrever o mesmo código repetidamente). Embora existam partes do processo que devem ser repetidas (o processo).
CTRL-ALT-DELOR
2

Esta não é realmente uma questão de controle de versão, mas uma questão de fluxo de trabalho e prioridade de negócios. O rastreamento de coisas que se sabe estarem erradas é uma boa idéia, mesmo que seja improvável que "sempre" seja consertado, tem alguns benefícios. Por um lado, significa que o controle de qualidade (se você tiver uma equipe de controle de qualidade separada) sabe que não deve registrar um novo bug para ele. Outro benefício é que, se um novo problema surgir, mas sua causa principal for devido a um desses problemas "sabemos sobre ele, mas é de baixa prioridade", qualquer análise sobre a correção já será rastreada - o que pode tornar o mais novo e mais alto - versão prioritária do bug muito mais fácil de corrigir.

Outro aspecto disso é que pode haver alguma margem de manobra para lidar com parte desse trabalho, agora ou no futuro. Talvez um dia você consiga um estagiário e possa atribuir alguns dos mais simples a eles como uma introdução para molhar os pés na base de código.

Se os desenvolvedores acharem que esses problemas seriam bons de corrigir - por exemplo, se eles representam dívida técnica e facilitaria o trabalho da base de código para corrigi-los, mas eles não têm valor comercial - talvez valha a pena discutir isso. com as partes interessadas da empresa e ver se é possível chegar a um acordo em que esses itens da lista de pendências são retirados ocasionalmente. Vi equipes de scrum fazerem coisas como bloquear de 3 a 5 pontos de velocidade por sprint para itens de "lista técnica pendente" - isso pode exigir algum detalhamento político, dependendo do relacionamento da equipe de desenvolvimento com as partes interessadas nos negócios, mas já vi funciona muito bem.

autofago
fonte
1

Isso realmente depende de algumas coisas.

  1. Qual é o tamanho da equipe: se a equipe for grande o suficiente, você poderá atribuir tickets de uma maneira que permita que os itens de menor prioridade sejam concluídos.
  2. Com que frequência você faz lançamentos: Se o ciclo de lançamento for longo o suficiente, você poderá adicionar mais itens ou adiar um lançamento até que todos os tickets sejam resolvidos.
Woot4Moo
fonte