Todo se puede aprender
...si se quiere.
Home » , » Las 25 Leyes de la Programación

Las 25 Leyes de la Programación

Si te dedicas profesionalmente a desarrollar programas, alguna vez has hecho tus cositas en el mundo de la programación o simplemente eres un poquito geek, estoy seguro que según vayas leyendo esta entrada empezarás a sentirte mas que identificado con los enunciados que a continuación les voy a dejar. Y es que aunque no estén escritas, cualquier programador experimentado sabe que a la hora de desarrollar software existen una serie de axiomas o leyes que siempre se cumplen sin remedio. Si consigues zafarte de alguna de ellas, te felicito, eres un crack.

Sin mas dilación les dejo con las 25 leyes de la programación. Si no has tipiado código en tu vida, probablemente no llegues nunca a entender el verdadero alcance de las mismas.


  1. Cualquier programa, no importa cual, se queda obsoleto nada mas instalarlo.
  2. Es más fácil cambiar las especificaciones para que se ajusten al programa que viceversa.
  3. Si un programa es útil, alguien te obligará a hacer cambios en el.
  4. Si un programa es inútil, alguien te obligará a documentarlo exhaustivamente.
  5. Solamente el 10 por ciento del código de cualquier programa llegará a ejecutarse en algún momento.
  6. El Software crece siempre hasta consumir todos los recursos disponibles.
  7. Cualquier programa no trivial, contiene al menos un error.
  8. La probabilidad de hacer el ridículo en una demostración pública de tu software es directamente proporcional al número de gente viéndola, creciendo además de manera exponencial el riesgo cuanto mayor sea la cantidad de dinero invertido en dicha aplicación.
  9. Hasta que un programa no lleve al menos 6 meses en producción no se descubrirá su error mas grave.
  10. Hay una variedad infinita de errores indetectables. Por contra, los detectables son por definición finitos.
  11. El esfuerzo requerido para corregir un error se incrementa de manera exponencial con el tiempo.
  12. La complejidad de un programa siempre crece hasta que excede la capacidad del programador que lo tiene que mantener.
  13. Cualquier código de tu autoría que no hayas revisado en meses, bien podría haberlo escrito cualquier otra persona, porque al volverlo a revisar no te enterarás de nada.
  14. Dentro de cada pequeño programa hay un gran programa pujando por salir a la luz.
  15. Cuanto mas pronto comiences trabajar en tu programa, mas tiempo te llevará.
  16. Un proyecto mal planificado necesita hasta tres veces mas tiempo de lo esperado para terminarlo; un proyecto cuidadosamente planificado solo lleva 2 veces mas tiempo de lo estimado al principio.
  17. Meter mas programadores en un proyecto que va con retraso tan solo consigue retrasarlo mas.
  18. Un programa nunca está menos de un 90% completo y nunca mas de un 95% completo.
  19. Si tu programa automatiza una porquería, solo conseguirás una porquería automatizada.
  20. Construye un programa que incluso un tonto pueda usar y solamente un tonto querrá usarlo.
  21. Los usuarios en realidad no saben lo que quieren de un programa hasta que lo usan.
  22. 100% compatible es una expresión 50% falsa.
  23. Es imposible hacer un programa 100% contra tontos, ya que estos son muy ingeniosos. 
  24. No importando cuanto tiempo hayas probado la versión final de un programa, los bugs aparecerán en la presentación al público. 
  25. Por cada Bug que elimines en un programa, aparecerán tres más. 

¿Que te parecen? Son como las leyes de Murphy de la programación y siempre se cumplen. Probablemente alguna se nos queda en el tintero. ¿Se te ocurre alguna otra que no esté aquí reflejada?.

A continuación les dejo otras leyes:

* Ley fundamental de Murphy
Si algo puede ir mal en un programa, podemos apostar a que irá mal.
* Teorema de Patrick
Si un programa anda bien de primera, seguro que se ha empleado el algoritmo y (posiblemente) la computadora equivocada.
*Postulados de los lenguajes naturales
La pericia en el arte de programar es directamente proporcional al número de insultos que el programador profiere durante el desarrollo del programa, e inversamente proporcional al cuadrado de la distancia que recorre desde la computadora hasta la cafetera más cercana para “despejar la mente”.
* Ley de Gumperson
La probabilidad de que ocurra un determinado error de ejecución es inversamente proporcional a su importancia y al deseo por parte del programador de que suceda.
* Regla de Ketterin
Cuando un programa no funciona, es por una razón distinta de la que el programador cree que provoca que no funcione.
* Factor de futilidad
Ningún programa es nunca un completo fracaso: puede servir siempre como un mal ejemplo.
* Principio de gravitación selectiva de Newton-Hindenburg
Cuando un teclado cae al suelo, inevitablemente aterriza por donde el daño puede ser mayor.
* Postulados del cálculo mental
a) Si puede cometerse un error en los cálculos, desde luego que ocurrirá, y de tal forma que haya que rehacer todas las operaciones.b) Todos los valores de las constantes terminan siendo variables.c) En todo calculo, el valor que se creía mas correcto es el causante de todos los errores.d) El punto decimal se las ingenia para colocarse por su cuenta en el peor sitio.
* Ley de Biondi
Si tu proyecto no funciona, repásate la parte que te parecía que no era importante.
* Axioma de Robert
Sólo existen los errores.
* Corolario de Berman para el axioma de Robert
El error de un hombre es el dato de otro.
* Quinta Ley de la Fiabilidad
Equivocarse es humano, pero para complicar las cosas es necesaria una computadora.
* Guía de Murphy de cara a la ciencia moderna
Si es verde y se mueve se trata de biología; si huele mal, de química; y si no funciona, de física o informática.
* Segunda ley de Gilb sobre las computadoras
Cualquier sistema que dependa de la precisión humana, es impreciso.
* Tercera ley de Gilb sobre las computadoras

Los errores no detectables son infinitos, mientras que los detectables son, por definición, finitos.