Uncertainty in software development: a threat and a possibility