Como apontado por outras respostas, a pergunta correta aqui é provavelmente: por que você tem um rastreador de problemas. Uma boa resposta para essa pergunta (não apenas da perspectiva do gerenciamento, mas também da perspectiva do desenvolvedor) é imprescindível se você deseja que um sistema de rastreamento de problemas realmente funcione e seja atualizado regularmente.
Em muitas empresas, o sistema de rastreamento de problemas é usado principalmente como uma ferramenta de relatório de gerenciamento. Fazer com que os programadores atualizem os problemas apenas para que o gerenciamento possa executar um relatório não funciona bem. Forçar os programadores a atualizar problemas também não funciona - você pode ter problemas atualizados, mas deve questionar os dados.
Na minha experiência, a única maneira de realmente fazer com que desenvolvedores (e testadores, gerenciamento etc.) efetivamente usem um sistema de rastreamento de problemas é integrá-lo ao processo de desenvolvimento. Isso significa que a saída de uma parte do processo se torna a entrada para a próxima parte do processo.
Para dar autoridade ao sistema de rastreamento de erros, sugiro o seguinte:
- Os desenvolvedores trabalham apenas com bugs / recursos registrados no rastreador de problemas e nenhum trabalho é feito fora dele. Todas as idéias, projetos de refatoração, novos recursos, ferramentas personalizadas a serem desenvolvidas etc. também devem ser registradas.
- Os problemas são trabalhados em ordem de prioridade. A prioridade deve ser parcialmente determinada pela gerência, mas os desenvolvedores também devem ter uma influência na determinação de prioridades. Isso é especialmente verdadeiro quando se trata de problemas de manutenção e refatoração.
Quanto ao processo, você pode usar algo como o seguinte:
- status 'novo' indica que um problema ainda não foi detectado por um desenvolvedor e ainda está na fila de problemas priorizados
- status 'atribuído' indica que foi atribuído a um desenvolvedor. Isso pode ser feito pelo desenvolvedor ou por outra pessoa, como o líder da equipe. Acho que funciona bem ter alguns problemas atribuídos a cada desenvolvedor e, geralmente, uma mistura de 'trabalho pesado', como novos recursos e escolhas fáceis, como bugs simples ou algum trabalho simples de manutenção. Isso permite que os desenvolvedores escolham o trabalho, dependendo do seu humor.
- status 'em andamento' significa que um desenvolvedor está trabalhando em um problema. Apenas um ou dois problemas por desenvolvedor devem estar "em andamento" a qualquer momento.
- Depois que um problema é resolvido, o desenvolvedor pode alterar o status do problema para 'precisa de teste' e alterar o proprietário para o testador. Esta é uma etapa importante, pois também é a fila de trabalho dos testadores.
- os testadores podem alterar o status para 'falha no teste' e alterar a propriedade de volta para o desenvolvedor, o que significa que ele vai para o topo da fila do desenvolvedor, ou pode alterar o status para 'pronto para implantação'.
- problemas com o status de 'pronto para implantar' podem ser mesclados e liberados de acordo com o ciclo de lançamento por quem for responsável pelos lançamentos.
Resumindo: torne o sistema de rastreamento de problemas uma parte essencial do processo de desenvolvimento e você não precisará se preocupar com a atualização dos problemas.