A veces, los programadores, cuando se les pregunta por qué un programa funciona de una forma en particular, responden que es «heredado» y que no se puede arreglar. Veamos qué significa esto, en qué medida dificulta el desarrollo y qué se hace con el código heredado. ¿Por qué no les gustan los programadores?
¿Qué es el Código Heredado?
La palabra «legacy» en inglés se traduce como «herencia». El código heredado es el código que se ha «heredado» de los desarrolladores anteriores. Normalmente ocurre de esta manera:
- Un equipo hace un producto, con muchas funciones diferentes.
- Algunas funciones se optimizan con el tiempo, pero algunas permanecen sin cambios en forma de código antiguo, porque funcionan de todas maneras.
- Con el tiempo, ya no queda nadie en el equipo que haya escrito el código antiguo.
- El equipo actual no sabe por qué el código antiguo está escrito de esa manera.
- Es difícil cambiar o entender esos fragmentos, porque todo lo demás ya está escrito de otra manera.
- Este código antiguo, que es difícil de mantener y entender, es lo que se conoce como código heredado.
👉 En pocas palabras, el código heredado es el código del que se dice: «Esto lo escribió Max hace 8 años para sincronizar con el servidor, funciona, no lo tocamos, porque si no, todo se rompe». Y Max ya no está en la empresa, tampoco hay documentación, y es más fácil no tocar este código en absoluto.
Como el código heredado es código antiguo, normalmente hay muchas cosas importantes en el programa que dependen de él. Esto crea un círculo vicioso: no se puede renunciar al código heredado porque todo se rompería sin él, pero tampoco es fácil mantenerlo en funcionamiento porque nadie quiere entender el código antiguo.
De Dónde Proviene el Código Heredado
Puede haber varias razones para que aparezca el código heredado:
- El equipo ha pasado a otro framework, pero partes del programa siguen en el antiguo.
- Parte del programa está escrita en una versión antigua del lenguaje.
- El equipo antiguo no documentó su código.
- El código está escrito en un estilo, pero el equipo ha pasado a otro estilo de programación.
El código heredado no es un delito, sino parte de la vida de cualquier empresa de TI en activo. Tarde o temprano, cualquier producto tendrá código heredado. Y cuanto más grande es el proyecto, más código heredado tendrá. Por ejemplo, en el código fuente de Windows 10 todavía hay fragmentos de código escritos hace 20 años para Windows 3.1.
¿Es Malo el Código Heredado?
El código heredado es simplemente código antiguo que hay que mantener junto con el nuevo. Si funciona, perfecto, que siga funcionando. Lo que pasa es que, por ejemplo, al equipo le resultaría más cómodo que el código no estuviera escrito en un framework antiguo, sino en uno nuevo que todos conocen.
Resulta que la principal desventaja del código heredado no es que funcione mal, sino que es incómodo de mantener.
¿Qué Significa «mantener el Código Antiguo»?
Por ejemplo, en el código antiguo, para realizar una solicitud al servidor, primero se introduce la dirección y luego el número de solicitud. Después de 10 años, los requisitos del servidor han cambiado, por lo que primero debe ir la solicitud y luego la dirección. Esto significa que hay que cambiar el orden de los campos en el código.
Si el código antiguo es comprensible y está bien documentado, esta tarea te llevará dos minutos. Si se trata de viejas tripas de código heredado cubiertas de polvo, puede convertirse en una tarea de una hora.
Qué Hacer con el Código Heredado
Si el código heredado funciona y no requiere intervención ni mantenimiento, entonces puedes dejarlo así por el momento, que siga funcionando. Cuando haya tiempo, lo reescribiremos en un nuevo framework, pero si no hay tiempo, funcionará así por el momento.
Pero si se necesita una intervención urgente, esto huele a desastre. Llama a los gerentes.