En el número de la revista "Scientific American" del pasado mes de septiembre apareció un artículo jugoso sobre la llamada ingeniería de software. Permítame que la traiga aquí, ya que en ella se ofrecen datos y opiniones de interés.
De esta forma se nos informa de la profunda crisis de la construcción de software, poniendo de manifiesto la aparente ciencia, tecnología o historia contradictoria de una ciencia que se está expandiendo en constante crecimiento entre los fracasos. Y los ejemplos de ilustración y las cifras de dólares multi-cero no faltan.
Por un lado, los expertos aseguran que en los próximos años, en lo que respecta al uso de los ordenadores, se observarán grandes cambios. Dicen que estamos ante una explosión de software real. Por ejemplo, si el programa de ordenador del proyecto Apollo de los EEUU de 1970 contaba con cerca de 10 millones de instrucciones, el denominado Space Shuttle de los años 80 llegó a los 40 millones. En el mismo sentido, la cantidad de código que contienen los productos de consumo se ha duplicado en dos años.
Más líneas de programas, por supuesto, aumentan significativamente la probabilidad de cometer errores. En consecuencia, la posible prolongación de los proyectos puede dar lugar a la suspensión de los mismos. Según la estadística, a partir de cierto tamaño la probabilidad de cancillación puede llegar al 50%, su extensión (¡si consigue terminar!) se duplica.
Cada vez más, la industria está demandando sistemas distribuidos, es decir, programas ejecutados en ordenadores conectados a la misma red. Los problemas surgen a la hora de integrar estos sistemas. A este respecto, el Consulting Group de IBM publicó los resultados de una encuesta realizada en 24 empresas punteras. Las cifras eran escalofriantes: el 55% del proyecto tuvo un coste superior al esperado, el 68% se terminó fuera de su plazo y el 88% requirió de reestructuraciones profundas. Y la encuesta no señaló una característica importante: hasta qué punto eran fiables a la hora de ejecutar los programas.
Sin embargo, los números más sorprendentes se dieron en el siguiente caso: La Administración Federal de Aviación (FAA), con la intención de renovar o sustituir completamente el sistema de control del tráfico aéreo, dedicó esta función a la empresa Federal System Company de IBM, por la garantía que ésta prestaba como líder en el desarrollo de software.
Anunciando la complejidad del proyecto, la DFA estaba dispuesta a pagar 500$ por línea de programa, cantidad cinco veces superior a la media de las industrias de los EEUU en sus proyectos de desarrollo. Por otro lado, no debemos olvidar que la industria del País Vasco, al menos en lo que respecta al software creado por los Centros Tecnológicos, queda bastante alejada de esta media de 100$.
Tras la puesta en marcha del proyecto, la DFA está pagando cada línea del nuevo software entre 700 y 900$. El motivo es que cada línea del código ha necesitado una corrección media. El programa, con 5 años de retraso, supera en más de 1.000 millones de dólares el presupuesto.
Cabe señalar que la mayoría de las empresas a las que se refiere el artículo son vinculadas a la administración. Si no se ha podido sorprender del déficit presupuestario de los EEUU.
El núcleo de esta crisis radica en que los programas de software, en gran medida, son productos artesanales. Hasta que el desarrollo de software se convierta en una verdadera actividad industrial, no habrá auténtica revolución informativa. Esta preocupación no es de ayer por la mañana. En la década de los 70 se hablaba de programación estructurada; en la de los 80 se hablaba de sistemas CASE (Ingeniería de software asistida por ordenador); en la actualidad, de programación orientada a objetos. Todas ellas se presentaron como la llave de la programación sistemática y productiva, pero no han conseguido perder la situación actual.
Por otro lado, a medida que avanza la industrialización de la construcción de software se está convirtiendo en una tarea de los países en desarrollo con mano de obra barata y cualificada. Así, por ejemplo, India obtuvo en 1994 una exportación de software de 360 millones de dólares, un crecimiento del 60% respecto al año anterior, mientras que en 1985 las exportaciones de software en la India fueron de sólo 6 millones de dólares. Esto no reduce su dependencia. Arquitectura de sistemas, es decir, actividad de mayor valor añadido, ya que se realiza en EEUU.