¿Qué porcentaje de tiempo deberían dedicar los desarrolladores de software a la refactorización con el tiempo?

No hay un numero.

Esperemos que pase mucho tiempo refactorizando si la base de código con la que está trabajando es frágil o está rota, o si las suposiciones que se hicieron al escribir el código están rotas.

Si su base de código es sólida y sus requisitos para el código existente son constantes, debe dedicar muy poco tiempo a grandes refactores.

Para el código profesional, cada cambio que realice debe ser una decisión de costo / beneficio. Si tiene un código frágil que tiene errores, puede argumentar que reescribir partes mejorará su producto o facilitará su trabajo la próxima vez que tenga que tocar este código. Luego calcula cuánto tiempo llevará su cambio y vea si vale la pena.

Si su código funciona bien, será difícil justificar algo como “Déjame pasar tres días refactorizando el código porque me da la gana”.

A menudo te escabulles en pequeños refactores cuando estás haciendo otro trabajo. ¿Necesita usar el mismo código nuevamente? Ahora es un método. ¿Ya no necesitas este dato? Elimina un poco de código de una función existente. Es difícil estimar qué porcentaje del tiempo que está haciendo “trabajo normal” podría llamar refactorización.

Ninguna. La refactorización se debe hacer cuando sea necesario, no solo por refactorización. No importa cuántas pruebas unitarias tenga, cada vez que refactorice algo, existe la posibilidad de que rompa otra área de la aplicación.

Un montón. Literalmente. Pero hágalo en los lugares que más le importan (es decir, lugares con el mayor valor comercial).