Sunday, January 28, 2007

Software Project Cost Management

1 Description of Project Cost Management

Cost management is one of the three constraints on projects, and its primary concern is the financial management of a project. All of the activities in this process are part of one of the following four cost management processes, resource planning, cost estimating, cost budgeting, or cost control(Schwalbe 225).

The processes which enable a project manager to estimate costs are used for planning and controlling costs. To complete these cost estimates, project managers may need to use information from the marketplace, commercial databases, cost estimating policies, cost estimating templates, historical information, project files, project team knowledge, and lessons learned(PMBOK 162). Furthermore, project managers may need to use expert opinions, project analogy, and disaggregation to properly estimate a project's cost(Cohn 54). Although not all of these processes need to be used for all projects, a combination of these techniques must be used in order to satisfy a project's financial needs.

Once a project has been initiated, the project manager needs to continuously monitor and measure the project team's performance. Armed with this information, project managers can better predict the future outcome of a project, and therefore use these predictions when making business decisions. This data is also very important to the stakeholders since the quality of their decisions will depend on this data.

The three project contraints of Time-Scope-Cost define the environment in which project's decisions must be made(Schwalbe 6). A project manager needs to balance the needs of the project's stakeholders by adjusting these constraints. For instance, a project manager may crash a project, which means that the overall project cost is increased in order to decrease the time required for delivering the project. Although this may mean that the project no longer falls within the original approved cost, an earlier project delivery may have financial benefits. For example, I have worked on a project were the customer asked us to deliver the project sooner then what had been planned. The reasoning behind such a decision by the customer was that the cost of crashing the project was lower then the cost of functioning without the product. Because of this, the customer was able to justify the higher project cost to his organization since it allowed them to save money elsewhere.

2 Cost Management's contribution to project management

Cost management contributes to successful projects by making them financially viable. Through the various techniques of cost management, project managers show to the project's sponsor which project(s) they should invest into. To do this, project managers need to demonstrate that a project will generate an acceptable Return On Investment (ROI). However, the value generated by the project does not necessarily need to be only measured in a monetary terms, but can include other factors. For instance, projects undertaken by Green Peace do not measure the potential future income of the project, but instead tries to measure the impact that the project will have on the environment. Armed with these measurements, decision makers can decide which project should be started, continued, or cancelled.

2.1 Resource Planning

Resources need to be managed in order for an organization to be successful. Resources include physical items such as computers , and human entities such as employees. The use of any resource has an associated cost for the organization. For instance, employees are paid salaries and computers need to be either rented or purchased. Other costs such as cost depreciation, where an item's value decreases as time elapses, also need to be considered.

Overhead costs is an other group of costs which are related to resources. These cost include the management of all resources, either performed by the human resource department or an inventory department. The sales and marketing departments are also overhead, since neither of them produce any goods which generates income for the organization. However, these departments are required by most modern organizations, since their effort are needed to attract customers for the products and services offered by the organization.

An organization's head count is the number of employees which are currently employed by a company. Managers need to take this measurement into consideration when making decisions. For instance, an organization may refuse to begin a project which would require a too large percentage of their staff to complete. Reason for doing this can vary, but the management team may consider such undertaking as too risky since it does not allow the organization to be flexible. Critical mass is an other problem which managers need to monitor. This term refers to the minimal number of employees required to complete a project. For instance, an organization's customer may want to see a list of employees name and their skill sets in order to assure themselves that an organization has the capabilities to complete certain projects. In this manner, a company may not be able to layoff employees even if many of them are not currently needed, just to be able to pursue certain contracts. This can often be seen within companies which deal with military contracts, since these contracts can take a long time to be awarded and often require special conditions such as security clearances which may take years for an employee to receive. In such environment, companies which do not have the necessary number of qualified employees are unable to respond to project bids.

2.2 Cost Estimating

