miércoles, agosto 08, 2007

La humildad como virtud del programador

Y no me refiero a modestia frente a los otros (que también puede ser una buena cualidad) sino humildad con uno mismo y con lo difícil de hacer realmente bien este trabajo. En este sentido, sin más, le cedo la palabra a Jonathan Edwards, quien en Beautiful Code dice:

Una lección que he aprendido por la vía difícil es que no somos lo suficientemente listos. Incluso los programadores más brillantes cometen errores estúpidos con frecuencia. No solo errores de tecleo (typos) sino errores básicos de diseño que ponen en una situación difícil al código, y que a posteriori deberían haber sido obvios. La mente humana no es capaz de comprender en su conjunto la complejidad de un programa de tamaño moderado, mucho menos los sistemas monstruosos que construimos hoy en día. Esta es la amarga pastilla que nos tenemos que tragar, porque programar atrae y recompensa al inteligente, y su cultura fomenta la arrogancia intelectual. Me ha ha sido de inmensa ayuda trabajar con el supuesto de que soy demasiado estúpido para hacer las cosas correctamente. Esto me hacer usar de modo conservador aquello que ha funcionado, testear cautelosamente las nuevas ideas antes de confiar en ellas y por encima de todo, apreciar la simplicidad.
Curiosamente habla de un libro que me gustaría mucho adquirir y cuya existencia comenté por aquí.

Sobre el mismo tema, me gustaría recordar una famosísima cita de Brian Kernighan:

Depurar es el doble de difícil que escribir el código por primera vez. Entonces, si escribes código tan inteligentemente como te sea posible, no vas a ser, por definición, suficientemente listo para depurarlo.

Actualización: Creo que no ha quedado claro (he escrito la entrada demasiado rápido), pero lo que me parece curioso del comentario de Jonathan Edwards, es que es una justificación de porqué no escribió en Beautiful Code a pesar de estar invitado para ello, con una explicación tan inspirada que irónicamente merecería estar en el libro... :)

La humildad como virtud del programador en barrapunto

4 comentarios:

Leonardo Micheloni dijo...

Muy interesante post, eso me recuerda a la frase de Linus "ante los suficientes ojos todos los errores son obvios", por supuesto que nuestros ojos con mucha frecuencia no son los suficientes. Creo que las nuevas generaciones de programadores entienden esto de la complejidad, ahora falta hacer que lo entiendan los dirigentes de las empresas y los de marketing. Saludos.

mig21 dijo...

Hola Leonardo!

Si, es cierto que los dirigentes deberían aprender a calibrar lo que cuesta hacer y mantener sistemas robustos

Quizás los técnicos deberíamos calibrar también que si alguien paga poco por un sistema quizás sea lógico reducir esos poco importantes requisitos no funcionales como estabilidad, seguridad, mantenibilidad... Como profesional seguramente cuesta asumirlo, sin duda, pero si alguien paga por un coche barato ¿le vamos a hacer un Mercedes?

Un saludo y gracias por el comentario

NomadAndrea dijo...

Hola hoy el es día del blog y te seleccioné como blog aquí
Entre cables Sueños,cemento y piel:5 blogs
( este comentario no es necesariamente para ser publicado)
saludos

mig21 dijo...

Hola Andrea!

vuelvo de vacaciones y me encuentro con este comentario...

Te agradezco mucho que te hayas acordado de mi blog en esa selección :)

Un saludo
Miguel