Como cualquier profesion, el diseño y desarrollo de software se rige por ciertas leyes, aqui algunas de estas "leyes" con las que tenemos que lidiar nosotros los programadores:
Teorema de Patrick:
"Si un programa se ejecuta bien a la 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 numero 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 mas cercana para -despejar la mente-."
Ley fundamental de Murphy:
"Si algo puede ir mal en un programa, podemos apostar a que ira mal."
Ley de Solve:
"Los problemas complejos tienen soluciones simples, comprensibles y equivocadas."
Constante de Skinner:
Es la cantidad de lineas de codigo tales que:
a) Agregadas a las lineas de nuestro programa, impiden que entre en memoria, y
b) quitadas de nuestro programa, no permiten que funcione de la forma que se habia previsto en un principio.
Regla de Ketterin:
"Cuando un programa no funciona, es por una razon distinta a la que el programador cree que provoca que no funcione."
Ley de Gumperson:
"La probabilidad de que ocurra un determinado error de ejecucion es inversamente proporcional a su importancia y al deseo por parte del programador de que esto suceda."
Teorema de Anderson-Bermudas:
"La posibilidad de que un programa se pierda es inversamente proporcional a la cantidad de copias disponibles del programa."
Postulados sobre la vida util de los programas:
a) Cualquier programa, al estrenarse, resulta obsoleto.
b) Si un programa sirve, debera ser modificado.
c) Todo programa tiende a crecer hasta ocupar toda la memoria disponible.
d) La complejidad de un programa ira creciendo hasta sobrepasar la capacidad del programador de entenderlo.
Postulado sobre la programacion de Troutman:
"La blasfemia es el unico lenguaje que de verdad conocen todos los programadores."
Leyes de Gilb sobre las computadoras:
1ra.- Las computadoras son poco seguras, pero las personas lo son menos.
2da.- Cualquier sistema que dependa de la precision humana, es impreciso.
3ra.- Los errores no detectables son infinitos, mientras que los detectables son, por definicion, finitos.
Ley de Brook:
"Añadir mas mano de obra a un proyecto de software que va retrasado, lo retrasa todavia mas."
Axioma de Allen:
"Cuando todo falla, es el momento de consultar el manual, que naturalmente no se tiene idea de donde puede estar oculto."
Principio de las subrutinas dispersas:
"Al depurar un programa, la accesibilidad de una subrutina critica para su funcionamiento, es inversamente proporcional al numero de veces que dicha subrutina desfila por delante de los ojos del programador, cuando la busca en el listado del programa."
Ley de Bit sobre el estado actual de la electronica:
"Si lo entiendes, ya es obsoleto."
Teorema de Patrick:
"Si un programa se ejecuta bien a la 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 numero 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 mas cercana para -despejar la mente-."
Ley fundamental de Murphy:
"Si algo puede ir mal en un programa, podemos apostar a que ira mal."
Ley de Solve:
"Los problemas complejos tienen soluciones simples, comprensibles y equivocadas."
Constante de Skinner:
Es la cantidad de lineas de codigo tales que:
a) Agregadas a las lineas de nuestro programa, impiden que entre en memoria, y
b) quitadas de nuestro programa, no permiten que funcione de la forma que se habia previsto en un principio.
Regla de Ketterin:
"Cuando un programa no funciona, es por una razon distinta a la que el programador cree que provoca que no funcione."
Ley de Gumperson:
"La probabilidad de que ocurra un determinado error de ejecucion es inversamente proporcional a su importancia y al deseo por parte del programador de que esto suceda."
Teorema de Anderson-Bermudas:
"La posibilidad de que un programa se pierda es inversamente proporcional a la cantidad de copias disponibles del programa."
Postulados sobre la vida util de los programas:
a) Cualquier programa, al estrenarse, resulta obsoleto.
b) Si un programa sirve, debera ser modificado.
c) Todo programa tiende a crecer hasta ocupar toda la memoria disponible.
d) La complejidad de un programa ira creciendo hasta sobrepasar la capacidad del programador de entenderlo.
Postulado sobre la programacion de Troutman:
"La blasfemia es el unico lenguaje que de verdad conocen todos los programadores."
Leyes de Gilb sobre las computadoras:
1ra.- Las computadoras son poco seguras, pero las personas lo son menos.
2da.- Cualquier sistema que dependa de la precision humana, es impreciso.
3ra.- Los errores no detectables son infinitos, mientras que los detectables son, por definicion, finitos.
Ley de Brook:
"Añadir mas mano de obra a un proyecto de software que va retrasado, lo retrasa todavia mas."
Axioma de Allen:
"Cuando todo falla, es el momento de consultar el manual, que naturalmente no se tiene idea de donde puede estar oculto."
Principio de las subrutinas dispersas:
"Al depurar un programa, la accesibilidad de una subrutina critica para su funcionamiento, es inversamente proporcional al numero de veces que dicha subrutina desfila por delante de los ojos del programador, cuando la busca en el listado del programa."
Ley de Bit sobre el estado actual de la electronica:
"Si lo entiendes, ya es obsoleto."
Lo que hay que ver...