There are different ways for estimating project tasks and, consequently, the overall project. Here's a few of them:
Use of Historical Data - if projects are categorized in a knowledge database system, together with learned lessons, then they can easily be retrieved and consulted for estimating purposes. Of course, they have to be similar projects.
Use of Experienced Resources - estimating is a team effort, and the contribution from experienced resources in making estimation is very valuable.
Use of Estimating Databases - if available, make use of industry databases published by organizations.
Range of Estimates using PERT Weighted Average equation used for statistical based risk analysis.
E= (O+4M+P)/6 = Expected Value; O= Optimistic Value; M= Most Likely Value; P= Pessimistic Value
In any case, points to remember when estimating are:
-Use experienced people
-Emphasize team estimating
-Breakdown to 1-2 weeks for control
-Itemize the doneness criteria for tasks
-Do not estimate for others (detail only)
-Check resource hours vs. time elapsed
-Try to be realistic not optimistic and not pessimistic