Sistemas legacy y ciclo de vida del software

Cada cierto tiempo aparecen ofertas de trabajo buscando experiencia en entornos COBOL (1959), FORTRAN (1954), LISP (1958), PASCAL (1970)… los lenguajes de programación no desaparecen, las aplicaciones desarrolladas en ellos tampoco… pero si pueden evolucionar.

Los mantras más repetidos «no se cae», «es estable», «es seguro», «si funciona no lo toques»…  lo vimos hace poco con el ejemplo de THEOS Corona, vamos a realizar la comparativa con algo más cotidiano, como resultado de una necesidad específica: el coche.

Existe gran cantidad de modelos, pero debemos conocer las necesidades para ajustarnos lo más posible, iremos a los extremos para intentar ilustrarlo mejor. Si realizamos 4.000 km al año, no desplazamos más de 200 kg de carga, su utilización no excede de 1 hora continuada, la temperatura media externa es de 26 grados, todo en ello en un ambiente urbano sin grandes desniveles podremos aproximar que casi cualquier coche podría servirnos.

Ahora bien, si queremos mostrar al vecino del cuarto nuestro poderío automovilístico cada vez que bajemos al garaje, sin problema de financiación, en lugar de tener un Honda Jazz podemos tener un Lexus LFA. Ambos son coches fiables con cuatro ruedas que nos llevaran del punto A al B sin mayor problema.

Por otro lado, deberemos prever durante cuánto tiempo estaremos utilizándolo, con el mismo o similar propósito, mantenimientos a realizar durante su periodo, posibles problemas derivados de un uso inadecuado, situaciones inesperadas…

Si bien el planteamiento inicial de un proyecto puede diferir del resultado final, el coste asociado al mismo dependerá de nuestra capacidad de evaluación, previsión y definición de objetivos claros. Que un sistema informático quede anticuado, pero siga siendo utilizado no quiere decir que sea mejor o peor que uno actual, pero es un punto limitante importante, de la misma forma que lo sería utilizar un coche con carburador o arranque con platinos.

Cuando una empresa decide realizar un proyecto personalizado, el resultado acaba plasmado en una o varias tecnologías dependiendo de los recursos que quiera destinar, si los plazos son importantes para el cliente final también debe ser contemplar su ciclo de vida.

Actualizaciones, parches y otras batallitas

Parece una tarea poco agradable, reiniciar el ordenador cuando lo requiere, esperar la  instalación… pero es más que necesario tener nuestro software actualizado, sobre todo el Sistema Operativo y cada vez más nuestros navegadores web.

Durante su vida útil es difícil, por no decir imposible, desarrollar un programa 100% libre de problemas y fallos, has leído bien si… ¿pero vosotros no desarrolláis? ¿No estas echando piedras sobre tu propio tejado? Todos somos humanos (por ahora) imagina un grupo de trabajo tan numeroso… hablamos de 1.000 personas aproximadamente para Windows 7.

¿Y nosotros? A cualquier escala lo realmente importante es tener la suficiente capacidad de reacción para tomar las medidas oportunas y atajar el problema a tiempo. Durante el desarrollo siempre se toman medidas de calidad y testeo, una vez en producción pueden aparecer nuevos requerimientos, necesidades…

Tan importante como lo descrito hasta ahora es la capacidad del cliente, o usuario final, (que no siempre son lo mismo) de acotar los problemas de manera entendible. Por ejemplo, si un desplegable no muestra una opción correcta, ¡no significa que todo el programa deje de funcionar! Si además hay que hablar con otros fabricantes… el tema se complica.

La gravedad del problema varía según la repercusión que tiene sobre el núcleo de mi negocio, un médico es capaz de distinguir entre la necesidad de amputar una pierna o de poner una tirita, no todo puede entrar con urgencia a los desarrolladores.

Para poder reproducir un problema reportado es necesario saber qué pasos se han dado para llegar a ese punto, si además incorporamos información relevante el tiempo de reacción disminuye, una simple captura de pantalla o volcado de datos puede ahorrar tiempo, y por tanto ¡dinero!

La próxima vez que aparezca una actualización en Windows 8.1, Office, Firefox, Mac… recuerda que para llegar hasta aquí fue necesario el trabajo de un grupo de más o menos humanos.