Project managers need to estimate the total and sub-component cost of projects in order to make correct business decisions. Just as the project with the best ROI needs to be chosen, the correct project tasks need to be worked on by the team. By doing this, it becomes possible for projects to successfully accomplish an appropriate ROI, without necessarily completing all of the tasks which were defined at the beginning of the project. For instance, most projects have features which must be implemented in order for the user to be able to use the system, while other requirements may not be needed or may have a low ROI. For example, the requirement that customers of an on-line banking system may login and check their bank account has a higher ROI value then the requirement that the bank managers can view a chart of how many persons have used the system in the past 30 days. Furthermore, the latter requirement has value only if the first requirement has been deployed, and the managers may be satisfied by getting a single number instead of a graph. Therefore, the project manager should complete the first requirement and then verify if the second requirement still fits the project stakeholders needs.

To allow project managers to decide which projects should be worked on, a Rough Order of Magnitude (ROM) estimate needs to be created. This estimate, is compiled before the project is initiated, and is used by business decisions makers for selecting the projects which their teams should work on. Because these estimates are created prior to the start of the project, they normally have a great amount of uncertainty. Mike Cohn describes the range of the uncertainty at this level to be between -60% and 60% of the cost (Cohn 4), while the Project Management Institute (PMI) define this uncertainty to be between -25% and 75% of the project cost (Schwalbe 233).

Mike Cohn states that there exist three methods to derive estimates. These methods are, expert opinion, analogy, and disaggregation (Cohn 54). The first one of these methods creates estimates by asking an expert's opinion as to how much such an activity would cost to complete. Experts are individuals who have a great deal of experience performing activities similar to the ones that the project manager is evaluating. Estimating by analogy is when each of the items to be estimated are compared to other similar artifacts which have already been created. In this manner, a manager tries to find some examples which are smaller then the activity to be estimated, and other examples which are bigger. These examples then become the range of the estimate. The last method, disaggregation, is when the manager breaks the activity to be estimated into smaller tasks, estimates all of them, and then assumes that the total cost will be the sum of all of these tasks. For example, this is what managers do when they create a Work Break Down (WBS).

2.3 Cost Budgeting

Project cost budgeting, just as departmental budgeting, is the analysis of the cost of operation over time. Activities such as the project's full-time equivalent (FTE), and ongoing costs such as rented and leased equipment needs to be considered. The budget needs to be set in order to allow the project to operate. Although cash flow analysis is considered part of cost estimating, this analysis is used for the purpose of budget allocation and projection. Basically, the manager needs to assign the right amount of resources to the project through out the project's life.

2.4 Cost Control

Once a project has been started, it is important for the project manager to control its cost and report any fluctuation to the stakeholders. To accomplish this, a project manager needs to measure a project's progress against compare this with the project's estimation.

Earned value management (EVM) is a technique used to measure a project's performance(Schwalbe 242). This technique, compares how well a project is doing with its baseline which is the projected expected value. To accomplish this, a project manager needs to evaluate the value of the work that has been completed so far in the project. Once this value has been compiled it is than compared to the value that was expected to have been generated by that time.

The planned value (PV) is one of the measurements used in the EVM(Schwalbe 243). This value is the estimated cost of a single item on the WBS. It is used when comparing the actual cost (AC) of the item, which is the recorded cost paid to complete the task. For example, if a WBS task was estimated to cost $100 but costed $200 to complete, then the PV for this item is $100 and the AC is $200.

The earned value (EV) is an estimate of the value which was created by the work so far on the project(Schwalbe 244). This value is estimated by multiplying the PV of the WBS tasks which have had some work completed, with the percentage at which they have been completed. For example, if two WBS tasks have been started, and one has a PV of $100 and is 10% completed while the other has a PV of $200 and is 50% completed, then the EV is equal to 10% of $100 plus 50% of $200. That is, the EV is equal to $110, which represents the value which has been generated by the project so far. Interestingly, the EV calculation for projects which follow an agile development methodologies is calculated solely from tasks which have been delivered to the customer(Poppendieck 70). In other words, work can only have value if it has been delivered, and a company derives no EV from work which has been completed but not delivered.

