Hace muchos años, a finales de los noventas, trabajaba como guardia de seguridad cuidando el edificio de un centro de formación técnica que había quebrado. Este se encontraba en Moneda, entre Amunategui y San Martín. En su tejado pasé la noche del año nuevo del 1999 al 2000, mirando los fuegos artificiales de la Torre Entel comiéndome un pollo asado que me habían regalado unos transeúntes que iban a ver los fuegos.
En sus instalaciones se encontraban restos de materiales para la formación de técnicos en odontología, como modelos de maxilares con dientes de goma, maniquíes, y hasta un modelo a tamaño real de un cerebro hecho no se de que materiales, pero que parecía muy real.
Sin embargo, lo que mas llamaba mi atención era la biblioteca del extinto centro. Un salón enorme repleto de libros tirados por el suelo y amontonados en viejos estantes conteniendo la sabiduría de épocas perdidas.
Era una delicia pasar las noches explorándola buscando que leer hasta encontrar un libro que llamase mi atención y tirarme cuan largo era en un viejo sillón después de poner un casete de Iron Maiden en una radio igual de vieja.
Fue en una de esas bonitas sesiones que encontré un libro, el cual en ese momento me puse a leer de puro intruso. El título era curioso; The psychology of computer programming, de Gerald Weinberg ¿Como se va a aplicar psicología a las computadoras? fue la primera idea que se me ocurrió cuando empecé a ojearlo. Después de unas paginas ya entendía que donde se hablaba de psicología, se refería a las personas que programaban, es decir, el autor veía la programación como una actividad humana y social, intentando entender como las personas crean software y se reunen para hacerlo, dentro de una organización; un ambiente donde se desempeñan.
Uno de sus capítulos trataba sobre aceptar los errores entendiendo que estos no significan un menoscabo a la persona del programador; pues es muy distinto decir encontré errores en mi código, que decir encontré errores en el código que escribí. Lo que trae a colación el concepto de la propiedad del código. Los programadores no son dueños del código que escriben en el mismo sentido que los pintores son dueños de la obra que pintan, aunque la pinten para otros. Ejemplificando, Leonardo siempre estará asociado al cuadro de La Gioconda, pero los programadores que participan en un equipo escribiendo código para un proyecto no tienen propiedad sobre este y lo mas seguro es que nadie los recordará cuando se hayan ido del equipo y hayan pasado algunos años.
Ahora, muchos años después de esos eventos, y siendo yo mismo después de muchas vueltas de la vida un programador que comete muchos errores, recordar esa lectura me hace pensar en los problemas que enfrentaban los programadores del pasado, y en como estos problemas no han cambiado tanto aunque hayan pasado hartos años desde que se publicara el libro (1971) Es curioso como aunque en este tiempo han aparecido cientos de lenguajes, las máquinas han aumentado exponencialmente su potencia, y se hayan descubierto nuevos e interesantes patrones, los problemas que enfrentan las personas al programar siguen siendo, citando al autor:
- Instrospección sin validación
- Observaciones sobre una base muy estrecha
- Observar las variables equivocadas, o fallar en detactar las correctas
- Interferir con el fenomeno observado
- Generar muchos datos y poca información
- No fijarse en efectos grupales y comportamientros de grupo
- Medir solo lo simple de medir
- Transferir resultados a situaciones inaplicables
¿Le suenan conocidas algunas de estas proposiciones? Desde que trabajo como programador las veo una y otra vez, cayendo en ellas. Me hacen sentir una cierta hermandad con el viejo investigador que las propusiera.
Después de meditar, la conclusión a la que llego trata sobre la humildad que deberíamos adoptar quienes escribimos código. Inevitablemente cometeremos errores, por lo que debemos estar abiertos y preparados a que aparezcan. Porqué la programación es una actividad humana, realizada por humanos, y no somos infalibles.
Dejo el enlace a Google books y a amazon de The Psychology of Computer Programming para quien pudiera interesarse.
0 comentarios:
Publicar un comentario