[PHP Conference Argentina 2013 - 5 de Octubre]
Todo programador heredará en algún punto código que es frágil, difícil de manipular, y aún más difícil de testear. En esos casos las opciones son muy sencillas:
* Reprogramar todo
* Continuar como si nada
* Reemplazar paso a paso
En algunos casos una reprorgramación íntegra es justificable, aunque si el código está en producción lo más probable es que está produciendo ganancias, ahorrando costos, o mejorando el accionar de tu cempresa. En esos casos comenzar de cero no es práctico. Si estás convencido que no puedes continuar como si nada, entonces el problema es: ¿cómo mejoras el código incrementalmente a lo largo del tiempo?
Vamos a introducir el concepto de "Code Upcycling" (reciclado de código) y cómo se lo utiliza para mejorar un sistema heredado. El Code Upcycling resuelve los siguientes problemas:
* Diversidad de código: los sistemas heredados tienen normalmente código antiguo y APIs en deshuso, todo mezclado con nuevos conceptos y patrones de diseño. Hacer que el código se vuelva consistente es clave.
* Problemas de dependencia: si el código no se puede aislar entonces no puede ser testeado. Es importante que el código heredado pueda testearse.
* Tamaño del código: los sistemas heredados son normalmente grandes. Esto hace que el problema de la diversidad de código y los inconvenientes de dependencia crezcan exponencialmente.
* Equipos pequeños: si tienes un equipo pequeño, sus miembros están normalmente a cargo de una variedad de tareas, como la administración de sistemas y hasta el contacto con el cliente. Tienes que tener un plan para que el código evolucione sin alterar otras responsabilidades.
* Sed de innovación: la mayoría de las veces el solo hecho de actualizar el código heredado para que sea consistente y testeable no es suficiente. Los clientes y el mercado demandan nuevas funcionalidades.
Ven a escuchar la lucha, los problemas y la naturaleza incompleta de evolucionar el código heredado, y cómo estamos solucionándolo en nuestro viaje de Upcycling.