¿Arte, o ingeniería?

Febrero 1, 2002 - Publicaciones

Para "construir" un programa de computo no hacen falta materiales (que se deterioran y también se los roban durante la construcción), solo hacen falta programadores que escriban una secuencia de instrucciones (en un lenguaje de programación) que la computadora sigue siempre al pie de la letra. La computadora nunca se equivoca: solo sabe ejecutar programas; de hecho, sin los programas las computadoras son inútiles.

La industria de software es, hoy, una de las más importantes del mundo. En el 2001 se vendieron varios cientos de miles de millones de dólares en software, que no incluye el que escribieron internamente los programadores de empresas e instituciones ni el que escribieron estudiantes y programadores independientes, que no cobran por el uso de sus programas.

Hace 30 años (cuando el Ministerio de Hacienda cometió la imprudencia de nombrarme en un puesto de programador 1) la programación de computadoras no era una carrera ni arte ni ciencia, si acaso un oficio. Además, era un oficio sin futuro: los programadores éramos muy jóvenes y la mayoría no podía esperar para hacer otra cosa. Creo que entonces habían como 100 programadores en el país.

Industria floreciente. Hoy hay más de 7.000 graduados en cosas como Computación e Informática, incluso algunos tenemos títulos en Ingeniería de Software. La industria de software ha florecido en el país, pero, con todo, no creo que haya más de 1.000 personas en Costa Rica que se ganan la vida escribiendo programas todos los días. De lo que sí estoy seguro es de que, en promedio, los programadores siguen siendo muy jóvenes.

Hay quienes aseguran que la ingeniería de software es una contradicción de términos, que si las casas y los puentes se cayeran tan a menudo como se caen los programas de cómputo, estaríamos viviendo en cavernas. Es, por supuesto, posible que con varios miles de años de desarrollo la programación logre un nivel de certeza similar al de otras ingenierías (aunque dudo que en los inicios de la ingeniería civil las casas y los puentes se cayeran tieso y parejo).

Estudios empíricos realizados por la British Computer Society muestran que la diferencia en productividad entre un bueno y un mal programador es de 40 a 1. Menos de un 1 por ciento de los programadores llegan a los 50 años como programadores. Esto antes se debía a estructuras salariales que obligaban a buenos programadores a cambiar de trabajo para ganar más. Hoy, en organizaciones que reconocen el valor del programador, uno bueno puede ganar más que un gerente; sin embargo, la edad promedio del programador es aún menor que hace 30 años.

Sin pulgas. El meollo del asunto parece ser que programar duele, la computadora no perdona. Si las instrucciones no se escriben bien, el programa se "cae", da error, deja de funcionar. Al ser humano, no le gusta que le recuerden constantemente sus errores e insuficiencias. Por razones históricas, a los errores en los programas se les llama "pulgas". Siempre he dicho que un buen programador no es el que mejor encuentra y corrige pulgas sino el que escribe programas sin pulgas. Ahora bien, es difícil saber si el buen programador nace o se hace, lo que sí es cierto es que no hay sustituto al talento.

Durante los últimos 20 años han pululado herramientas que proclaman que van a hacer obsoleto al programador (recordemos las Case) Lo cierto es que la demanda de programas de calidad es hoy mayor que nunca y las expectativas son de que seguirá creciendo indefinidamente. Por ejemplo, se estima que, para que la Internet inalámbrica sea exitosa, debemos desarrollar 100.000 aplicaciones para encontrar las 100 que llevarán la tecnología al éxito comercial. Esto es una clara oportunidad para utilizar la creatividad y capacidad de innovación reconocida de nuestro talento informático para ser participes, no espectadores, en este nuevo género (tema para otro artículo).

No sé si la programación es un arte o una ingeniería. Si sé que no es cualquiera el que puede desarrollar una carrera de largo plazo en programación y que los enfoques ingenieriles y matemáticos, desarrollados en los últimos 20 años, han mejorado notablemente la calidad (a pesar de la cantidad) del software. Considero muy probable que la programación llegue a ser una ingeniería desempeñada por artistas.

Artículo publicado en el periódico La Nación