En la película de 1971 «Harry el sucio», Clint Eastwood interpreta a un policía duro y astuto. En la escena inicial, detiene con frialdad un robo a un banco disparando a los atracadores con su enorme pistola Smith & Wesson Magnum .44 de cañón largo. Suenan los disparos y solo queda un atracador, herido. Harry se acerca a él y pronuncia la frase que se ha convertido en la frase emblemática de esta película. «Sé lo que estás pensando. ¿Disparó seis tiros o solo cinco? Bueno, para decirte la verdad, con toda esta emoción, yo mismo perdí la cuenta. Pero como se trata de una Magnum 44, la pistola más potente del mundo, capaz de volarte la cabeza, tienes que hacerte una pregunta: ¿te sientes afortunado? Bueno, ¿te sientes afortunado, gamberro?». El gamberro se rinde y le pregunta a Harry cuántos disparos le quedaban. Harry le apunta con la pistola y aprieta el gatillo. La pistola está descargada. El atracador tuvo suerte.
¿Confía en la suerte para garantizar que sus aplicaciones críticas sigan funcionando en su empresa día tras día? ¿O dispone de un conjunto de procedimientos de prueba previos al lanzamiento que garantizan que funcionen exactamente como se espera? Planteo esta pregunta porque últimamente me preguntan si es necesario o recomendable reconstruir una aplicación al actualizar la versión del sistema operativo. Puede que no sea necesario reconstruir su aplicación, pero le aconsejo que lo haga, tanto si utiliza Windows, Linux, VOS u OpenVOS. Aunque los proveedores de estos sistemas hacen todo lo posible para garantizar que sus nuevas versiones sean compatibles con el código existente, sigo pensando que lo más seguro es reconstruir y volver a probar el software en la nueva versión, y no confiar en la suerte.
Cuando se ejecuta una aplicación de misión crítica, creo que es obligatorio realizar este nivel de inversión. De lo contrario, como en la escena de la película, se corre el riesgo de exponer a la empresa a consecuencias realmente desagradables. La pregunta que hay que hacerse es la misma: ¿me siento afortunado? Con todos los cambios que se están produciendo (nuevo código del sistema, quizás una actualización de la CPU a un procesador más rápido, quizás algunos cambios en las aplicaciones), ¿cómo puedo estar seguro de que nada saldrá mal?
La respuesta es crear un conjunto cuidadoso de pruebas de calificación. Al reconstruir el código fuente en la nueva versión, obtendrá las correcciones de errores del compilador y del tiempo de ejecución que estén disponibles. Es posible que el compilador tenga algunos mensajes de error nuevos que revelen defectos latentes en el código fuente. Al volver a ejecutar las pruebas a nivel de unidad, podrá estar seguro de que los aspectos funcionales de la aplicación siguen funcionando según lo previsto. Al volver a ejecutar las pruebas a nivel del sistema, podrá estar seguro de que todo funciona correctamente. Por último, al ejecutar una serie de pruebas de capacidad o de estrés, sabrá que todo el conjunto de hardware y software puede soportar las cargas más severas que se le puedan aplicar. Además, tendrá una medida del rendimiento máximo de su aplicación y podrá utilizar esta cifra durante los próximos meses como indicador de la capacidad libre que queda disponible.
Hagas lo que hagas, no caigas en la trampa de creer que, como no tuviste ningún problema con la versión anterior o con el hardware antiguo y más lento, no encontrarás problemas al actualizar. Nuestras propias estadísticas internas muestran que los defectos del software se correlacionan con el aumento de la velocidad del procesador. Problemas que antes eran desconocidos, o simplemente raros, pueden convertirse en habituales en un procesador más rápido. El software que funciona durante años puede fallar fácilmente cuando el crecimiento normal del volumen de transacciones provoca desbordamientos de colas. La única forma de saber si sus aplicaciones funcionarán correctamente en el nuevo entorno es realizar las pruebas más realistas y completas que pueda.
No te encuentres mirando fijamente un arma preguntándote cuántos disparos le quedan. No te arriesgues con una aplicación crítica para la misión. No confíes en la suerte. Mantén el control de la situación. Encuentra los problemas en tu laboratorio, no en tu entorno de producción.
Si sigues estos pasos, podrás relajarte después del trabajo, sabiendo que has hecho todo lo posible para garantizar que tus sistemas funcionen correctamente. Quizás incluso tengas tiempo para ir al cine.
Eso es todo por ahora.
