¿Cómo sentir personalmente sobre el mantenimiento del software? Lo disfrutarias

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.

Para algunos programadores, cada desafío es un juego nuevo. Mucho tiempo de mantenimiento significa que una actualización del sistema operativo interrumpe su software, o se le ha encomendado la tarea de agregar una característica que nunca estuvo en el diseño original y que no encaja bien con la arquitectura de código actual. Si te gustan ese tipo de rompecabezas, eso no es un mal concierto.

El mantenimiento también significa que tiene la oportunidad de pagar la deuda técnica. Si tiene el tiempo en su presupuesto, puede tomar el código escrito a toda prisa y hacerlo perfecto, más rápido, mejor documentado o tal vez todo lo anterior. Los buenos programadores suelen ser perfeccionistas y no odian ese tipo de trabajo.

El mantenimiento también implica un proceso continuo, lo cual es bueno si tienes una familia y te gusta saber de dónde vendrán tus próximos 12 cheques de pago. Si el tipo de desafíos y acertijos que obtienes con los proyectos de mantenimiento de software no son tu taza de té, posiblemente la consistencia del trabajo podría eliminar parte de la picadura.