Practical Software Measurement

10 Tips for Better Software Estimation

This year, QSM will be celebrating our 40th anniversary! Over the years, we have helped many project managers figure out what their software projects should cost, how long they should take, and how to mitigate project and portfolio risk.  Here are 10 tips that every organization should remember for effective software estimation.
  1. Capture some historical data on your projects and keep it simple. The more data, the better, but you can get a good start to your estimation program with just a few projects and a small amount of data from each of those projects. Focus on the core metrics: size, duration, reliability, productivity, and effort. 
  2. Estimate at the release level before detailed planning takes place. This will enable you to tailor your detailed plan to goals that are reasonable. Many analysts spend hours laying out detailed plans for projects that end up over budget and late because they don’t figure out the big picture first. 
  3. Use an empirically-based model that enables you to manage uncertainty. When making big decisions, it’s important to see the 90% chance compared to the 50%. 
  4. Sanity-check your estimates with industry analytics. It’s always good to see typical cost and duration trends from projects that are similar to yours. 
  5. Estimate agile development too! Someone needs to come up with a reliable business decision before sprint planning takes place. Agile is great for providing sizing metrics like user stories and epics that you can leverage in a release level estimate.
  6. If you are evaluating vendor bids, ask your vendors for their historical data. It can save you and your vendor a lot of heartburn down the road.
  7. Use your estimates to negotiate. Look at the project tradeoffs and decide where you want to be on quality, cost, and duration.  A good estimate equals a good communication vehicle.
  8. Since requirements often change, have a data-driven approach to estimating throughout the whole project. When the customer wants to add requirements, it helps both sides to know what it will cost and how long it will take based on historical data.
  9. Leverage your release level estimates for enterprise planning. This will enable you to see when individual project team sizes and schedules need to be adjusted to mitigate risk and optimize cost for annual budgeting purposes.
  10. Ensure consistency and quality in your estimation approach by having your team trained effectively.
What tips would you add to this list?
Blog Post Categories 
Estimation