Reprinted with Permission by Quest Software March  2004


Project Management Tips and Techniques
Estimating Duration and Cost

Tom Mochal

Each month, Tom Mochal presents a set of project management tips and techniques for handling various aspects of planning and managing a project. Tom has developed a number of comprehensive, scalable methodologies, including a project management process called TenStep (www.TenStep.com). Tom also published a popular book called Lessons in Project Management. 

In the September 2003 edition of the Pipeline Newsletter, we looked at a simple process to estimate effort for a project. You need to estimate effort hours before you can estimate duration and cost. 

Estimating Duration

Whereas effort is normally given in terms of hours, duration is given in terms of days and an end date. For instance, it could be confusing to say that the duration of a project is three months, since you don't know if this means that the duration is actually 90 days or 60 work days. What you should say instead is that the project duration is 90 days and the estimated end date is 31 December 2004. If you describe the estimates in those terms, the estimated number of days of duration, as well as the targeted end date, is clear. 

If everyone worked eight hours per day, and was absolutely, 100% productive for all that time, you could easily calculate duration by taking the number of effort hours, divided by the number of resources, divided by the number of hours they work per day. For instance, if an activity was estimated at 80 hours, and you have one person assigned, and they work eight hours per day, the duration would be (80 / 1 / 8) = 10 days. Likewise, if four people were assigned, the duration would be (80 / 4 / 8) = 2.5 days.

However, those perfect circumstances are not indicative of how work is actually performed. Therefore, you can convert effort hours to duration for resource-constrained activities using the following process. 

  1. Estimate the productive hours per day. Normally the first step is to determine how many productive hours of work you can count on each person working over time. In other words, if an activity is scheduled to take 40 effort hours, it is unlikely that it can be completed in a calendar week, without overtime. Using a factor of 6.0 to 6.5 productive hours per day will help you take into account sick time, departmental meetings, administrative activities, going to the bathroom etc. 
     
  2. Determine how many resources will be applied to each activity. In general, the more resources you can apply to activities, the quicker they can be completed. Obviously two resources may be able to complete an activity faster than one person, but it may not be twice as fast. Similarly, a third person may allow the task to be completed sooner, but not in one-third the time. However, at some point, adding resources will not make the activity complete any sooner, and in fact, may make it go longer. 
     
  3. Factor in available workdays, taking into account holidays, vacations and training. This was not included in the productivity factor in the first item, since this non-project time can be scheduled and accounted for in advance. For instance, on a three-month project, one team member may be out for two holidays, while another may also have ten days of vacation. To be more accurate, take into account any days that you know your team will not be available to work on the project.
     
  4. Take into account any resources that are not full time. If you have a resource 50% of the time, it will take them at least twice as long to do any individual activity. If you have an activity that has an estimated effort of 40 hours, and you assign a resource that is only available for 25% of their time, the resulting duration will be at least four weeks, if not more. 
     
  5. Factor in multi-tasking productivity loss for part-time resources. If one person is working on multiple projects, or perhaps a combination of projects and support, a further reduction in productivity needs to be taken into account. This reflects the fact that if a person is shared on two or more unrelated efforts, it takes time to stop one and start up another. For instance, if a person is on two projects for 20 hours each week, they are going to lose additional productive time switching back and forth between the two work efforts. If the person is on two projects, this might result in a 10% loss of productivity on both projects. If they are on three (or more) each effort could take up to a 20% productivity hit. 
     
  6. Calculate delays and lag-times. Some activities have a small number of effort hours, but a long duration. For instance, if you are counting on vendor supplied resources, you may be spending very little effort hours, but you need to wait until the vendor is ready before you can begin. Another example is the duration required to get a deliverable approved. You may estimate the effort at only a few hours, yet it may take a number of days or weeks to gain the actual approval. 
     
  7. Determine what work can be done simultaneously. If you have enough resources, many activities can be done in parallel. This should be reflected in the project plan and it will help compress the schedule. The activities that can be done in parallel should be identified when you make the network diagram and project workplan. However, you can only do the activities in parallel if you have the available resources. You also need to recognize that not all activities and team members are interchangeable. There may be a set of activities that can be done in parallel, however they need to be worked on sequentially because only one person has the right skills to do the work. 
     
  8. Document all assumptions. You will never know all the details of a project up front. Therefore, it is important to document all the assumptions you are making along with the estimate.

Estimating Costs 

  1. Estimate labor costs. At a very high-level, project costs are estimated by looking at labor and non-labor items. The cost of labor is derived by looking at the effort hours of each resource and multiplying by the hourly cost of each resource. In many companies, estimated labor costs for internal employees are assumed to be zero, since their costs are already accounted for in a departmental budget. This does not imply there is no cost. Rather, it assumes there are no incremental costs over and above what the company is already paying for. 
     
    If you calculate an average hourly cost per employee, this number might or might not include benefits. In some companies the employee benefits are added back into the full project estimate. In other companies, these costs are not factored in. If you include the benefit costs, it is usually calculated as a fixed percent of the hourly costs. 
     
    If you are using external contract or consulting resources, their costs always need to be estimated and budgeted. You have to determine the type of external resources you need and the hourly rate of the resources, and then multiply these factors for the total cost per resource. If you are not sure of the actual resource cost, you need to make some assumptions based on the general type of resource. For instance, there may be a standard hourly cost for accounting contractors or programming contractors. If you are not sure whether your project will include external resources, you can make some basic staffing assumptions and document them.
     
  2. Estimate non-labor costs. Non-labor expenses include all costs not directly related to salary and contractor costs. (They may be indirectly related items, like travel and training.) These costs include hardware and software, travel expenses, training, team building, facilities, equipment, materials, supplies, etc. 
     
  3. Document all assumptions. You will never know all the details of a project. Therefore, it is important to document all the assumptions you are making along with the estimate.

Would you like to receive project management tips every week? Sign up for the weekly TenStep Project Management Tip of the Week at www.TenStep.com.