Prefiero una combinación de hacer un nuevo trabajo de desarrollo con el mantenimiento del código anterior. Todos los proyectos exitosos avanzan hacia el mantenimiento.
Así que no me importa el mantenimiento, de verdad. Frota mi cerebro de una manera ligeramente diferente a la del nuevo desarrollo, pero en el buen sentido. En lugar de preguntarte cómo lograrás algo desde cero, puedes descubrir cómo alguien más abordó un problema y cómo hacer que su enfoque haga algo nuevo. Si hicieron un trabajo fantástico, podrías aprender algo de su código. Si hicieron un mal trabajo, podría aprender qué no hacer en una situación similar y podría mejorar el enfoque para la siguiente persona.
Para mí, todo el mantenimiento es una oportunidad para refactorizar (¡en realidad, el nuevo desarrollo también lo es después de ese primer compromiso!). En general, me acerco a una tarea de mantenimiento escribiendo una prueba unitaria (si no existe) y haciendo refactorizaciones simples (“método de extracción”, con mayor frecuencia, para llevar las cosas al mismo nivel de abstracción), si el código lo necesita. Esto me ayuda a entender el problema un poco mejor sin cambiar el comportamiento del código. Lo comprometeré en mi rama y continuaré hasta que comprenda bien cómo podría encajar el cambio. Luego determino si el cambio en sí mismo sería más fácil si hubiera una refactorización específica. Etcétera etcétera.
- Cómo estudiar bien en ingeniería de software (M.Tech)
- ¿Hay escasez de talento en ingeniería en Silicon Valley?
- ¿Los ingenieros de software usan software CAD?
- ¿Qué tipo de daño al público pueden causar los ingenieros de software?
- ¿Cómo prepararse para una entrevista telefónica con un ingeniero de software de Facebook? ¿Qué tan difíciles son las preguntas que necesito practicar?