There are three popular approaches of Estimating/Budgeting Software Development Projects: Traditional Approach, Agile Approach and Middle Road Approach.
In Traditional Approach, organizations define initial budget and schedule, after requirement/or sometimes after design phase, some organizations refine these budget and schedule while those who take Fix Price Bids/Contracts approach, consider initial budget and schedule as official and any change required by stakeholder needs to follow change management process. This approach is also referred as BRUF (Big Requirements Up Front) approach.
In Agile Approach we consider that change is inevitable and follow practices which help in reacting to changes smoothly, high-value software is delivered by implementing high priority requirements first. Popular agile approaches are Scrum and XP, Scrum suggest that freeze the requirements for current iteration to provide stability while in XP current requirements are allow to change as long as you are willing to drop some requirements out of the iteration as per need. In agile approach, developers are required to estimate the effort required to implement the requirements on which they will work. This maximizes shareholders investments but still in some organization with this approach some initial fictional budget and schedule get prepared at the beginning of the project to reduce the risk and this led towards middle road approach.
In middle road approach we do some initial requirements envisioning up front to identify the scope of the project and just enough architectural modeling to determine a potential strategy to build the system. This provides an understanding of initial budget and schedule.
No matter whether your project is big or small and no matter how many resources and activities are in it, the process for cost management is always the same. Let’s take a quick view of how to estimate, track and control costs.
What is cost? Most important cost in any project is the cost of people’s work on projects. There are also costs associated with materials, business travel and accommodations etc. Generally there are five types of costs in a project: Fixed, Variable, Direct, Indirect and Sunk (a cost that has already been incurred and cannot be recovered).
Project budget/cost calculation- Typically each activity is estimated for its time and material cost and any other known factor that can be figured in. When we make an estimate really early in the project when we don’t know much about it, it is called Rough Order of Magnitude estimate or ballpark estimate. There are bottom-up, top-down sometimes called as analogous, parametric, expert judgment and three-point estimates with PERT techniques are available for estimation. For more detail you can read: Project Cost Estimating
Some other techniques for Estimating Costs are:
Vendor bid analysis: When we are working with an external contractor and we have more than one contractor bid on the job. We evaluate those bids and choose the right one.
Reserve analysis- When a project has a risk of something expensive happening, we keep some cash reserve aside for cost overruns.
Cost of Quality- We need to figure the cost of all quality related activities in the overall budget. The Cost of quality is how much money it takes to do the project right.
Group Decision Making techniques etc.
When we deal with cost estimation sometimes we need to talk in numbers and these numbers are:
BCR-Benefit Cost Ratio- The amount of money a project is going to make versus how much it will cost to build it. Generally if the benefit is higher than cost, the project is a good investment.
Net Present Value- This is the actual value of a project at a given time minus all of the costs associated with it. We calculate this number to see if there is worth doing this project. NPV compares the value of a dollar today to the value of that same dollar in the future, taking inflation and returns into account. If the NPV of a prospective project is positive, it should be accepted. However, if NPV is negative, the project should probably be rejected because cash flows will also be negative.
Opportunity Cost- This is the cost of not doing a project. When an organization has to choose between two projects, it’s always giving up the money it would have made on the one it doesn’t do.
Internal Rate of Return- This is the amount of money the project will return to the company that is funding it. It’s usually expressed as a percentage of the funding that has been allocated to it.
Depreciation- This is the rate at which a project will loses value over time.
Lifecycle cost- The cost of whole lifecycle of a product from development to after-sale support.
What is Cost Control? Cost Control is all about tracking how you are doing compared to your plan and making adjustments when necessary. Techniques for controlling cost of a project are:
Earned Value Management- Earned Value Management consist three basic elements: planned value, earned value and actual cost. We used to compare our earned value with planned value, there are earned value formulas to assess project and it helps us to track how far off our project is with our plan and how much value we are delivering to our sponsor.
Some important terms are:
Actual Cost- It is the total cost incurred so far.
To Complete performance Index (TCPI)-It’s a formula whose result determines what a project needs to do in future to stay on budget.
Budget At Completion (BAC) – This is the total budget of a project, which we get by adding the cost of all activities/resource of the project.
Planned value- Also known as BCWS (Budgeted cost of work schedule), it is the % of budget that we have planned/scheduled so far (as of a reporting date) or we can say it is the % of total budget that we suppose to have earned so far. To calculate this, we multiply BAC with Planned % complete.
Earned Value- when we want to check how our project is doing versus budget then we use earned value. Also known as BCWP (Budgeted cost of work performed), It is the actual cost of work completed/performed so far (as of a reporting date), the difference between planned value and earned value is that in earned value we consider actual % complete while in planned value we consider planned % complete. We calculate earned value by multiplying BAC with Actual % complete. This tells us how much of your project’s value has been delivered to the customer so far.
These calculations are good to track the project if the project team is small but if the team size is big and there are lots of people, doing lots of different activities, some of them are on track, some are ahead of schedule and some of them are behind etc., then we use some performance indexes/variances to check the status of our project: SPI (Schedule Performance Index), SV (Schedule Variance), CPI (Cost performance Index), CV (Cost Variance), TCPI (To Complete Performance Index)
Schedule Performance Index- This tells us whether our project is behind or ahead of schedule. When you are ahead of schedule, you’ve earned more value than planned! So EV will be bigger than PV.
SPI = EV/PV
* if the SPI is greater than 1 that means Earned value is greater than planned value, which means we are ahead of schedule.
* If SPI is less than 1 that means earned value is less than planned value, means we are behind the schedule.
Schedule Variance- It is the difference between planned value and earned value, it’s a good way to check progress and to figure out how much ahead or behind schedule we are. The bigger the difference between what we have planned and what we have earned the bigger the variance.
SV = EV-PV
* For sponsor’s benefit we measure this in dollars, if SV is positive it tells exactly how many dollars we are ahead and if it is negative how many dollars we are behind. A negative SV tells that we have not delivered all the value that we have promised.
Cost Performance Index- This tells us whether we are over budget or under budget. It is same as SPI except rather than using planned value we use actual cost that is the amount of money that we have spent so far on the project.
CPI = EV/AC
* If CPI is greater than or equal to 1 we are within budget. But if CPI is less than 1 it means actual costs are more than earned value and sponsor is not getting worth of his money from the project.
To check how much above or below budget we are, calculate CV (Cost Variance)
Cost Variance- EV-AC
If CV is positive we are delivering good value and if it is negative we are not.
We can tell the project is on track if SPI and CPI are both very close to 1 and variance numbers SV and CV are very close to 0 dollars, it is very rare to get a SPI and CPI of 1 and SV/CV of 0 but even if SPI is 1.02 we can say we are very close to on time and if CV is -$26 we can say we are very close to on budget. Generally PMO’s make a standard that a SPI/CPI between 0.95 and 1.10 is fine. Remember that the lower these numbers are, the worse your project is doing.
Forecasting: We use earned value to predict the project status at completion.
Estimate at Completion EAC- If we know our CPI now, we can use it to predict actual cost of project at completion.
EAC = BAC/CPI
* If CPI is below 1 that means you are running over budget, which will give you an EAC that’s larger than your current budget. If CPI is above 1 you are running under budget, so the EAC will be smaller than BAC.
After calculating EAC we can also calculate variances, there are two useful numbers we can calculate with EAC, ETC (Estimate to Complete) and VAC (Variance at Completion)
ETC = EAC-AC, since EAC predicts how much money you will spend, if you subtract AC, you’ll find out how much money the rest of the project will end up costing.
VAC = BAC-EAC, if we are running over budget and we need to know what will be the total loss we can calculate VAC.
TCPI (To Complete Performance Index) – This tells how well project needs to perform to stay on budget. This number represents a targeted CPI to maintain in order to hit forecasted completion cost. If you are performing within budget, it will be based on BAC but if you are over budget then calculate an EAC and base your TCPI on that.
TCPI (BAC based) – (BAC-EV)/ (BAC-AC)
TCPI (EAC based) – (BAC-EV)/ (BAC-EAC)
A high TCPI means a tight budget.
There are number of good project management software available to handle all this for us, you can refer my earlier article Latest Project Management Tools for startups