Handling Uncertainty When Estimating Software Projects