Uno de los requerimientos a la hora de hacer sistemas es que éstos se puedan actualizar. Sin embargo, en mi experiencia, cada vez que se hace una versión nueva de un software es muy común tener que reescribir el código (parcial o totalmente) de nuevo.

Para analizar un poco el tema hay varios puntos que tienen que ver con la industria y con cómo se manejan los proyectos:

  • Cambios Tecnológicos: en Web o Aplicación tradicional los programas, herramientas y plataformas cambian constantemente. Cada año, cada mes sale algo nuevo. Es importante usar herramientas y plataformas estables, que tengan unos años en el mercado para tener un poco de seguridad y no sufrir cambios drásticos que nos obliguen a cambiar código y hasta a veces hardware. También está el tema de adaptarse. Un ejemplo es PHP. Cuando apareció PHP5 mucha gente (me incluyo) tardó en mudarse porque realmente no había necesidad. Pero ya desde hace un año, mas o menos, el producto se volvió más estable y los beneficios se hicieron más evidentes. Sin embargo hay muchos servidores que todavía usan versiones viejas de PHP4.
  • Programación Orientada a Objetos: este es el centro del asunto y es acostumbrarse a programar orientado a objetos, todo en clases y funciones para que sea más fácil hacer micro cambios sin afectar la estructura de la clase y obviamente separar programación de diseño… este es uno de los puntos que defiende el tema de la actualización.
  • Planeamiento: un mal planeamiento hace que un sistema sea menos actualizable. El ejemplo que siempre doy es que si uno quiere un rascacielos, pero como el tiempo y el presupuesto limitan se va a empezar con solo 5 pisos y se contruye el edificio para solo soportar esos cinco pisos entonces olvídese del rascacielos. Si la base está manal no importa cuanta plata y tiempo le invierta, no va a servir.
    A la hora de planear es necesario saber todo, para eso están los analistas de sistemas y el análisis. Si, da pereza, y muchas veces las empresas no quieren darle mucha importancia a esta parte porque un análisis implica darse cuenta no solo de lo que está bien sino también de un montón de debilidades y errores. Esto ocurre mucho en empresas con poca estructura o empresas familiares en donde todos mandan.

En general podemos decir que un sistema bien estruturado va a ser actualizable. Pero si se seleccionan mal las herramientas, plaaformas y se planea mal desde el principio no solo no va a ser actualizable sino que va a necesitar cambios y soporte constantemente.