One of the prerequisites for producing a reasonable estimate is to have spent sufficient time analyzing and understanding the requirements and the proposed solution. Carry out too little analysis, and the estimated solution remains unclear and risky. Carry out too much analysis and the team will have spent too much time in discussions at the expense of actually starting and delivering the work. You need to carry out enough analysis that the team has uncovered all the dangerous areas of the problem domain and that a robust solution is emerging. At that stage, the team should be able to quantify what is known about the solution and what is unknown.
To become better at estimating project effort, take into consideration the following guidelines:
- Bear in mind that estimation is an ongoing activity which should take place regularly throughout the project. In the initial stage a high-level estimate may be required to determine the feasibility of a project, whereas later, a more thorough analysis and estimate would take place, which is then gradually refined. Having said that, always resist the temptation to provide an estimate without having any detailed requirements or analysis to back it up. If senior management needs a quick indication of potential costs in connection with an initiative, provide them with a ‘best guess’ and make sure they don’t take it as an official estimate.
-
During the initiation phase, when the users are communicating with you about what they want and need, analyze all key requirements, break the effort into manageable pieces and demonstrate or prototype as much as you can. Use workshops to illustrate and talk through the requirements and the proposed solution in detail with the team and customer; make sure you are all in agreement about what needs to be delivered and hence estimated. Carrying out proof of concepts and prototypes will help you validate the user’s requirements as well as the technical solution.
-
Involve experienced people in the analysis and estimation process and brainstorm with the people who are actually going to do the work. The more, the better. Have different groups of people estimate the same thing and compare the outcomes. A big disparity in numbers points to uncertainties in the proposed solution. Ensure you add extra contingency to compensate or spend more time analyzing the uncertain elements.
-
All estimates carry an inherent degree of uncertainty, especially in the early stages of the project where there are more unknowns. It is crucial that you quantify the percentage of unknowns in your estimate and compensate it with an equivalent level of contingency. Remember that relatively speaking, you will be much better off over-estimating the effort as this will give you a chance to come in under budget and thereby over-deliver.
-
Be careful not just to estimate the ‘sunny path’ scenario of a project. Unexpected things always come up, and requirements are often more complex to implement than originally thought. Remind everyone to be pragmatic and realistic when providing estimates and ask people for best case and worst case numbers.
-
Make sure you factor in all phases and activities of the project, including analysis, design, build, unit testing, integration testing, performance testing, user testing, rework, configuration management, release, handover, post-project support, training and documentation and project closedown. In some cases, it may also be appropriate to set aside a budget for change requests. Also include a specific time for management activities such as project management, team management, technical management and test management if it is not already accounted for.
-
Research and experiment with different estimation tools and techniques. Find out which tools other teams have used. Understanding how estimation tools work will generally improve your ability to estimate a project even if you end up not making use of them directly. Estimation tools will help you consider all the different aspects of the project and automatically add extra contingency the more inexperienced your team is and the more complex the solution domain and the technology is.
-
Estimate the effort in points or labor hours as opposed to calendar time to cater for the fact that your team is never 100% effective. You can then apply a separate conversion factor to translate your estimated effort into calendar time. This will make it easier to track the accuracy of your estimates as you move through the project and also enable you to measure the effectiveness of your team. The translation of effort into calendar time is based on how many productive hours a team member can spend on project tasks per day. If your team spends 30% of an average day on meetings, answering queries, checking of emails and time-wasting activities, you will need to add a conversion factor of 1.4 (1/70%).
-
Add a contingency factor to your estimate to cater for events which you cannot foresee, such as unexpected problems with the proposed solution or vendor or unexpectedly having to onboard new or more expensive project resources. Also, bear in mind that labor rates and exchange rates may change as the project progresses.
-
Formally record your estimates and document how you arrived at them. Make the estimated scope and assumptions clear and also highlight what is out of scope. Not only will this put you in a better position to defend and adjust your numbers, but it will also help you review and improve your estimation process going forward.
Republished with permission from Susanne Madsen.
Susanne Madsen
Author:
Susanne Madsen is an internationally recognized project leadership coach, trainer, and consultant. She is the author of The Project Management Coaching Workbook and The Power of Project Leadership. Susanne’s belief is that project management success is as much about leading people as it is about managing tasks, events, and processes. She is a firm believer and practitioner of the GTD (Get Things Done) approach and enjoys helping people formulate and achieve their goals. For more about Susanne, please visit http://www.susannemadsen.com/