Tenemos campos de "prioridad" y "gravedad" en nuestro sistema de seguimiento de errores. Definimos la gravedad como "cómo impacta al usuario" y la prioridad como "cómo impacta al producto".
Mi pregunta es sobre cómo clasificar una tarea de "mejora de código" en severidad y prioridad. Suponga que la mejora no cambia ningún comportamiento, sino que lo convierte en un "mejor código". Anticipamos una mejora de mantenimiento a largo plazo en general, pero es difícil de cuantificar.
Cuando usamos nuestras definiciones de prioridad y gravedad, una mejora del código obtiene los valores más bajos para ambos, a menos que introduzca algunos beneficios difíciles de predecir a largo plazo en la imagen. Por lo tanto, implica que la mejora del código es una tarea civil y nunca debe intentarse.
Sin embargo, creo que es crucial mejorar y refactorizar constantemente el código, porque:
- El desarrollo de software es en sí mismo un proceso de aprendizaje continuo y sin mejorar el código no se puede mejorar.
- Un equipo debe estar orgulloso de su código.
- El mantenimiento futuro tomará menos tiempo y, a largo plazo, los ahorros serán significativos.
¿O cree que tales tareas nunca deberían crearse y que tales mejoras deberían realizarse solo "a pedido", "cuando se asocian con un error"? Incluso si está asociado con un error, ¿no sería un punto de discusión en una revisión de código, por ejemplo, "por qué hiciste este cambio drástico en la estructura?".