El Costo de los Errores de Programación

La compañía estadounidense Knight Capital Group desarrolló un sistema computarizado para comprar y vender acciones principalmente en la bolsa de valores de Nueva York (New York Stock Exchange o NYSE). En vez de que las órdenes de compra y venta fueran directamente al NYSE, muchos fondos de inversiones las enviaban a Knight Capital en donde su sistema las acumulaba con otras órdenes para obtener mejores precios. La fama de Knight Capital se debía principalmente a que podía manejar un volumen muy alto de órdenes y a su habilidad de procesarlas más rápido que nadie en el mundo. La semana pasada un error de programación en una versión actualizada del sistema provocó la compra y venta de acciones de manera errática por 45 minutos durante los cuales Knight perdió 450 millones de dólares. La compañía perdió virtualmente todo su capital y lo más probable es que se declare en bancarrota si no encuentra alguien quien la rescate.

La semana pasada aquí en nuestro estado la compañía que maneja los programas de computadora de los centros de verificación de automóviles intentó actualizar dichos programas. El resultado fue que dejaran de funcionar los sistemas frustrando a los automovilistas que no pudieron verificar sus autos después de estar haciendo cola por mucho tiempo. No puedo dejar pasar la oportunidad de mencionar algo ajeno al tema de estas Cavilaciones relacionado a estos centros de verificación. Se publicó que el 30% de los autos nuevos no pasan la inspección. La explicación de los responsables del programa fue que probablemente se debe a defectos de fábrica y que los dueños de estos autos tendrán que ir a las agencias a que los revisen. Esto me parece absurdo. Yo creo que es más probable que la causa sean errores en los programas de computadora del sistema. Después de todo, si no pueden ni actualizarlos sin que se caigan, ¿cómo vamos a creer que no haya errores en el proceso de verificación?

En otros artículos he tocado brevemente el tema de lo difícil que es escribir programas de computadora confiables. Los programas consisten de líneas de código que le dan instrucciones a las computadoras de lo que tienen que hacer escritas con ortografía y sintaxis muy precisas en una variedad de lenguajes de programación. Hay una regla conocida en las ciencias computacionales que dice que un buen programador puede escribir sin errores únicamente un promedio de 10 a 12 líneas de código al día. Hay programas comerciales populares que tienen millones de líneas de código (el sistema operativo Windows XP tiene más de 40 millones). Todos tienen miles y miles de errores. Las compañías de software tienen que actualizar sus programas constantemente para corregir los más serios generalmente relacionados con vulnerabilidades a virus y a ataques cibernéticos.

Hay muchos factores que contribuyen a la mala calidad de los programas de computadora. Primeramente, escribir programas es un proceso creativo muy flexible similar al de escribir un libro. Si yo soy un maestro de historia y les pido a mis diez alumnos con instrucciones muy detalladas que escriban un ensayo acerca de la Batalla de Trafalgar, lo que recibiré son diez textos muy diferentes, con muchos errores, unos muy bien escritos y otros que dan lástima. Lo mismo pasa cuando le pido a un programador que escriba un programa. Otro factor es que nunca ha habido reglamentación en cuanto a quien está capacitado para programar. Es casi imposible que yo vaya a un hospital y que me opere alguien que no estudió medicina. No conozco las cifras pero no dudo que más de la mitad de los programadores del mundo no estudiaron ciencias computacionales. Estudiaron otra cosa o no tienen carrera universitaria. Basándome en más de 25 años de experiencia dirigiendo el desarrollo de software con diversos grupos de programadores, la calidad del trabajo de un alguien que estudió ciencias computacionales generalmente es muy superior a la de un autodidacta. Pero también es cierto que no es necesario tener un grado universitario para tener éxito como lo han demostrado Bill Gates, Steve Jobs y Mark Zuckerberg.

Concluyo afirmando que no todo está perdido. Sí es posible desarrollar software confiable y muchas empresas lo logran con empeño, disciplina y compromiso para ofrecer sistemas de buena calidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *