Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 12

Contents

1 INTRODUCTION...........................................................................................................................1
1.1 Software product as a Cost Object.....................................................................1 1.2 Software Product Development Life Cycle..........................................................2

2 CURRENT PROJECT COSTING METHODOLOGY..............................................................4


2.1 Cost Center Model..............................................................................................4 2.2 Project Costing ..................................................................................................5 2.2.1 Direct Costs................................................................................................. 5 2.2.2 Indirect Cost or Over head cost....................................................................6 2.3 Shortfalls in the current approach......................................................................7 2.3.1 Inaccurate allocation of indirect costs..........................................................7 2.3.2 No direct approach to estimation the cost of a given activity.......................7

3 ACTIVITY BASED COSTING FOR SOFTWARE DEVELOPMENT...................................8


3.1 Methodology...................................................................................................... 8 3.2 Results............................................................................................................... 9

HOW COST DATA IS USED BY THE MANAGEMENT?......................................................11


3.3 Decision Making...............................................................................................11 3.4 Budget Control.................................................................................................11 3.5 Other Areas......................................................................................................12

4 CONCLUSION..............................................................................................................................12

1 Introduction
1.1 Software product as a Cost Object
Software Development time and cost estimations are imperative in organizational budgeting, project planning, resource allocation and outsourcing decisions with respect to approving a software development project. Wrong estimations both understated and overstated costs have negative impacts on management and organization. Studies have shown that software development projects often run over budget, and

many projects are abandoned because of severe cost overruns and schedule slippages. Many traditional estimation approaches estimate total project time, and assume that accurate time estimation automatically leads to accurate cost estimation. E.g two projects that require the same number of man-days will have the same cost estimate, even though one project may be more complex and require a greater proportion of time to be spent in more expensive activities such as project management and R&D. This assumption may not hold as the time spent in different development and implementation activities differs across projects, Different activities have different costs and some activities cost more than others. The Activity Based Costing (ABC) Methodology has become more prominent during recent times due to its ability to allocate the indirect costs based on the activities involved in the business process thus resulting in a better or improved cost allocations. In the current project, the team would study and compare the costing of "Development of a Software Product" by using a conventional method (currently applied in the Organization) as well as by Activity Based Costing methodology. The team would also present how the cost information can be used for better decisions by the Management.

1.2 Software Product Development Life Cycle


Oracle Supply Chain Management Group (SCM) in Oracle is a 1000 employee organization which develops SCM related Software products, bundles them with other integrating products like Oracle Financials, Oracle Human Resource Management ,whole lot of other products as E-Business Suite (ERP) and sells to customers. E-Business Suite enables organizations to automate their business processes and get best of breed solutions to their business problems. SCM Product Development Group handles new feature development in any of its existing products portfolio or new products development as projects. It follows the below mentioned Software development process to execute the projects. At each stage of development process it leverages the services, infrastructure of various teams within Oracle for completing the projects.

1) Innermost circle in the figure shows the software development process followed in the execution of the projects 2) Second concentric circle shows the teams which are directly involved, resourced in the execution of the project at different stages of the development 3) Outermost concentric circle shows the teams whose services and infrastructure will be utilized by project teams for the execution of the project. Oracle SCM Product Strategy, Product Management teams shown in the figure above reviews enhancement requests logged by different customers in software products, discusses with product sales teams on the new feature requirements of customers, compares with competitive products in the SCM space and identify feature gaps, takes feedback from analysts groups like Gartner, Forrester on the features being offered and new feature additions and comes up with a products future road map.

Product Management team groups different requirements gathered into list of projects, prioritize them, associates value to each of those based on the parameters like number of customers looking for the feature, how critical features are for the business, Generic or industry specific, differentiators etc. PM discusses with product development team and puts high level cost estimate for each of the projects and then submit the projects for Top management Approval. Top Management reviews the projects, does the cost benefit analysis based on the estimates given and see whether the projects can be addressed with current budget or not. If not they either scope out some of projects from the current release or allocates more budget for additional headcount for the execution of the projects.

2 Current project Costing Methodology


2.1 Cost Center Model
In oracle, every employee is associated to a specific cost center depending on the team or group that the employee is associated with. Even if employees are associated to same team/functional group, if they happen to work from different locations (Eg US, India) cost centers will be different for them. Employee related expenses like salary, relocation expenses claim, and travel expenses claim, mobile expenses claim will be posted to their respective cost center. In SCM Group there are multiple teams like Product Management (CC 2), Product development (US CC 3), Product development (India CC 3). Expenses for each team will be posted to their respective cost centers and rollup to SCM Cost center (CC1). This will provide overall expenses information for the SCM top management to plan, control and make decisions. Figure below shows how cost centers are associated to employees of different teams/groups.

Direct Costs
SCM Cost Center 1
Cost Center 2 Product Management Project Costing Cost Center3 (US) Product Development Cost Center4 (India) Product Deveopment Project Resource pool Direct Cost Allocation Indirect Cost Allocation

Indirect Costs

Cost Center 8

Facilities

Cost Center9

HR Operations

Cost Center10 Cost Center6 Central QA Environment Operations

Cost Center11

Cost Center7 Central Release

Doc Team

Cost Center12 Sales & Marketing

Cost center13

Training Dept

2.2 Project Costing


2.2.1 Direct Costs
Based on the Complexity of the Project that is being executed, Project Manager Estimates the number of resources required, type of resources required, number of man days for which they are required and allocate them to the project. Costs incurred for the pool of resources will be direct costs incurred for the project. Table below shows how the resource pool will be allocated for the project Team Resource Type No of Man Days of Total Man Days

(R) Product Management Product Management Product Dev Product Dev Product Dev QA Release Product Managers Sr Product Managers Senior Apps Engineer Project Leads Dev Manager QA Engineers Release Engineer Total

Resources (nR) 2 1 6 2 1 3 1 16 Table 1

each resource (MDays) 10 5 40 20 10 10 1 96 20 5 240 40 10 30 1 346

*Numbers mentioned in the table are not real and just taken for explanation

Direct cost for the projects can be calculated using the formula mentioned below (CTC of R * nR) * Total MDays Direct Cost = _______________________________ Working days in a year Lets not have a detailed calculation of the direct costs and say it arrives at a constant figure called DC at the end of the calculation.

2.2.2 Indirect Cost or Over head cost


While executing projects, lot of indirect costs as mentioned in the figure above will be incurred by the project. Indirect costs will not be charged to the cost centers of the employees but charged to their own cost centers. Allocation of indirect costs to different projects is proportional to the total number of direct labor required for the project Total Indirect costs incurred by project support teams (per year?) Indirect Cost Rate (ICR) = ___________________________________________________________ Total number of employees in the Org nDL = Total number of direct labor for the product Indirect Cost allocated to the project = ICR * nDL Indirect Cost heads Central UI review cost Re-usable software Total cost for the organization (in Rs.) 32,00,000 10,00,000 Indirect Cost Rate (ICR) in Rs. 3200 1000 Cost allocated to the project = ICR * nDL 3200*16=51200 1000*16=16000

components Automated Tests Preparation Infrastructure & administration costs Documentation Demos

92,00,000 1,97,00,000 10,00,000 72,00,000

9200 19,700 1000 7200 Total

9200*16=147200 19700*16=315200 1000*16=16000 7200*16=115200 6,60,800

Table 2
Total Project Cost = Direct Cost incurred + Indirect Cost incurred Total Project Cost = Rs. (DC+6,60,800)

2.3 Shortfalls in the current approach


2.3.1 Inaccurate allocation of indirect costs

Any software development company would try to build the product using as many re-usable components as possible instead of developing every new product from the scratch. This is because the custom-crafted approach to software is very expensive in terms of both time and money. Applications Technology Group (ATG) is the central team which is responsible for developing the re-usable components which can be implemented by the various products in the organization. ATG spends a lot of time and money in R&D, technology innovations via collaboration with other companies and therefore incurs lot of cost. In the current methodology, the ATG costs are levied to the implementing projects based on the size of the implementing project (in terms of the direct labor allocated to it). Therefore, a large product (in terms of the direct labor) will be charged high costs even if it uses very little re-usable components from ATG. Since ATG costs are typically very high, this kind of cost allocation can highly skew the over-all cost of the product. Similar problems arise when allocating costs any global function like the infrastructure, sales and general administration etc.

2.3.2

No direct approach to estimation the cost of a given activity

There is no direct way of knowing the cost of a given activity in the software development process. This forms a very important piece of information to the management for decision making on outsourcing a specific development activity. With whatever indirect ways the cost of an activity be arrived at, the above point on inaccurate allocation of indirect costs also adds to the inaccuracy in the determined cost.

3 Activity Based Costing for Software Development


3.1 Methodology

The ABC model first groups the organization resources into various resource pools such as salaries for various direct resources involved in the project (example, project management team, development team etc), infrastructure costs like facility rental expense, license fees, and the S&GA expenses. Various activities performed in the organization are then grouped into major functionally homogeneous activities, such as Requirement analysis, functional/technical design, development, sales and distribution. Each activity consumes different amounts of one or more resource pools. For example, sales and distribution uses 5% of infrastructure and 40% of salaries of the direct labor. The costs of performing the activities are determined by allocating the costs from the resource pools to each activity according to the percentage of the resource pool

consumed. This principle is fundamentally different from the traditional costing system that assumes that products consume resources directly. The generic ABC model is outlined in the figure above. Once the activity costs are determined, they can be traced to cost objects (such as product) using cost drivers. Cost drivers measure the frequency and intensity of the demands placed on activities by cost objects, For example, one of the cost drivers for the sales and distribution activity is the number of demos presented by the sales team. The organization computes the total number of demos presented in a given time period, and traces the sales activity cost to all the products based on the number of demos done for each product. The product with the largest number of demos would bear the highest cost for sales activity. This is in contrast to the current costing methodology where the sales and distribution costs allocated to a product is directly proportional to the size of the product in terms of the direct labor involved in it. Table 4. Definition of Cost Drivers Activity Cost Driver No. Of UI reviews Definition Number of the reviews with the user experience team which is a central teams approving the UI design done by the product managers. This is important because the UIs form a direct interface with the end customers Number of re-usable components consumed weighted by the complexity of the component used. Number of new external software licenses used during the development phase of the project Number of automated test scripts created during the testing phase of the product Number of planned demos done by the sales force. No. of hours of common infrastructure used. E.g., the Video Conference facilities, Central Environments for testing/demoing the product etc.

