Seguramente todo el mundo ha sido invadido por la nostalgia en algún punto de sus vidas, y en lo que a tecnología se refiere, hemos vuelto a desempolvar toda clase de ordenadores, consolas u otros dispositivos. Tal vez para recordar, o para comparar las mejoras que tenemos hoy en día respecto a estos viejos aparatos.
Pero si hay algo irrefutable sobre las antiguas tecnologías es que todo parecía más sencillo que ahora, y con toda la razón, el hardware, programación y protocolos se han vuelto cada vez más refinados y complejos con el pasar de los años.
Pero esta sencillez que presentan los sistemas antiguos es un arma de doble filo. En este artículo vamos a rememorar el famoso bug Y2K (también conocido como Millenium bug), un problema muy sencillo de entender y que supuso pánico y quebraderos de cabeza a los ingenieros de los 90. La fecha del día negro, el bug Y2K, cumple hoy 26 años.

En este artículo vamos a repasar lo que fue, que implicaciones tuvieron y que enseñanzas nos dejó este mal trago en la historia de la informática. Y por supuesto cerraremos con las mejores anécdotas que nos dejó el bug Y2K.
Inicio del problema
En la computación del siglo XX, la memoria tenía un coste muy elevado, y los programadores hacían cuanto podían para ahorrar el máximo de espacio optimizando los programas allá donde se podía. Por esto era prácticamente universal el empleo de una variable de 2 dígitos para referirse a los años:
- 67 → 1967
- 99 → 1999
- 00 → 1900 (👀 ¿Qué pasará en el 2000?)
Este método de ahorro de memoria iba a desencadenar en un problema futuro: Los programas tenían un alto riesgo de sufrir bugs o incluso crasheos una vez llegamos al año 2000. Tal vez pueda sonar un tanto estúpido en caliente, pero cuanto más pienses en ello más te darás cuenta de la “gran liada” que se avecina si no se hace algo al respecto.

Este problema que deberían afrontar y solucionar los informáticos del mundo para que las infraestructuras digitales sigan operativas es lo que se conoce como el bug Y2K. Y aunque a día de hoy pueda parecer que es un problema menor y de fácil solución, lo cierto es que los lenguajes de programación de la época, como el COBOL, se estructuraban de una forma caótica si tenemos en mente los IDE y lenguajes actuales, y esto daba pie a evitar las actualizaciones.
Los años previos al bug Y2K coincidieron con la época de oro de la regla informática “Si funciona, no lo toques” lo que amedrentaba el afán a solucionar el problema a tiempo.
Implicación
El problema del bug Y2K es estructural y muy delicado una vez llevas este sistema de fechas a producción para la mayoría de sistemas del mundo. La razón de que se siguiera haciendo es que, por un lado, esta manera de almacenar fechas cumplía con el cometido de ahorrar espacio en la memoria de los sistemas. Mientras que a su vez, el auge de la informática y su consiguiente optimismo por la evolución de esta derivarían en una solución a este problema sin ningún tipo de apuro.
Pero este segundo punto no se cumplió, al menos no en la resolución del bug Y2K, y es que financieramente hablando no había ninguna prisa por solucionarlo, ya que de esta manera se rentaba más la inversión informática vigente de cada organismo o empresa.

