Michael Feathers

Es importante valorar el pragmatismo que permite el legacy code. El progreso tecnológico es una realidad. Se ha recorrido un largo camino desde los años 60 y 70, cuando la tecnología comenzó a introducirse en el ámbito corporativo, para llegar al actual nivel de sofisticación, asombroso en lo que al desarrollo de software se refiere.

La necesidad que impulsó entonces e impulsa hoy este progreso no ha variado: cubrir las necesidades de digitalización de empresas y organismos públicos para incrementar su competitividad, eficiencia y eficacia. Sin embargo, y a pesar de los avances, al adentrarnos en algunas de las entidades bancarias más prestigiosas del mundo, o en las herramientas empleadas por las Administraciones Públicas, nos encontramos con proyectos rudimentarios que, pese a dar una respuesta correcta, no han logrado que evolucione el código fuente en que están desarrollados.

El legacy code en la gran empresa

Para entender el devenir de la tecnología en los últimos cincuenta años es indispensable mencionar el legacy code, expresión que hace referencia al código que se queda obsoleto, algo que puede ocurrir en años, meses e incluso días. Pero, si está obsoleto, ¿por qué se sigue empleando en proyectos de primer nivel? La respuesta es simple: a pesar de que ansiamos pensar que la democratización del progreso es una realidad ineludible y universal, hay que tener en cuenta las limitaciones técnicas y de recursos a las que deben hacer frente las entidades.

La fórmula magistral pasa por lograr la innovación a través del software obsoleto, fomentando la creatividad y la circularidad tecnológica

El legacy code está presente en la mayoría de las grandes compañías del mundo y cimienta la tecnología empleada en el desarrollo de sus operaciones diarias: en realidad, los anacronismos tecnológicos son la base del progreso. Pese a los intentos por modernizar algunas aplicaciones, la realidad acaba imponiéndose, haciendo del código “antiguo” un camino eficaz y eficiente para dar respuesta a las necesidades actuales de las compañías.

Demodé es un adjetivo que muchas veces impide identificar las oportunidades que hay detrás del legacy code. Sin embargo, si cambiáramos nuestra apreciación de él, descubriríamos que contiene la posibilidad de desarrollar software con nuevas funcionalidades, que daría como resultado productos funcionales, sencillos y adaptados a las necesidades de empresas y usuarios.

Explorar sinergias

Hemos de poner de relieve el pragmatismo que permite el legacy code y pensar en un nuevo modelo de desarrollo que tenga en cuenta las capacidades presentes en el código heredado, para poder ampliarlas y explorar las sinergias que se pueden generar combinando lo antiguo con lo nuevo; una disonancia que, sin embargo, permite la necesaria armonía dentro del desarrollo.

Podemos establecer una especie de analogía, en el ámbito tecnológico, entre el legacy code y la economía circular, que busca nuevos usos a los desechos o productos que han quedado obsoletos. En lugar de reconstruir de forma completa el código fuente que compone un software, lo reutilizamos para incrementar sus funcionalidades y mejorar su eficiencia.

El legacy code está presente en la mayoría de las grandes compañías del mundo y cimienta la tecnología empleada en el desarrollo de sus operaciones diarias

Por ejemplo, si disponemos de un sistema de gestión de inventario para un supermercado, es probable que, de forma genérica, una parte central de la aplicación se centre en eso: en la gestión del inventario. De este modo, se podría aplicar este código en un dominio diferente, lo que supondría una gran oportunidad que no necesariamente guarda relación con ese negocio: el desarrollo de aplicaciones en menor tiempo y con un menor número de recursos materiales, económicos y humanos.

El mercado actual, influido por la obsolescencia programada y las tendencias y modas que cambian y alteran de forma constante el paradigma de consumo, no da lugar a la reutilización para el desarrollo de nuevas aplicaciones. Estamos equivocados. Disponer del conocimiento existente en torno al legacy code es importante para el desarrollo de nuevas utilidades y para la contribución al progreso tecnológico del tejido empresarial.

Ante la realidad actual, en la que los cambios son impredecibles, la tecnología progresa a pasos agigantados. El código que da vida a las aplicaciones corporativas define la hoja de ruta que hay que seguir para responder a las necesidades del mercado. El cambio y el progreso tecnológico se regirán en los próximos años por una suerte de fórmula magistral a la que, hasta el momento, se ha prestado poca atención: lograr la innovación a través del software obsoleto, fomentando la creatividad y la circularidad tecnológica.