CoSQ and Activity-Based Costing


A good estimate of quality costs is crucial to the success of a CoSQ program. With custom-built software, costs were much easier to estimate, because the cost of software development was pretty much the cost of the hours of labor used in the software's development. With the advent of reusable components and object-oriented and other software development tools, this direct relationship based on custom-built single-use development has broken down.[12]

These tools and applications include not only program code, but also a range of analysis, design, and test programs. Given the growing emergence of such reusable software, one particular project need not recover all the costs the first time it is used. Also, the team assembling the application is likely to be encouraged to carefully consider its own development cost for similar applications, especially if proper incentives are provided for reusing components and tools. With all this, the ballgame changes, and software development becomes more like manufacturing as far as accurate cost allocation of overheads and other shared resources. Traditional financial accounting fails to allocate the cost correctly. What we need is Activity-Based Costing (ABC) to help identify the actual cost of various software development activities, just like in manufacturing, where it is used rather widely.

ABC in a Software Organization

You should carefully consider the following issues before introducing ABC and its variant, Activity-Based Management (ABM), in a software organization:[13]

  • Extent of reuse: In a systematic reuse environment, indirect costs and overhead associated with reuse can become a significant portion of software development costs, possibly approaching 50%. Traditional methods of accounting tend to undercost projects that are comparatively heavy consumers of reuse activities and overcost projects that are light consumers of reuse activities. This leads to inappropriate conclusions about the true cost of those projects. Furthermore, traditional methods provide no systematic means for assessing and improving the efficiency and effectiveness of reuse activities. ABC methods and associated ABM principles provide a means to address both of these shortcomings of traditional approaches. In a heavy reuse environment, costing anomalies resulting from traditional accounting can defeat a CoSQ program. They can also lead to poor decisions in any domain where accurate knowledge of costs is the key factor, especially product pricing and product mix decisions.

  • Cost categorization: ABC provides a systematic method for mapping resource costs to various software development activities and from activities to products.

  • Conditions of ABC application: Although ABC was originally developed for repetitive manufacturing environments, it has since been generalized as a means to map true resource costs to any cost object of interest. This includes not just products, but also services, such as health care, education, customers, branch offices, and projects. However, to apply ABC, three conditions must be met:

    • Indirect and overhead costs must be substantial and must be poorly accounted for by traditional means.

    • Objects (such as products, customers, and projects) must exist for which management cares about knowing the true costs.

    • Repetitive activities must exist that can serve as the basis for mapping indirect overhead costs to cost objects.

The systematic reuse environment, such as component-based software, meets these criteria. Such environments are characterized by high overhead costs associated with centralized reuse teams and infrastructure.

Starting ABC in a Software Organization

The cost assignment view of an ABC model can be developed according to the following seven-step procedure (see Turney[14] for more detailed guidance):

1.

Identify the repetitive activities to define within the scope of the ABC effort.

2.

Group the activities into activity centerscollections of activities that share the same overhead cost pools.

3.

Identify the resources used in overhead work, and aggregate them into pools by activity center.

4.

Identify resource driversthose that determine the relative share of each overhead cost pool attributable to each activity.

5.

Determine the basis for calculating unit costs of each activity.

6.

Identify cost objects, such as products and customers.

7.

Determine the cost driversthose that define the extent of consumption of each activity by cost objects of interest.

Benefits of ABC

ABC can provide three kinds of benefits to software organizations practicing systematic reuse:

1.

Because it supports more accurate allocation of overhead costs, ABC can lead to more accurate conclusions about the cost-effectiveness of individual projects. When the result of a project is a product sold to others, it can provide the basis for pricing and judging profitability.

2.

Equally important, ABC can help you assess and improve the productivity and effectiveness of indirect reuse activities.

3.

ABC assists in various quality initiatives by providing a more accurate costing of activities. It can clearly reveal what the costs are and which of the following categories the costs are absorbed into:

  • Productive activities: Identifying customer requirements, designing, and coding. These are the useful activities that "customers pay for," and they must be carried out to produce the desired software.

  • Preventive activities: Making sure that software development processes and procedures will lead to conformance to customer requirements.

  • Appraisal activities: All activities carried out to ensure that the software developed meets customer requirements.

  • Internal upstream corrective activities: All activities associated with detecting and correcting defects and faults associated with the requirements identification, design, and coding stages.

  • Internal downstream corrective activities: All activities related to detecting and correcting defects and faults associated with the downstream stages of test and evaluation, and verification and validation.

  • External corrective activities: All activities associated with detecting and correcting faults and complaints following release to customers.

ABC, if applicable, goes hand-in-hand with CoSQ. Like CoSQ, ABC does not provide financial data. Therefore, it does not need the accuracy and rigor associated with financial reporting. The pitfalls associated with CoSQ are largely applicable to ABC as well. It is absolutely critical to involve financial professionals in managing and supporting ABC and CoSQ. ABC can be easily adapted to the software development process and is well documented.[15], [16], [17]

Sidebar 4.1: ABC for Service Industries

Two fields in which cost increases have been hyper-inflationary over the past three decades are health care and higher education. Every nursing station in a hospital has been a "profit center" for years, but without ABC, it made no sense to ask a question such as "What is the average cost of a heart bypass procedure?" Or, in higher education, "What is the marginal cost of allowing 10 more students to enroll in Psychology 101?" Although the "data" is available in principle, it's inaccessible without ABC. ABC has allowed significant improvements in controlling runaway costs in health care and higher education since it was first applied nearly a decade ago.





Design for Trustworthy Software. Tools, Techniques, and Methodology of Developing Robust Software
Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software
ISBN: 0131872508
EAN: 2147483647
Year: 2006
Pages: 394

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net