Hace unos días nos dejaba Fred Brooks, otro de los pioneros de la ingeniería de software. Fred Brooks ha contribuido en multitud de campos, desde sistemas operativos a arquitectura de computadores, pero es conocido por el “gran público” sobre todo gracias al libro The Mythical Man-Month. La idea central del libro es que añadir más gente a un proyecto que va con retraso lo va a retrasar aún más.

También es de sobras conocido su artículo No Silver Bullet donde afirma que no hay solución mágica a los problemas del desarrollo software e introduce las nociones de complejidad accidental y esencial de todo proyecto

Los que queráis a conocer más a fondo la vida de Fred Brooks, os recomiendo esta entrevista que le hizo otro de los grandes, Grady Booch.

Pero hoy, más que recordar sus grandes contribuciones científicas, prefiero recordarlo traduciendo su texto “The Joys of the Craft” (parte del libro que enlazábamos antes), donde explica muy bien el porqué nos gusta tanto nuestra profesión, ¡que nunca está de más recordarlo!. También habla de “lo malo” pero eso ya otro día. Recordad también que el texto fue escrito hace más de 40 años con el lenguaje y contexto de su tiempo.

El placer de programar

¿Por qué es divertida la programación? ¿Qué alegrías puede esperar como recompensa quien la practique?

En primer lugar, el puro placer de hacer cosas. Así como el niño se deleita con sus pasteles de barro, el adulto disfruta construyendo cosas, especialmente cosas diseñadas por él mismo. Creo que este deleite debe ser una imagen del deleite de Dios al hacer cosas, un deleite que se muestra en la distinción y novedad de cada hoja y cada copo de nieve.

En segundo lugar, el placer de hacer cosas útiles para los demás. En el fondo, queremos que los demás utilicen nuestro trabajo y lo encuentren útil. En este sentido, el resultado de la programación no es esencialmente diferente del primer portalápices de arcilla del niño “para el despacho de papá”.

En tercer lugar, está la fascinación por resolver problemas complejos en forma de rompecabezas, con piezas móviles entrelazadas, y verlos funcionar en ciclos sutiles, reproduciendo las consecuencias de los principios incorporados desde el inicio. El ordenador programado tiene toda la fascinación de la máquina de pinball o del mecanismo de la gramola, llevada al extremo.

En cuarto lugar, está la alegría de aprender siempre, que surge de la naturaleza no repetitiva de la tarea. De un modo u otro, el problema es siempre nuevo, y quien lo resuelve aprende algo: a veces práctico, a veces teórico, y a veces ambas cosas.

Por último, está el placer de trabajar en un medio tan manejable. El programador, como el poeta, trabaja sólo ligeramente alejado del puro pensamiento. Construye sus castillos en el aire, a partir del aire, creando mediante el esfuerzo de la imaginación. Pocos medios de creación son tan flexibles, tan fáciles de pulir y reelaborar, tan fácilmente capaces de realizar grandes estructuras conceptuales….

Y aun así, la construcción del programa, a diferencia de las palabras del poeta, es real en el sentido de que se mueve y funciona, produciendo resultados visibles independientes de la propia construcción. Imprime resultados, dibuja, produce sonidos, mueve brazos. La magia del mito y la leyenda se han hecho realidad en nuestra época. Tocas las teclas adecuadas en un teclado y una pantalla cobra vida, mostrando cosas que nunca fueron ni podrían ser.

Programar es divertido porque satisface nuestros anhelos creativos internos y deleita las sensibilidades que tenemos en común con todas las personas.