Un 25% de incremento en la complejidad del problema añade un 100% de incremento en la complejidad del software

Por cada 25% de incremento en la complejidad del problema, hay un 100% de incremento en la complejidad del software que lo soluciona. Y no hay soluciones mágicas ni “silver bullets” que eviten este problema (te recomiendo aquí este post sobre las “balas de plata”). Esta fue una de las principales aportaciones de Glass, descrita en su libro “Facts and Fallacies”. Según él comentaba, a altas complejidades del problema, se dispara la complejidad del software que lo soluciona, y esto ocurre porque se producen, entre otros, los siguientes efectos:

  • El equipo humano se convierte en algo crítico. Por la necesidad de más inteligencia para resolver el problema (te recomiendo aquí el post de lo más determinante para el éxito, o fracaso, de un son las personas)
  • La estimación del proyecto se hace muy compleja. Porque el software que soluciona el problema es más complicado de lo que parece la solución.
  • Los requisitos se disparan. Porque al pasar de un 25% del problema al 100% de la solución, los requisitos propios del software, los no funcionales, se disparan.
  • Las alternativas de diseño se incrementan. Y por ello…
  • Se necesita iterar mucho más para lograr un buen diseño. Porque rara vez se logará a la primera a una buena solución.
  • Una cobertura de pruebas del 100% es prácticamente imposible. Porque los caminos a probar se disparan en número.
  • Los errores se incrementan. Por la dificultad de encontrar una buena solución a la primera.

Así que, ya sabes, cuando alguien te pida, o cuando tú pidas, un “pequeño” incremento en la funcionalidad, recuerda que puede tener un gran impacto en su desarrollo.

0 comentarios en “Un 25% de incremento en la complejidad del problema añade un 100% de incremento en la complejidad del software”

  1. Pingback: Bitacoras.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This
Ir arriba