The cost variance (CV) of a project is a measurement of how close the project's actual budget is to the estimated budget(Schwalbe 245). This value is calculated by subtracting the AC from the EV. In this manner, a negative CV means that the project has used more money then was originally planned, while a positive value means that the project is spending less money then expected. However, this does not mean that the project is doing well or badly, since this only measures the current project cost with regards to the estimated cost. That is, a CV of -$10,000 simply means that the project has used ten thousand dollars more then was originally planned.

Just like the CV, the schedule variance (SV) is a measurement of how well the project is progressing compared to what was originally planned(Schwalbe 245). However, unlike the CV, the SV is a measurement of the value that has been generated compared to the value that was expected to have been generated by this point in the project. That is, the SV measures whether or not the project is generating value at the same rate as what was projected at the beginning of the the project, while the CV measures whether or not the money spent on the project is generating value at the same rate as what was projected.

The cost performance index (CPI) can be used to estimate what the cost to complete the project will be(Schwalbe 245). This value is calculated by dividing the EV by the AC. After calculating this ratio, a project manager can reestimate the total cost of the project by dividing the original cost estimate by the generated value. For example, lets assume that a project has an EV of $10,000, an AC of $20,000 and that the total cost is estimated to be $100,000. Then we can see that the CPI is equal to 0.5 and therefore the estimate at completion (EAC) for the project can be calculated to be $200,000 (this value is gotten by dividing $100,0000 by the CPI). This value, the project's EAC, represents the estimated cost for the project, and demonstrates the most probable total cost of the project by including the project's performance information.

The schedule performance index (SPI) is a ratio between the project's EV and its PV(Schwalbe 245). While the CPI can be used to reevaluate the cost of a project, the SPI can be used to reevaluate the estimated completion date of the project. For example, if a project's EV is $1,000 and has a PV of $900, then the SPI value for this project is 1.11. This value means that the project is progressing 11% faster then originally planned, and therefore the estimated amount of time required to complete the project can be updated by shorting it by this difference.

3 Cost Management Challenges

Without a doubt, cost management plays a large role in project management as it is represented in the the triple constraints, Scope-Cost-Time, of project management. Project managers need to pay close attention to a project's financial issues, and failure to do so may have dire consequences for an organization. Unfortunately, many difficulties can arise during the development of a project which often have effects on the cost of projects.

The first and most important challenge faced by project managers is that developing cost estimates for a large software project is a very complex task and require a great deal of effort(Schwalbe 235). Mike Cohn even suggest that it is impossible to develop an accurate cost estimate at the beginning of the project. He further claims that, although 10% of estimating effort will give about 50% of the potential accuracy, working beyond this will yield small gains in accuracy or may even decrease the accuracy of the estimate(Cohn 50). Because of this problem, project managers must understand that projects which have been initiated do not have accurate cost estimate, and therefore will not be adequately budgeted and will require adjustment.

An other significant problem when estimating the cost of projects is that project manager don't always have enough historical data and skill to properly estimate the cost of projects. This means that project managers which try to estimate project cost by analogy will not be able to create accurate estimates. These in turn will cause problems for the project once it has started.

Many of the cost estimation problems are due to the fact that humans are biased towards underestimation(Schwalbe 236). This tendency means that estimations created by both the project managers and experts must be viewed as being in the range of -25% to +75%. That is, an estimate of $100 means that the cost will most likely be between $75 and $175.

Even though there are many difficulties in creating cost estimations, this activity still needs to be completed to allow management to make successful business decisions(Schwalbe 236). By looking at the best and worst scenarios for each of the project proposals, managers can evaluate which projects better support the company's strategic goals, and which can be supported by the company. For this reason, cost management is essential to a company's functioning. Continuously estimating the work left to be completed once a project has started, may also remove unpleasant surprises for the project manager since it has been shown that estimation uncertainty decreases as the project progresses(Cohn 4).

A companies head count can create interesting challenges for a project manager. For instance, although it has been shown that employees performance decreases as they are asked to multi-task between multiple projects(Cohn 15), the impact of this problem is difficult to evaluate on a project's schedule. Furthermore, employees may be required to perform other duties due to events outside of the project's scope, which may also be outside of the project manager's influence.