Using three estimates can help. Create optimistic, likely, and pessimistic estimates for each significant development task. Plug the values into the Program Evaluation and Review Technique (pioneered from building Polaris nuclear submarines in the 1950s) to get a reasonable estimate:
t_{expected} = (t_{optimistic} + 4 \times t_{likely} + t_{pessimistic}) / 6
http://www.codecogs.com/latex/eqneditor.php
This also helps indicate what tasks will take the longest, allowing managers to prioritize based on business needs.