TL;DR
For agile projects, a basic formula for estimating budget is:
(totalStoryPoints / velocity * teamHoursPerSprint) + nonLaborCosts = budgetEstimate
The results should be reported as an estimated range using statistical confidence intervals or a "high, low, average" method.
Estimate Budget Using Iterations
The "secret" to estimating agile budgets is to estimate the number of iterations needed to clear the backlog or reach a release milestone. For example:
- Estimate your initial project backlog in story points.
- Sum all the story points; that's your numerator.
- Use the mean of your historical or guesstimated velocity as your denominator.
- Divide your story points by your velocity to get the number of sprints you expect will be needed.
- Multiply the number of sprints by 40 hours per week per team member to get your labor cost.
- Add capital costs, equipment costs, maintenance costs, training costs, or other items that might be charged against the project.
- Report the final total as a range with formal or informal confidence intervals.
This method gives a reasonable picture of the planned budget while still computing the Project Backlog in story points. This method doesn't rely on any awkward or misleading points ↔ hours conversions.
Basic Example Without Statistics
Assume you have 20 user stories in your backlog, and a Scrum Team of 6 people including the Scrum Master and Product Owner. Each story is estimated at 5 story points, and your historical average velocity is 10 story points per sprint.
- Total story points in Product Backlog.
20 stories @ 5 points each = 100 story points
- Estimated iterations (a.k.a. "sprints").
100 storyPoints / averageVelocity = 10 sprints
- Average labor cost per two-week iteration.
- labor cost per week for 6-person team: $3,200
- labor cost per sprint for six-person team: $6,400
- labor cost for project: $6,400 per sprint * 10 sprints = $64,000
- Other non-labor costs (we'll call it $50k for this exercise).
- Servers and workstations.
- Software licenses.
- Monthly service fees for the planned project duration.
- Et cetera.
- Estimated project total.
$104,000
- Reported budget range, without rigorous math and using sensible fudge factors.
Reasonable low end (80%): $104k * 0.80 = $83,200
Actual computed budget (100%): $104k * 1.00 = $104,000
Acceptable high end (120%): $104k * 1.20 = $124,800
In your project plan, you report your computed budget as the budget forecast (a.k.a. your planning value), the low end as your "stretch goal", and your high end as the point beyond which management will consider the project out of tolerance. This gives a reasonable picture of the planned costs while still computing the Project Backlog and delivery schedule from story points.