Seguro que habéis oído hablar del juramento hipocrático de los médicos,  su promesa de comportarse de una forma médica en su ejercicio de la medicina.

Pues bien, los programadores también tenemos nuestra versión del juramento hipocrático. La propuso Uncle Bob en 2015 en este post. Lo que sigue es mi traducción libre de ese juramento. Para los que queráis más detalles, aparte del post mencionado, Uncle Bob grabó también una serie de vídeos donde profundiza en cada promesa. Enlace al final. Los pequeños comentarios/clarificaciones que añado en cada punto están sacados de sus comentarios en esos mismos videos.

Juramento hipocrático – versión programador

Para defender y preservar el honor de la profesión de programador, prometo que, en la medida de mis capacidaes y buen juicio:

  1. No produciré código dañino <– Ya sea código dañino para el cliente o para mis compañeros. Es dañino todo tipo de código que tú o tus compañeros consideren como tal.
  2. El código que escriba será siempre mi mejor trabajo. No dejaré de forma consciente que el código defectuoso (en forma o comportamieno) se acumule <- No dejes que un mal código forme parte de una nueva versión del software. Y si, debido a algún tipo de emergencia, tuviste que permitirlo, no dejes que se quede ahí para siempre.
  3. Produciré para cada nueva versión, una prueba rápida, segura y repetible de qué el código funciona como debería <- Hay que ser capaz de explicar y demostrar que los cambios en el código que hemos hecho no rompen nada y que efectivamente solucionan el problema.
  4. Organizaré las nuevas versiones de forma que sean pequeñas y frecuentes, para así no obstaculizar el progreso de los demás <- Todo lo que hagas hazlo en pequeños pasos. Así no bloqueas a los demás.
  5. Mejoraré mi código sin descanso y sin piedad a cada oportunidad. Nunca lo degradaré o haré peor
  6. Haré todo lo que pueda para mantener mi productividad, y la de los demás, tan alta como sea posible. No haré nada que la perjudique <- Sois un equipo, ten siempre en mente los demás a la hora de diseñar tu propia estrategia.
  7. Me aseguraré continuamente de qué otros puedan cubrirme la espalda y yo la suya <- Tienes que conocer como funciona el código de tus compañeros, donde están los documentos importantes, … No puede haber silos. Una manera de facilitarlo es con pair programming. Sois un equipo, no un conjunto de individuos.
  8. Mis estimaciones serán honestas tanto en magnitud como en precisión. No haré promesas sin estar seguro de ellas <- Las promesas hay que cumplirlas. Asegúrate antes de hacerlas. Mejor hacer estimaciones dando el número para el caso mejor, peor y “nominal” (aquél en el qué las cosas van como deberían) y asegurarse que el cliente entiende que el caso peor puede realmente darse.
  9. Nunca dejaré de aprender y mejorar mis habilidades <- El aprendizaje tiene que ser continuo. Aprende nuevos lenguajes, frameworks, técnicas,… sin parar

Para ver a Uncle Bob describiendo él mismo estas promesas, podéis mirar esta serie de vídeos: https://www.youtube.com/playlist?list=PLWKjhJtqVAbno-B4RmJHCDO0ZUKC2tpUQ

Y si creéis que sobra/falta alguna promesa, ¡decírnoslo en los comentarios!

 

La licencia hipocrática para el software libre

En el mundo del software libre hay también una licencia llamada Hippocratic license que se autodefine como una licencia ética para comunidades de software libre.

Tiene un enfoque diferente al juramento anterior aunque comparten el objetivo de evitar que el código se use para fines que vayan en contra los derechos humanos. La idea es que puedas usar esta licencia en tus proyectos open source de forma que se permita la reutilización de tu código siempre que sea bajo el respeto a estos derechos básicos.

Ah, y, evidentemente, en una sociedad donde hay tantas decisiones que se toman de forma automática por algoritmos, ellos también tienen que cumplir sus propias normas éticas.