Siempre que los humanos se enfrentan a problemas en entornos con dinámicas complejas, como es el caso del desarrollo software, es necesario intercambiar conocimiento e interpretar información de una forma creativa, tanto del problema a resolver como de sus posibles soluciones. Por un lado, las interpretaciones de los humanos suelen ser subjetivas, basadas en su conocimiento y experiencia. Por otro, en muchas ocasiones las fuentes de información acerca del problema a resolver o su solución son ambiguas. Todo ello son causas de incertidumbre.




