How do I approach estimating costs to create my project budget?
What different approaches can I use to come up with a thorough budget for my project, including people and other expenses?
There are many different techniques for developing activity estimates and their related costs, in order to develop a project budget. Much of estimating depends upon how much information is available about the work to be done and how familiar the estimator is with that work. Here's an overview
of activity and cost estimation techniques.
Top-down. Use the actual work and cost estimates from similar or identical parts of previous projects. If there are no metrics ("rules of thumb"), then use raw historical experience such as previous project postmortems and financial reports, previous project schedules, personal logs, purchasing history, etc.
Rules-of-thumb. This is historical experience that is data-reduced to simplified metrics; e.g., "the time for UL safety testing for this type of design is 3 weeks including one regression test at a cost of $15,000." "A round of external QA services usually costs $10,000 for this type of software."
Expert judgment. Bring in people who specialize in the work that's being done who will have insights both to the people cost associated with doing that work, and also other expenses such as equipment. Those experts may be from other departments of the organization, outside consultants, third-party development proposals, etc.
Bottom-up. Create the estimates with people who are going to do the work. For example, get a more accurate testing schedule by estimating the number of test cases to be run or requirements to be covered, the number of testers, the number of cases they can do per day, and the percent that will have to be re-run, and then rolling it all up into a schedule. Have the engineers draft a list of resources and material required based on early concepts, and don't forget to include leased/rental equipment.
Multiple independent estimates. Several estimates from independent sources using different methods may give a better overall estimate of costs for a complex task. If the estimates are quite different, then comparing how the estimates were prepared, who prepared them, what assumptions were made, and so forth may help you better define the task and better understand the uncertainties in cost.
Simulations: Monte Carlo and other statistical "brute force" scenario generation methods have their place too. Monte Carlo Simulations estimate the likely range of outcomes from a complex random process by simulating the process a large number of times. This technique is used when the work is too complex to be readily treated by simpler statistical techniques like PERT estimation.
The last word of advice is this: make sure you have estimated all the work and costs for every element of your work breakdown structure. Start with a top-down estimate to get a rough feel for the financial magnitude of your project as early as possible. Then use bottom-up techniques against the detailed WBS items to flesh out the budget and sanity check your top-down estimate. Using the WBS is the only way to be sure you have come up with a thorough budget that covers all the activity of the project. See our Project Budget and Cost Tracking Formats, which show how to construct a budget off your WBS, with typical expense categories. See Planning and Scheduling: Estimating Work and Costs for more guidance.