The most important thing is to make a plan. Any plan. So when you start off the project you make the best possible plan that you can at that point of time. Once you make that plan ask yourself - "What are the items in this plan that can cause my estimate to go wrong?" Once you ask yourself this question you will be given some answers such as
- We are doing this design for the first time we are not sure what difficulties there might be.
- We do not know enough about this task to realistically give an estimate or to break it up into smaller tasks so that we can estimate it accurately.
- We do not know how to do this task.
- We do not have trained people to do this work.
- People may quit the project and we won't have the right people or enough people to complete the project.
These are nothing but the risks to your project. So what you need to do is put a mitigation plan for each of these risks. The mitigation plans may go like this
- For the design that is new lets build a Proof Of Concept that will make things clearer.
- Talk to the client about the task that does not have clarity so that we can get a better understanding and give a better estimate.
- For untrained resources or not knowing how to do something conduct a training program or employ someone who can help in showing how the task can be done.
- For people that may move out of the project spend time in talking to them and motivating them.
This plan now needs to be looked at on a periodic basis (usually I look at the plan on a weekly basis) and I check if I have more information to update the estimate or to elaborate the tasks some more and lets say I do have more information then I update the plan and ask myself the question again and update the plan based on the answers I get to my question. Thus I have a new plan.
This is a process that never ends until the project is closed. Hence managing risk is an integral part of ensuring that you meet your estimates.