25 julio 2007

Leyes del desarrollo de software

Paseando por la web, he encontrado una recopilación por Joey DeVilla en GlobalNerdy, que incluye algunas de las leyes, axiomas y reglas que se pueden aplicar al desarrollo del software.

Me ha parecido interesante y no he encontrado ninguna recopilación similar en español, así que me he tomado la libertad de traducirla, para que pueda llegar también a los hispanoparlantes. Más de una de estas leyes viene de la biología pero aun así es totalmente aplicable al software.

(Traducción libre. La lista está ordenada por nombre del autor)

La ley
Atribuida a
Lo que dice
Ley de Amdahl Gene Amdahl La velocidad que se puede ganar ejecutando un programa en un ordenador paralelo está limitada por la fracción de programa que no se puede paralelizar.
Segunda ley de sociociencia de Augustine Norman Augustine Para cada acción científica (o ingenieril) existe una acción social igual y opuesta.
Ley de Brooks
Fred Brooks Añadir más gente a un proyecto que tiene retraso provoca que tenga aún más retraso.
Primera ley de Clarke Arthur C. Clarke Cuando un distinguido científico de una cierta edad afirma que algo es posible, casi seguro que está en lo cierto. Cuando afirma que algo es imposible, muy probablemente se equivoca.
Segunda ley de Clarke Arthur C. Clarke La única forma de descubrir los límites de lo posibl es aventurarse un poco más allá, hasta llegar a lo imposible.
Tercera ley de Clarke Arthur C. Clarke Cualquier tecnología suficientemente avanzada es indistinguible de la magia.
Ley de Conway Melvin Conway Cualquier fragmento de software refleja la estructura organizacional que lo produjo.
Regla de Cope Edward Drinker Cope En la evolución hay una tendencia general hacia el aumento de tamaño.
Principio de Dilbert
Scott Adams Los trabajadores más ineficientes son desplazados sistemáticamente hacia el lugar donde menos daño pueden hacer: la gerencia.
Ley de Ellison de criptografía y usabilidad Carl Ellison La base de usuarios para la criptografía fuerte desciende a la mitad con cada pulsación de tecla o clic de ratón adicional que es necesario para hacerla funcionar.
Ley de los datos de Ellison Larry Ellison Una vez que los datos de una empresa se han centralizado e integrado, el valor de la base de datos es mayor que la suma de las partes existentes anteriormente.
La ley de las falsas alertas George Spafford A medida que la cantidad de alertas erróneas aumenta, disminuye la confianza del operador en los avisos subsiguientes.
Teorema fundamental de Fisher R. A. Fisher Cuanto más se adapta un organismo, menos adaptable es a los nuevos cambios.
Ley de Fitts
Paul Fitts El tiempo para alcanzar un objetivo es función de la distancia y el tamaño del objetivo.
Axioma de Flon Lawrence Flon No existe ni existirá un lenguaje de programación en el que sea difícil escribir malos programas.
Ley de Gilder
George Gilder El ancho de banda crece al menos tres veces más rápido que la potencia de los ordenadores.
Ley de Godwin
Mike Godwin Cuando una discusión en linea crece, la probabilidad de que aparezca una comparación que incluya Nazis o Hitler se acerca a uno.
Ley de Grosch
Herb Grosch El coste de los sistemas computacionales crece como la raíz cuadrada de su potencia computacional.
Ley de Hartree
Douglas Hartree Sea el que sea el estado de un proyecto, el tiempo que el gestor de proyecto estimará hasta que se complete es constante.
Principio de incertibumbre de Heisenbug Jim Gray La mayoría de los bugs del software son blandos: se van cuando los miras.
Ley de Hick William Edmund Hick El tiempo para tomar una decisión es función de las elecciones posibles.
Ley de Hoare de los grandes problemas C. A. R. Hoare Dentro de cada gran problema hay un pequeño problema luchando por salir.
Ley de Hofstadter Douglas Hofstadter Una tarea siempre lleva más tiempo de los que esperabas, incluso cuando tienes en cuenta la ley de Hofstadter.
Ley de Jakob de la experiencia de los usuarios en Internet Jakob Nielsen Los usuarios pasan la mayor parte de su tiempo en otros sitios web. Esto quiere decir que los usuarios prefieren tu sitio para trabajar, de igual modo que todos los demás sitios que conocen.
Ley de Joy Bill Joy No importa quien seas, la mayoría de la gente inteligente trabaja para algún otro.
Principio de Kerckhoffs Auguste Kerckhoffs En criptografía, un sistema debería ser seguro, incluso si todo acerca del sistema, excepto un pequeño fragmento de información -la clave- fuera conocido por todos.
Ley de Linus Eric S. Raymond, que le dio el nombre por Linus Torvalds Con suficientes ojos, todos los fallos (bugs) son superficiales.
Ley de Lister Timothy Lister La gente bajo presión de tiempo no piensa más rápido.
Ley de Metcalfe Robert Metcalfe En teoría de redes, el valor de un sistema crece aproximadamente como el cuadrado del número de usuarios del sistema.
Ley de Moore Gordon Moore El número de transistores en un circuito integrado se duplica aproximadamente cada 18 meses.
Ley de Murphy Captain Edward A. Murphy Si hay dos o más formas de hacer algo, y una de ellas puede resultar en una catástrofe, entonces alguien usará esa forma.
Primera ley de Nathan Nathan Myhrvold El Software es un gas; se expande hasta llenar el recipiente que lo contiene.
Ley de Noventa-noventa Tom Cargill El primer 90% del código lleva el primer 10% del tiempo de desarrollo. El 10% de código restante absorbe el 90% del tiempo de desarrollo.
Cuchilla de Occam William of Occam En igualdad de condiciones, la solución más sencilla suele ser la mejor (original en latín: "entia non sunt multiplicanda praeter necessitatem", que se podría traducir por "las entidades no deberían multiplicarse más allá de lo necesario").
Ley de Osborn Don Osborn Las variables no lo serán; las contantes no lo son.
Ley de Postel (segunda cláusula del principio de robustez) Jon Postel Sé conservador en lo que envías y liberal en lo que aceptas.
Principio de Pareto (a.k.a. “La regla del 80-20”) Sugerida por Joseph Juran, nombre debido a Vilifredo Pareto Para muchos fenómenos, el 80% de las consecuencias procede del 20% de las causas.
Ley de Parkinson
C. Northcote Parkinson El trabajo se expande hasta llenar todo el tiempo disponible para completarlo.
La paradoja del pesticida Bruce Beizer Cualquier método que se use para prevenir o encontrar bugs deja un residuo o bugs más sutiles, contra los que ese método no es efectivo.
El principio de Peter
Laurence J. Peter En una jerarquía, cada empleado tiende a crecer hasta su nivel de incompetencia.
Ley de Reed
David P. Reed La utilidad de las grandes redes, particularmente de las redes sociales, aumenta exponencialmente con el tamaño de la red.
Ley de Rock
Arthur Rock El coste de una planta de fabricación de chips basados en semiconductores se duplica cada cuatro años.
Regla del sesenta-sesenta Robert Glass El sesenta por ciento del dinero empleado en desarrollo de software se gasta en mantenimiento, y el sesenta por ciento de ese mantenimiento es mejora.
Ley de Spector Lincoln Spector El tiempo que tu aplicación favorita tarda en completar una tarea se duplica con cada nueva revisión.
Regla de adopción de Spafford George Spafford Para casi cualquier tecnología, sea un sistema operativo, una aplicación o una red, cuando se alcanza un nivel de adopción suficiente, esa tecnología se convierte en un factor de riesgo.
Revelación de Sturgeon Theodore Sturgeon El noventa por cien de todo es basura.
Ley de Tesler de conservación de la complejidad Larry Tesler No se puede reducir la complejidad de una tarea más allá de cierto punto. Una vez que se ha alcanzado ese punto, sólo puedes desplazar la complejidad de una parte a otra.
Ley de Weibull Waloddi Weibull El logaritmo de la tasa de errores crece linealmente con el logaritmo de la edad del programa.
Ley de Wirth Niklaus Wirth El software se hace más lento, a más velocidad que la que el hardware se hace más rápido.





(Nota: me he tomado la libertad de corregir y ampliar la "cuchilla de Occam", que estaba expresada de forma un tanto confusa, y la ley de 90/90, que tenía una errata).

(Recuerda: aquí tienes la una recopilación por Joey DeVilla en GlobalNerdy, en inglés).

2 comentarios:

Carlos R. dijo...

Holap:

Simplemente genial... xDDDD

Saludooos :P

Camila dijo...

Como uso mucho la computadora, todo lo relacionado con los software me interesa y por eso paso mucho tiempo en internet tratando de aprender sobre ello. Ojala que pueda en un futuro dedicarme a esto, y como se que la matematica es importante para entender la computación trato de aprender el tema de la semana que son los logaritmos