Lista de problemas vinculados al año 2000
Propósito de este documento:
La información que sigue es un intento de organizar la creciente lista de los inconvenientes asociados al año 2000. Nos ayudará a estimar la magnitud del problema que tenemos por delante, planificar el proyecto, especificando los requerimientos de herramientas necesarias y prevenir los problemas ocultos mediante la realización de las pruebas correspondientes con anticipación.
Ordenar el caos: pero como?
Fue difícil decidir una estructura lógica para todos los problemas encontrados. Debería organizarlo por la profesión de la persona que aborda el tema? Por el objeto donde se presenta el problema? Por el tipo de programa? Todas estas propuestas son razonables. El resultado corresponde a lo que fue lo mas intuitivo para mí. Reconozco que no se trata de una propiedad científica pero para mí funciona. He creado una estructura de árbol con las siguientes ramas principales:
•Organización y Sociedad
•Hardware y Sistemas operativos
•Estructura de Datos
•Software de aplicación
•Interfaces
•Análisis
•Cambios
•Validación
Compilación de temas Año 2000 (versión 2.0)
Esta lista es una compilación de problemas (y a veces soluciones) mencionadas en la literatura en el YEAR2000 Internet forum. He eliminado algunos elementos que se repiten y otros que son demasiado técnicos para que yo los pueda tratar correctamente. El árbol es una estructura dinámica que nunca se termina. Cualquier comentario será bienvenido.
Los números indican la estructura del árbol (por cuestiones referenciales). En cualquier nivel el orden es al azar para permitir los agregados sin necesidad de modificar la numeración.
1 Organización y Sociedad
Este aspecto está muy poco documentado en comparación con la parte técnica En parte porque este ítem depende mucho de la organización. Sin embargo, Micro Focus ha presentado muy buen material al respecto en la conferencia de Usuarios (19 de mayo de1995.)
1.1 Problemas entre semejantes
1.1.1 El problema del misil
Ud. arregla todos los problemas internamente. Pero aparece otra organización, con la cual Ud. no tiene nada que ver, con problemas. (podría ser un proveedor externo que cambie sus aplicaciones ).
1.1.2 Empresas relacionadas se equivocan
Que sucederá cuando los proveedores no puedan entregar porque su computadora no funciona? Cuando las cosas no son despachadas a sus clientes? Cuando no hay comunicaciones por algunas horas? Piense en el peor escenario..
1.1.3 Problemas importados
Esta es una verdadera amenaza para el manejo de proyectos.
1.2 Acuerdos de Nivel de Servicios
1.2.1 ACSs con proveedores de software.
El problema del año 2000 parte del acuerdo? Quien pagará. Los proveedores estarán mejor posicionados que Ud. en las negociaciones y puede hacer un gran negocio. Asegúrese mediante referencias.
1.2.2 ACSs con el departamento de Sistemas
Esto puede ser serio.
1.3 El problema de la negación
Excusas bien documentadas [De Jager, Micro Focus], por ignorancia, intereses personales. Un problema serio es que Ud. necesita un ejemplo concreto de algún desastre que ya haya ocurrido para que le presten atención; pero aún no ocurren las tragedias. Es como el huevo o la gallina.
1.4 Prioridades
Las grandes organizaciones tienen muy ocupada la agenda de Sistemas. Perder millones demorará otras cosas.
1.5 Centros en retroceso
Ellos tienen los mismos problemas y probablemente menos experiencia.
1.6 El día del juicio final
1.6.1 Sábado
Un alivio para la mayoría de las empresas, pero no para todas, el primero de enero de 2000 es un sábado. Los problemas que se pasaron por alto aparecerán cuando no tenga mucha gente disponible.
1.6.2 El primer día
Durante el primer día del nuevo MILENIO se pueden generar problemas en redes globales debido a los cambios de zonas horarias. Una cuestión difícil: quién es responsable?
1.7 El riesgo de la oportunidad
Bien documentado. Porque no estandarizar formatos de fecha y nombres y … Puede ocurrir que debamos utilizar bases de datos relacionales u OO, que ocurre con las modificaciones de los sistemas actuales combinados? . Cualquier falla y los proyectos quedan fuera de control. (y las fechas de implementación no se pueden mover.)
1.8 Los proveedores de soluciones
1.8.1 Como conseguirlos?
Un año atrás era un problema. Ud. era el primero que preguntó. Ese inconveniente actualmente está resuelto. Las hordas lo contactarán sin que los llame. Elija el mejor. [Gartner] ofrece algunos buenos datos al respecto.
1.8.2 Como mantenerlos alejados?
Ud. lo ha dicho claramente: lo hacemos nosotros con un pequeño grupo de expertos externos. No se sorprenda si ellos contactan a su gerente y lo ridiculizan.
1.8.3 Como mantenerlos afuera después?
Déjelos revisar su software. Por supuesto que no perderán la oportunidad. Pero ahora ellos son LOS expertos en su sistema. Las empresas especializadas en el año 2000 no presentan este efecto secundario.
2 Hardware Y Sistemas Operativos
2.1 Específicos de Hardware
Este punto está muy incompleto. Será interesante ver como crece esta parte del árbol.
2.1.1 Tandem.
Información no verificada en un problema que ya ocurrió con la fecha de expiración de una licencia de software causó inconvenientes debido a la diferencia de formato de fecha (DDMM) y (MMDD) El problema fue resuelto y puede ser un caso interesante.
2.1.2 IBM 390.
Información repetida pero no verificada indica que el sistema tendrá serios problemas.
2.2 Específicos de Sistemas Operativos
2.2.1 Unix: OK (sin verificar)
2.2.2 VMS: OK (sin verificar)
2.2.3 DOS:
La fecha pasa a 1980 en la mayoría de los casos [De Jager] (verificado)
2.2.4 Windows 3.1:
Salta generalmente a 1900 [De Jager] (verificado)
2.3 Compiladores
3 Estructura de datos
3.1 General
3.1.1 año de 2 dígitos
Este es el problema básico.
3.1.2 Otros días trágicos
Las fechas están en diferentes formatos y tamaños. Algunos formatos utilizan desplazamientos que cuentan días o milisegundos. Esto puede causar errores de desbordamiento Se han informado muchos casos.
3.1.3 fuera de rango
3.1.4 Ambigüedad
Las fechas en las aplicaciones deben ser reinterpretadas. En la mayoría de los sistemas esto no es un problema. Pero que sucede cuando en un sistema el punto de corte (pivot) no coincide con otros.
3.1.5 Aritmética.
La raíz de todos los problemas. [Christenson] presenta un buen análisis en el YEAR2000 forum.
3.1.5.1 Calculo de cantidad de días, etc.
3.1.5.2 Clasificación de datos (Sort).
3.1.5.3 Selecciones basadas en campos clave
3.1.5.4 Selecciones basadas en campos que no son clave
3.2 Bases de Datos y archivos de datos (ISAM, VSAM)
3.2.1 Específicos de Bases de Datos
3.2.1.1 DBASE3: falla (sin verificar)
3.2.1.2 DBASE4: OK (sin verificar)
3.2.1.3 Oracle: OK (sin verificar)
3.2.2 Fechas de expiración en validación de registro
4 Software de aplicación
4.1 General
Es importante distinguir entre el software desarrollado internamente del comercial
Puede esperar que los proveedores ofrezcan soluciones (si todavía andan por ahí), gratis si la competencia es grande. Si no consigue ayuda de los proveedores y no tiene los programas, Ud., tiene un problema cuya única solución por el momento es el reemplazo del software.
4.1.1 Específicos de lenguajes de programación
Algunos inconvenientes son mas frecuentes con algunos lenguajes que con otros.
4.1.1.1 Los lenguajes orientados a objetos no tendrán grandes problemas
4.1.1.2 En BASIC y COBOL los valores iniciales son cero por omisión (default).
4.1.2 El año bisiesto
Este inconveniente también podría estar en Sistemas Operativos. Se ha reportado que ISPF tiene este problema Los sistemas desarrollados internamente tienen mayor chance de sufrir este problema (por las dudas: el 2000 es un año bisiesto!)
4.1.3 Abuso de los campos de fecha
4.1.3.1 99 indica último registro, fecha infinito u otra cosa
4.1.3.2 00 para señalar que el dato es nulo
4.1.3.3 99 00 como valores por omisión
4.1.3.4 Interpretaciones especiales del 00
4.1.3.5 Centuria 19 por programa
4.1.3.6 Centuria con manejo separado
4.1.4 Uso de fechas en campos alfanuméricos.
4.1.5 Programas fuente no disponibles
Ahora Ud. puede reemplazar (caro), hacer pruebas de caja negra(complejo y prolongado) o realizar reingeniería (complejo y prolongado).
4.1.6 Sin documentación o desactualizada.
A nosotros no nos va a ocurrir!
4.1.7 Licencias con fecha de expiración
El sistema no funciona. Perfectamente ocultado por el proveedor. Esta puede ser realmente una bomba de tiempo.
4.2 Específico de Aplicaciones
4.2.1 Excel: OK (sin verificar)
4.2.2 Lotus: OK (sin verificar)
4.2.3 Access: problemas de clasificación (sin verificar)
4.3 Software de aplicación por función
4.3.1 Sistemas de respaldo (backup)
Errores in el manejo de las fechas puede forzar a que nunca se realicen respaldos incrementales (archivos que han cambiado). Que se borren los archivos antes de la última actualización puede llevar a una masiva pérdida de datos.
4.3.2 Sistemas en tiempo real
4.3.3 Relojes de redes
Si falla la hora del servidor, fallan todos los equipos clientes.
4.3.4 Software de impresoras
4.3.5 Pronósticos, herramientas de planificación
Estos productos tendrán problemas antes que el resto y probablemente ya se estén solucionados.
4.3.6 Aplicaciones controladas por computadoras
Es fácil olvidarse alguna de estas.
4.3.6.1 PABX (centrales telefónicas)
La central de la compañía telefónica.
4.3.6.2 Ascensores
4.3.6.3 Sistemas de seguridad
Todos los permisos han expirado! El primero de enero nadie puede entrar.
4.3.6.4 Satélites
4.3.7 Sistemas de correo electrónico
Store? and forward?
4.3.8 Calculo de intereses
5 Interfaces
5.1 Interfaces entre máquinas
5.1.1 Interface entre máquinas (en su red)
Bien documentado (el problema, no las soluciones) Equipos sueltos son fáciles de verificar y corregir. Equipos en red requieren cambios sincronizados
5.1.2 Entre compañías
Los problemas se pueden presentar con transmisiones de EDI o con intercambio en medios magnéticos.
5.2 Interfaces de usuarios (pantallas)
5.3 Salidas impresas
6 Análisis
6.1 Elección de herramientas
Un tema difícil. Ud. debe conocer que sistemas tiene, que herramientas existen y como estas herramientas se adecuan a sus sistemas. Por lo tanto Ud, debe tener una idea sobre que consultores necesita y que es lo que pueden ofrecer. No se olvide que estos expertos tienen muchas herramientas disponibles y saben como utilizarlas, pero puede ocurrir que en algunos casos sea necesario desarrollar herramientas específicas..
6.2 Elección de la estrategia
[Christenson] elaboró su trabajo 'Cambiar datos o programas?''(Change data or programs?)'. [Gartner] presentó algunas pautas. Los puntos relevantes son: exposición de los negocios, ciclo de vida de los sistemas , tiempo, perfil de la compañía respecto a las plataformas, sistemas operativos y ambiente de desarrollo de software, disponibilidad de mano de obra adecuada, sensibilidad de las aplicaciones a las fechas, disponibilidad de programas fuente y documentación, etc..
6.3 Confidencialidad
Ud. está dispuesto a darle acceso a sus datos y aplicaciones a terceros?
6.4 Detección
6.4.1 Una aguja en el pajar
Es difícil encontrar fechas cuando no hay normas de codificación. Esto es vale para los programas y para las llamadas externas..
6.4.2 Propagación
Es muy común utilizar variables internas para cálculo. Las variables que se utilizan para fechas en algún caso y para datos alfanuméricos en otro puede indicar a las herramientas que muchos campos alfanuméricos sean seleccionados como candidatos de campos de fecha.
7 Cambios
Probablemente sirva 'Cambiar datos o programas?' [Christenson] nuevamente.
7.1 Cambio de programas
7.2 Cambio de módulos de copia
7.3 Cambio de campos de fecha
7.3.1 Cambio de semántica
7.3.1.1 Utilizar notación hexadecimal
7.3.1.2 Reemplazar desplazamiento
7.3.1.3 Empaquetado
7.3.2 Falta de espacio
Agregar dos dígitos a millones de registro puede traer problemas de espacio
7.3.2.1 Ganar espacio para las fechas a costa de otros datos
7.3.2.2 Aprovechar espacio no utilizado en los registros
7.3.3 Fechas como campos clave
7.3.4 Estandarización
ISO 8601 tiene un estándar. EDIFACT para mensajes EDI.
7.4 Cambio de las fechas existentes
7.4.1 Utilizar "menor que" para encontrar la centuria
Fácil solución en muchos casos.
7.5 Cambio en pantallas y listados
7.6 Cambio de interfaces
7.6.1 Cambio de la definición de la interface
7.6.2 Agregar programas adaptadores (bridge)
Lo mejor serían adaptadores universales que tipo de fecha ingresa y que reemplace el formato viejo por el nuevo y viceversa.
7.7 Actualizaciones combinadas
7.7.1 Pasar a COBOL II o COBOL 370
7.7.2 Pasar a bases de datos relacionales
8 Validación
8.1 Desarrollo de grupos de aplicaciones de prueba
Se ha informado que no solo hay que verificar las fechas que corresponden al año 2000 sino que la prueba debe alcanzar desde la actualidad y hasta el año 2003 por lo menos.
Serge Bouwens
PTT Telecom
Netherlands
© 1995, Serge Bouwens (serge@cistron.nl) Contacte al autor para permisos de reproducción
Traducción y adaptación: Fernando Namias
Fernando Namias y Asociados
Argentina