No. of re-usable * Complexity No. of new software licenses No. of Automated Tests No. of demos No. of hours of usage of common infrastructure

3.2 Results
Lets look at the indirect costs involved using the activity based system. Here we will exclude the direct costs that are already described in table 2 in section 2.2.2 because they remain the same in the current (traditional) costing approach and the proposed Activity based costing approach. The results of the ABC analysis are presented in the table 3 below which contains the following: (1) Cost Analysis, which includes the identification and analysis of activity cost pools, total cost per activity.

(2) Cost Driver Analysis, which reports the identification of cost drivers, determination of driver rates which is a given number which the operational managers should be able to plug-in during project costing. Activity Cost Pool Cost Driver Cost Driver Count Functional Design UI review Technical Design No. Of UI review No. o f re-usable components * Complexity No. of new software Automated System Testing Sales & Distribution All Activities Infrastructure & administration costs Total 4,69,400 licenses No. of Automated Tests No. of demos No. of hours of usage 10 30 5 160 1000 500 10000 2400 10*1000=10000 30*500=15000 5*10000=50000 160*2400=384000 (usage) 2 40 Driver Rate 3200 100 3200*2=6400 40*100=4000 Total cost

Table 3
Total Project Cost = Direct Cost incurred + Indirect Cost incurred Total Project Cost = Rs. (DC+ 4,69,400) Total Project Cost = Rs. (DC+6,60,800) using Activity Based Costing using Current/Traditional Costing

How cost data is used by the management?


3.3 Decision Making
Accurate cost information would enable the management to decide if making or buying the product or the feature (extension of the product) is a cost effective option. It would also contribute in assessing ifa) The product is cost viable? What is the market scope for it? And when is it likely to break even. b) If a similar product exists in the market, with a sizable customer base, an acquisition or merger make more sense? This is likely to save time which might result in reducing cost and improving profits for the organization. c) If the product or the feature being developed needs to have a whole team being setup is it that a contract with a 3rd party vendor would be more profitable?

3.4 Budget Control


Identifying what would be the best way to ensure the budget does not over run: a) Common costs: or Fixed cost which are not likely to change in the event of either of the product/project being chosen. In a product based company as against a service based company irrespective of what product or feature enhancement is taken up the team involved is likely to be the same, i.e. to say resourcing would not impact the cost of the product unless the location of the employee is from a different country. So if the company has cost effective centers then having the project executed from there would be reasonable as when executed from High cost Centers. b) Sunk costs: Past costs, which are irrelevant or do not impact the new decision being made e.g. development costs already incurred and already accounted for in R&D. Machines/Hardware that has already been invested for and can be used in either/or of the products. Having an inventory of the hardware and the current usage of the systems, would ensure there is proper utilization of the systems. c) Committed costs: A future cash outflow that has been committed to, in form of existing contracts where payout is likely to happen any which ways. E.g. A component which was initially outsourced but now you have the skills in house, as contract has been signed does not leave one with much option but to continue the contract.

3.5 Other Areas


ABC would also help us identify the other areas and processes that would help reduce the cost a) Design and implement policies, tools, processes that can be reused. Having appropriate measures in place to ascertain the reuse components usage. Size of reuse libraries: number of components. Quality of reuse libraries: frequency of reuse etc. b) Policies across the Line of Business (LOB): Telephone / Broadband Reimbursement: Varying on the LOB the amounts are reimbursed, keeping in mind the Business Continuity Plan in case of any eventuality. Pickup and drop facility to employee is revisited when the cost of same increases. For a smaller team size the amount may be negligible, this is more imperative for teams that have fixed timings. Revisiting the start and end time of shifts to try and minimize company transport is one way that management would bring down cost. c) New Locations being added to the Development Center: the locale, the cost of real-estate in the location. The talent and the approximate cost of employee in the location would need to be weighted.

4 Conclusion
It is obvious that ABC provides accurate, deeper insight into the source and causes for software product cost. This information enables managers for effective decision making on which activities to control to reduce the costs or improve operational efficiency. While the recommendations presented for the ABC model appear idealistic and can accurately produce the cost estimates for developing a software product or a particular activity in its development cycle, the ABC approach also has its own challenges. The accuracy is a function of capturing and availability of the detailed information of the resource/cost drivers. The analysis of resources, costs and utilization in activities required to customize the model to an organization can introduce significant setup costs and complexity for this approach. The problems of increased model complexity include user resistance, increased variances among project team members in driver counts, and delay in estimation.

You might also like