Budgeting for Software Projects
Managing costs of software projects is an area whose maturity lags well behind other industries such as construction. Since most of this work is done in a matrix environment, project managers are not charged with the responsibility of managing the budget. Their responsibility usually ends at bringing the project in on time. Responsibility for the project budget may reside with the IT sponsor, or with the business sponsor. These projects are frequently performed for a line of business (LOB) within the organization that allocates capital from their budget to build a software system that will benefit their business in some way.
IT organizations more advanced in the discipline of project management may have a time tracking system that allows project managers to keep tabs on the amount of hours consumed by the project. Very rarely will these systems be directly linked with a payroll system. Since most software projects spend the majority of their budget on labour, tracking hours spent on the project work may seem like sufficient oversight, but it's not nearly as rigorous as the construction industry. The tools and responsibilities that managers of software projects have are not likely to change soon, so let's look at making the most of the available tools. This article will deal with assigning budget to individual activities and deliverables in the WBS. We'll look at monitoring and controlling spending in future articles.
There are 2 different groups of methods for calculating project budgets: top down and bottom up. Top down simply means that the amount of money available for delivering the project is dictated at the outset and the project scope will be constrained by the budget cap. Bottom up methods determine project budgets by determining the amount of work and materials (either off the shelf software or hardware) necessary to delivery the required functionality. Most projects employ a mix of these 2 approaches because no one has a clear idea of the actual cost for building the functionality required to deliver the business benefits, and no one has an unlimited budget to build such a system. We will examine the work necessary to allocate budget to the WBS for the 98% of projects that employ a mix of top down and bottom up.
The first piece of information necessary for budget allocation is the loaded labour rate. Since most of the budgeted amount will be for labour this information is necessary before the required budget for an activity or deliverable can be calculated. The only exception here is where work is outsourced. Where work is outsourced, the business of calculating the cost of the work becomes the vendor's headache. For the purpose of budgeting for outsourced work you must form a rough idea of what the work ought to cost, either through an estimate of the amount of effort required or by examining the cost of similar work performed in the past. The loaded labour rate is information that should be available from your organization's accounting group. It is not the hourly, daily, weekly, or yearly salary paid to employees; this amount does not include ancillary costs such as facility rent, electricity, heat, etc., etc. (the "load” in the loaded labour rate). The loaded labour rate should be the figure the accounting group uses for their forecasts. My point here is that the accounting group is responsible for providing you with this information. It may not be readily available so you may have to search for it.
Calculating the budget for an activity or deliverable that consumes labour requires you to calculate the effort for the underlying tasks. The calculation of effort is an exercise that must be gone through in order to estimate the duration for the task which is a critical step in building the schedule. Project management tools such as MS Project will allow you to set a rate for each resource assigned to the project so will calculate the expense for each task assigned to that person. The expenses can then be rolled up to the major deliverable or activity you choose to manage the budget at.
Software or hardware that is to be purchased for the project should be estimated as part of the budgeting exercise. The budgeting exercise will be done as part of the planning activities so no contracts will have been awarded and you won't have any detailed knowledge of the cost of the purchased items. Smaller items that are to be purchased retail can be estimated by taking the cost from sources such as a catalogue. The cost of work that is to be outsourced and performed by a vendor can be estimated by comparing the work to similar work your organization has purchased in the past (analogous). Look for work that is comparable in terms of size and complexity and that was performed using the same types of resources that will be used for the project's work. Off the shelf (OTS) software is frequently paid for on a per license or per seat basis. Calculations for this purchase are straight forward and involve getting an estimate for the number of licenses or seats your project requires and then ascertaining the cost per seat or license. Costs can be obtained from the vendor or your procurement organization. If they aren't available there, you'll have to use the internet.
The cost of purchased software or hardware must be assigned to the deliverable in your WBS. This means that the deliverable must first be scheduled and we usually choose the delivery date as that date. For example, when we provide each of a system's user community with a copy of MicroSoft Windows operating software we would choose the dates that the software is installed on the computers. Reflecting the cost of the software license as being incurred at the time the license is installed is called the accrual method which is the most commonly used accounting method. The method used won't matter for the purpose of assigning budget to the WBS, but may affect the way you monitor and control the budget as the project progresses. Your methods should align with your accounting group's methods and also use their chart of accounts. You will have to assign an account code to each item in your WBS, either at the detail level, or summary level. Be sure that each item is accounted for if you use the summary level.
Don't forget to calculate your own salary as part of the project budget. You can do this by assigning a "project management” activity each week throughout the lifecycle of the project. The cost of your salary will then be rolled up with the other expenses. Don't forget to do the same for other administrative costs of managing the project. Things like license costs for MS Project, printing costs for reports, pay for any support functions such as consultants, assistants, or training should all be included in the project budget.
Now that the WBS contains a comprehensive list of activities and deliverables for the project, and the cost of each of these items estimated, you can use the project management tool to roll up all these estimates to determine the overall cost of the project. Where money is no object, this is as far as you need to go. Where the project has a budget cap, or your estimate exceeds the amount the organization is willing to spend, you will have to do reconciliation between the cap and the project budget. First verify all your estimates to ensure you have used the right information to arrive at your estimate. The exercise becomes one of de-scoping the project as soon as your estimates have been verified. A prioritized list of requirements can be very helpful here. Another way of de-scoping the project is to look at all the ancillary expenses to determine their necessity. Look at the various means of reducing the cost of the work. For example, can work that was planned to be done in-house be done cheaper by a vendor? Can testing costs be reduced by the use of an automated testing tool? It is likely that the process of reconciliation will be iterative and you will produce several plans before your sponsors will agree on one they find acceptable.
The WBS reflects 3 baselines at this point:
These baselines should be approved by the business sponsor, steering committee, client, or customer for the project. Once they have been approved, your job is to manage the project such that it delivers the promised goals and objectives on time and for the budgeted cost. Our next article will discuss ways and means of managing project costs during the implementation phase.