Tips for Estimating and Planning Projects
Planning work is one of the main tasks of a project manager. And estimation, which is part of planning, often hides the most difficulties. In the IT industry, each task should be estimated individually.
At Apriorit, we use the following best practices to increase the accuracy of our estimates:
- If possible, we have the person who will complete a task also be the one to estimate it. A task can be estimated most accurately by the person who will do it.
- Sometimes we ask our experts to review estimates and give a second opinion.
- As part of Scrum, we use the Planning Poker technique, during which all team members evaluate all tasks.
- We collect as much information as possible about a task, since more detailed information leads to more accurate estimates.
- If you, as a project manager, see an estimate of 40 hours (or especially if you see an estimate that’s higher), this estimate usually means that a developer doesn’t know exactly how long it will take. Ask the developer to decompose the task. This should help them to think the task through more deeply and estimate more accurately.
Research tasks are difficult to estimate, as it’s hard to predict how long it will take to find a solution. For such tasks, proceed iteratively. Ask a developer to prepare a plan for the next part of their research and estimate how long that particular part will take. For example, the plan might be that the developer will check a certain hypothesis using a certain approach based on a certain assumption. They can then estimate that doing so will take n hours.
At the end of this iteration, the developer should have some results and be able to plan the next steps. For example, they may have discovered that the hypothesis wasn’t fruitful, the approach didn’t work, but the assumption was correct. For the next part of their research, the developer can then plan to check further hypotheses based on their assumption and estimate that doing so will take x hours. Keep doing this iteratively until you find a solution.
When you’ve already estimated the project and are preparing your schedule, include not only development tasks but also secondary activities such as code review, development testing, and bug fixing. It would be perfect if you could apply empirical data to estimate these activities. For example, we’ve found from our historical data that bug fixing usually takes around 30% of the time spent on development, while development testing takes around 20% of development time.
You should also add holidays, vacations, and sick leaves to your plan. If you don’t know vacation dates yet, still add a week for every three months of the plan. There’s a pretty good chance that during this time somebody will go on vacation.
And don’t forget to include a buffer for unknown risks.
If you work with Agile projects and vague requirements, it could be useful to use Rolling Wave Planning. With Rolling Wave Planning, the nearest iterations are estimated in detail and further iterations are estimated at a high level and detailed later when you have a clearer vision of the tasks.
One more good project planning practice is taking into account assignee workload, as nobody actually works eight hours during an eight-hour work day. Team members have meetings, reports, training, and other non-project activities that take away some part of the work day. To make the schedule more realistic, consider the real workload of each team member. If you use Microsoft Project for creating a schedule, it’s convenient to use Resource Workload to alter this value.
For making forecasts with iterative approaches, it’s important to know the real efficiency of your team. Introduce some productivity metrics. For example, Scrum offers velocity and focus factor.
During project execution, it’s important to monitor the progress. To do this, compare planned hours to those actually spent.
At Apriorit, our project managers control the schedule and budget using the Earned Value Analysis technique. In Scrum, the analog for tracking progress is the Breakdown Chart.
Tracking project progress allows you to foresee deviations from the plan and react to them immediately by taking preventive and corrective actions to get the project back on plan.
The role of a project manager doesn’t change in an Agile environment. A project manager still needs good knowledge of project management methodologies and tools.
You can read more about Apriorit teams and our management processes at https://www.apriorit.com/rd-services/what-we-do.