Temos campos "prioridade" e "gravidade" em nosso sistema de rastreamento de bugs. Definimos gravidade como "como isso afeta o usuário" e prioridade como "como isso afeta o produto".
Minha pergunta é sobre como categorizar uma tarefa de "aprimoramento de código" em gravidade e prioridade. Suponha que a melhoria não mude nenhum comportamento, mas a torne um "código melhor". Prevemos uma melhoria geral da manutenção a longo prazo, mas é difícil quantificá-la.
Quando usamos nossas definições de prioridade e gravidade, uma melhoria de código obtém os valores mais baixos para ambos, a menos que você introduza alguns benefícios difíceis de prever a longo prazo. Portanto, implica que o aprimoramento do código é uma tarefa privilegiada e nunca deve ser tentada.
No entanto, acredito que é crucial melhorar e refatorar constantemente o código, porque:
- O desenvolvimento de software é, por si só, um processo contínuo de aprendizado e, sem melhorar o código, você não pode melhorar.
- Uma equipe deve se orgulhar de seu código.
- A manutenção futura levará menos tempo e, a longo prazo, a economia será significativa.
Ou você acha que essas tarefas nunca devem ser criadas e que essas melhorias são executadas apenas "sob demanda", "quando associadas a um bug"? Mesmo se estiver associado a um bug, isso não seria um ponto de discussão em uma revisão de código, por exemplo, "por que você fez essa mudança drástica na estrutura?".