En la última década del siglo XX, se empezó a hablar de la existencia de un problema tecnológico llamado: problema del milenio, problema del año 2000 o problema Y2K, debido a que desde los años 1950, cuando comenzó la programación de los computadores, para ahorrar espacio en disco y en memoria, que eran recursos muy escasos y costosos, los campos de fecha se almacenaban con el formato corto aa/mm/dd en vez del formato largo aaaa/mm/dd y por lo tanto, una fecha de nacimiento como el 31 de mayo de 1901 se almacenaba como 01/05/31 en vez de 1901/05/31, lo cual permitía ahorrar 2 bytes o sea 16 bits por cada campo de fecha, sin considerar que si por ejemplo, se elaboraba un producto con fecha de vencimiento 31 de mayo de 2001, al usar ese formato corto que no incluía la centuria, el dato indicaba que el producto vencería el 01/05/31 en vez de 2001/05/31, lo que era interpretado por los programas, como si el producto estuviera vencido desde hacía casi un siglo y por eso debía ser rechazado.
A partir de 1990, una vez concientizados los programadores sobre ese inconveniente, en los nuevos diseños y programas se comenzó a usar el formato de fecha larga, pero había millones de aplicaciones en uso e incluso sistemas operativos heredados del pasado, que tenían alojado en sus millones de líneas de código “el huevo de la serpiente” y así fue como muy cerca del final del siglo pasado se creó una histeria colectiva, porque se podía producir un apocalipsis informático con el cambio del milenio y se pronosticaban catástrofes tales como: parada de centrales eléctricas, mal funcionamiento de instalaciones nucleares, caída de aviones o satélites y también fallas en comunicaciones, lanzamiento de misiles sin control, colapsos en sistemas de misión crítica y fallas en las aplicaciones más comunes como son: inventarios, pedidos, despachos, facturación, cobranzas, nóminas, contabilidad, etc, por la existencia de este bug informático.
Para el año 1998, yo trabajaba en una institución financiera, donde había diversidad de aplicaciones tanto bancarias como administrativas y tuvimos que enfrentar en equipo el reto del milenio con el proyecto llamado Y2K, por lo cual se debió reactualizar el inventario de software y hardware existente en la entidad y nos encontramos con diversidad de sistemas operativos, manejadores de bases de datos, lenguajes de programación, aplicaciones y también equipos, dentro de los cuales algunos sistemas eran propios, otros eran de terceras partes y otros funcionaban bajo la modalidad de outsourcing, pero en algunos casos no existían los programas fuente ni tampoco sus programadores o proveedores originales y por lo tanto, en esos casos una solución era desarrollar e implantar una nueva aplicación en muy corto plazo, si esta no existía en el mercado una aplicación similar.
Cuando los programas fuente sí existían, se procedía a modificarlos y en el caso de la existencia de contratos con terceras partes, había que solicitarles que hicieran las correcciones a sus aplicaciones.
Había casos en que los sistemas operativos (SO) estaban obsoletos como era por ejemplo para los PC, los SO anteriores a Windows 98 que era la última versión para la época y por lo tanto no solo había que cambiar dichos sistemas operativos sino también los PCs y las aplicaciones en algunos casos y la fecha límite para tener todo a punto, era el viernes 31 de diciembre de 1999, cuando debía estar completamente: probado, certificado, implantado o migrado todo el hardware, el firmware, el software o los datos impactados por el evento Y2K.
La aplicación que existía para manejar cuentas corrientes y cuentas de ahorros era un sistema demasiado antiguo llamado SAFE, que estaba programado en lenguaje ensamblador, que era un lenguaje de bajo nivel, cuya existencia databa desde 1950, el cual reemplazó a la programación en lenguaje de máquina, donde había que programar en código binario y afortunadamente, aún quedaban expertos en el sistema y en ese lenguaje con medio siglo de antigüedad, pues los lenguajes de programación fueron evolucionando con la aparición de otros lenguajes de alto nivel como fueron: Fortran IV, Cobol, PL/I, RPG II de los años 1960 y 1970 y luego vinieron los lenguajes orientados a objeto que también fueron evolucionado, hasta llegar a algunos de uso actual como es el C# 2019, entre otros muchos, que hacen parte de la torre de Babel informática.
El proyecto de preparar todos los sistemas informáticos y sus plataformas, para recibir sin sobresaltos el año 2000 a causa del bug Y2K, se realizó a nivel mundial por todas las instituciones y el personal de sistemas como también de los usuarios, quienes hacían pruebas y control de calidad, tuvieron en algunos casos que trabajar horas extras, sábados, domingos y días feriados, porque no había justificación para las excusas y se tenía una espada de Damocles sobre la cabeza, que era el 31 de diciembre del año 1999 y no se podía acudir tarde a la cita con el tiempo.
Llegada la fecha crítica, mientras se celebraba el cambio de año, de siglo y de milenio, en todo el mundo el personal de sistemas e informática estuvo en guardia para responder ante cualquier contingencia y en nuestro caso particular, afortunadamente no existieron reportes sobre incidencias adversas, pero en otros lugares del mundo sí ocurrieron algunos problemas menores, que pudieron ser resueltos en corto tiempo por el personal responsable y el planeta siguió girando en el nuevo milenio hasta la fecha actual, dejándonos la gran experiencia de poder organizarnos para atacar en equipo un problema común de manera universal, que en mi opinión es lo que deberíamos replicar con la crisis de la pandemia, que reviste riesgos mucho mayores que el caso Y2K, pues impacta diversas dimensiones, donde es deseable que haya más: unión, coordinación, cooperación y racionalidad de todas las personas, naciones, gobiernos y entidades responsables, sin exclusiones ni mezquindades de ningún tipo, porque la fuerza unida es poderosa y ahora está en riesgo el futuro de la humanidad.
El área de sistemas de información es demasiado dinámica, debido a que existen muchos investigadores y creadores de productos informáticos que liberan con mayor frecuencia, nuevas versiones de aplicaciones o herramientas cada vez más poderosas, simples y amigables, de tal forma que el profesional de la materia si no se mantiene en constante actualización, corre el riesgo de convertirse en un analfabeto tecnológico en muy corto plazo.
Con el paso de los años, he visto que algunas organizaciones aún utilizan sistemas informáticos de 25 o más años de antigüedad que las hace vulnerables, debido a que algunas de las plataformas y herramientas subyacentes son obsoletas y ya no poseen soporte por parte de los proveedores, pero además, el personal que conocía esas herramientas antiguas ha ido desapareciendo y el material de consulta se ha ido retirando de Internet, lo que dificulta hacer mantenimiento en caso de necesidad y por lo tanto, sería una buena práctica considerar la posibilidad de actualizar “sin prisa pero sin pausa”, todos los elementos de hardware, software y también los procesos, que hacen parte de los activos informáticos de las instituciones tanto públicas como privadas, pues existe la costumbre administrativa de usar más allá del tiempo de vida útil los sistemas informáticos que, en mi opinión no debería pasar de los 10 años, si se quiere estar relativamente actualizado en materia de tecnología, aunque esta praxis implique costos importantes, que realmente se deben ver como sanas inversiones.
Hoy subsisten sistemas heredados de administraciones anteriores que, aunque superaron el problema del Y2K hace 20 años, actualmente son muy obsoletos tecnológicamente y por tanto sería útil que en este receso pandémico, siguiendo la recomendación de Horacio “carpe diem”, de acuerdo a las capacidades, posibilidades y planes para el futuro de cada organización empresarial, se comenzaran a revisar y a actualizar los procesos y sistemas más críticos para sus negocios, para poder estar preparados con los cambios de paradigmas y nuevos retos que vendrán en la pospandemia y para no tener que estar dando carreras por emergencias, pues al igual que como se requieren 9 meses de gestación para que un niño nazca sin taras, el ciclo de vida de los sistemas no se puede improvisar, pues consta de varias fases que son: definición, análisis, diseño, programación, pruebas, implantación y pos implantación, que si se logran hacer con buenas prácticas profesionales y en los lapsos razonables, implicarán menos tiempo dedicado al mantenimiento futuro y redundarán en el cumplimiento de la continuidad de las operaciones empresariales de forma más: segura, competitiva, exitosa, eficiente y eficaz.