El hombre es el único animal que tropieza |
dos veces con la misma piedra, folklore popular |
En la columna pasada hablamos de testeo de software y en ésta continuamos con un tema afín. Me he basado en dos artículos de la IEEE Computer de Julio de este año que van directo al blanco. Uno trata de la poca planificación del desarrollo de la industria de software y el otro sobre productos de software dañados que compramos uno tras otro igual que lemings que se tiran al mar. Una famosa frase refleja estos problemas: al parecer lo único que se aprende de estudiar historia es que nadie aprende de la historia.
Productos Accidentales
La mayoría de las tecnologías más populares e influyentes nunca fueron pensadas para ser usadas como se usan hoy en día ni para dominar el mercado de la manera en que lo hacen. El éxito de MS-DOS/Windows, Unix/Linux, varios lenguajes de programación y World Wide Web demuestran este hecho. No quiere decir con esto que son buenos o malos, sólo que no fueron diseñados para lo que son hoy. Los que conocen la historia de DOS y CP/M sabrán de qué hablo o de cómo prototipos cómo X-Windows o Mosaic han cambiado la historia. Estos y otros casos son ejemplos claros de productos y sistemas accidentales que han terminado dominando nuestro mundo y al mismo tiempo han debilitado nuestra confianza en poder moldear el futuro tecnológico. De acuerdo a Karl Reed, ésta debería ser una tarea de los profesionales de la computación, los cuales no sólo deberían informar acerca de nuevos avances o problemas, sino también dirigir el desarrollo y uso de las tecnologías de la información.
Windows'98
¿Usted aceptaría un auto en el que tuviera que detener el motor y encenderlo de nuevo para poder usarlo (esto se cuenta como chiste pero en realidad no es gracioso) o un televisor que le diera una descarga eléctrica de vez en cuando? Ciertamente no, pero eso lo aceptamos en software. En Marzo de este año, Microsoft reconoció, en una reunión privada con sus distribuidores, que 5 mil errores de Windows'95 se habían corregido en Windows'98 (¡pero no dijeron cuantos errores habían agregado!). Es decir que millones de copias de software se vendieron dañadas causando un costo irreparable a los consumidores. Por otra parte, Windows NT está, supuestamente, certificado en el nivel de seguridad C2 para su uso en Internet. Sin embargo, un estudio hecho por Shake Communications Pty. Ltd. reveló 104 problemas, algunos de ellos muy serios, que lo hacen vulnerables a hackers.
Windows'95 contiene cerca de 15 millones de líneas de código. Usando estimaciones de Caper Jones, un código de este tamaño tiene un número potencial de errores de casi 3 millones, lo que sirve para estimar cuantas pruebas hacer. Para reducir este número a cinco mil, esto significa al menos unas 18 iteraciones en las pruebas. Aunque posiblemente las compañías de software debieran realizar más pruebas, esto aumenta el costo y retrasa la salida del producto al mercado. Lamentablemente la historia muestra que sacar nuevas versiones de forma rápida muchas veces implica un producto exitoso. Esto ocurre por que el consumidor no discrimina conforme a la calidad. Esto es menos cierto para productos críticos, como un servidor Web. Aquí es más importante la calidad y de ahí el dominio del servidor de Apache sobre un sistema operativo tipo Unix, aunque sea un software de dominio público. Muchas compañías dicen no usar software público porque no tiene soporte. Sin embargo, la mayoría de los productos de PCs, en particular Windows, tampoco tienen soporte. Windows NT tiene alrededor de 25 millones de líneas de código, lo que significa que se deben hacer más pruebas para tener los niveles de confiabilidad necesarios. En síntesis, necesitamos compañías de software serias y con altos niveles de calidad si queremos enmendar el rumbo.
Referencias
Si tiene preguntas o sugerencias, envíe e-mail a rbaeza@dcc.uchile.cl