There are several ways to help you estimate software projects:
- Consider how long it took to do a similar project in the past?
- After the tasks have been listed, ask each person to estimate the time for his/her task, taking into account normal workloads and interruptions.
- Use a formal approach, such as factor analysis.
- Don't use just one estimate; use at least two. If they differ by a significant amount, then you are probably missing some assumption/task in one of them and you should review both estimates. If they agree, then you have a better chance of actually developing to the estimate.
There are two major learning points here:
- Use more than one estimating method.
- Go through the effort of estimating even on small projects and evaluate how you did. As you increase the number of times you estimate (and write it down), the better you will get and the more people wil trust your estimates.