Hagamos un breve ejercicio en el que somos dirigentes de, por ejemplo, una entidad bancaria en los 90, y estamos en una mesa redonda debatiendo diferentes temas:
- No tenemos conocimientos, al menos profundos, de informática.
- Somos expertos financieros, ese es nuestro fuerte.
🙎🏻Señores, si os queréis echar unas risas hoy os recomiendo que leáis el informe del departamento de informática.
🙎🏼¿Qué dice el informe?
🙎🏻Hablan de un problema que aseguran que tendremos dentro de 8 años, y el presupuesto que requieren par solucionarlo es demencial, básicamente nos piden renovar por completo nuestro entorno de producción.
🙎🏼Tanta pantalla les ha debido freír el cerebro, ni loco apruebo semejante gasto…
🙎🏽¿Un cambio tan radical? Y si nos quedamos fuera de servicio durante una tarde, o, ¿¡varios días!?
🙎🏻Exacto, además nos dicen que es extremadamente importante afrontar esto a tiempo… Bah! Si es un problema para dentro de 8 años, en 8 años se solucionará.
🙎🏽Estoy contigo, además así seguimos rentando la infraestructura actual, ya habrá tiempo para solucionar esa tontería de idoská o como se llame.
🙎🏼Bueno pues, ¿votos en contra de la propuesta?
🙋🏻🙋🏼🙋🏽
Humanidad vs bug Y2K
Llegados aproximadamente a 1995, la sociedad ya no pudo seguir ignorando el bug Y2K. La fecha del colapso informático global se acercaba y el curso natural de la evolución de la informática no consiguió dar con la solución. Fue entonces cuando se desplegó un enorme esfuerzo global, que involucraría gobiernos, empresas, ingenieros y unos cientos de millones de dólares.
El primer gran reto fue identificar el problema, por eso todas las entidades del mundo se sometieron a auditorías para localizar sus sistemas informáticos, separar el software activo del obsoleto y analizar dependencias externas. Este ejercicio le vino bien además a muchas empresas, que encontraron “trastos en el baúl” que ni recordaban.

Una gran parte del problema se focalizaba en Mainframes, maquinaria industrial, sistemas escritos en COBOL, Fortran o PL/I o firmwares de dispositivos que no se podían apagar. Estos casos son, en su mayoría, críticos e irremplazables.
Una vez focalizados los sistemas susceptibles al bug Y2K tocaba hacer una purga completa del código, identificando dónde se empleó la variable de dos dígitos para el cálculo de fechas. Esto no fue algo tan simple, ya que a parte de fechas, este futuro fallo también se encontró en campos de bases de datos o comparaciones y cálculos temporales, por lo que el año no siempre esta explícito en el código. Aunque se usaron herramientas diseñadas para peinar líneas de código, muchos cambios se hicieron manualmente.
Lo más fácil sería expandir las fechas a 4 dígitos, pero esto no fue la única solución. En otras infraestructuras se hizo una ventana temporal donde se declaraba que los dígitos 00-49 correspondían a 2000-2049, mientras que 50-99 serían 1950-1999.
En otros lugares se aprovechó para hacer migraciones y actualizaciones en los sistemas, así como aislar y dar definitivamente de baja a esos ordenadores que tenían “por estar”.
Ya casi hemos vencido al bug Y2K, finalmente lo que se haría son laboratorios y pruebas aisladas donde se viajaría virtualmente al futuro para comprobar la efectividad de los cambios aplicados. Y no solo eso, para rematar la faena se planificaron planes de contingencia para estar preparados si las cosas fallaran al entrar al año 2000.
¿Qué paso el 01/01/2000?
Nada, gracias por leer:)

Pero bueno, si bien se consiguió de manera exitosa evitar el colapso informático y todos los sistemas críticos siguieron funcionando sin problemas, en algunas infraestructuras menos relevantes este bug dio lugar a una variedad de situaciones cómicas por todo el mundo:
- En Pensilvania, una computadora de una biblioteca escolar calculó mal los días de préstamo de libros y terminó cobrando cargos como si los libros hubiesen estado prestados por 100 años.
- En diciembre de 1999, Telecom Italia envió facturas con fechas de enero y febrero de 1900.
- En Nueva York, un cliente de un videoclub recibió una boleta que acumulaba un cobro de alquiler de película por 9.000 dólares.
- En Dinamarca, el primer bebé nacido el 1 de enero de 2000 fue registrado con 100 años de edad.
- En Francia, el servicio nacional de meteorología, Metéo Francia mostraría el parte meteorológico a fecha del 1/1/1900.
- Prácticamente en todo el mundo, aquellos que cogieran transporte público o pagaran el parquímetro tras la fiesta de noche vieja vivieron un auténtico show de fallas informáticas en las máquinas de tickets.

Con el bug Y2K la sociedad aprendió el coste de la deuda técnica y se adquirió una nueva visión de inversión, mantenimiento y comprobación de sistemas para asegurar el funcionamiento a largo plazo.


Deja una respuesta