r1 - 10 Jul 2003 - 18:21:11 - BradAppleton?CmWiki  >  CM Web  >  CmMetrics  >  CMCostEffectiveness

CM Cost Effectiveness

Here is something that I present to the different teams at my corporation as a selling document for CM. It is formulated from Alexis Leon's A Guide to Software Configuration Management. There is no dollar value associated, but it could be added.


The Four Development Issues that are Resolved with CM

Communication Breakdown

The more people you have, the more likely this is to happen.

Shared Data

Developer one makes a change to a shared component and Developer two suddenly notices their program not working. No reason to suspect the shared component unless he/she knows about the change.

Simultaneous Updates

Last one wins!

Multiple Maintenance

This occurs when there are multiple versions that must be independently maintained and evolved. You have to make changes in all the supported evolution paths. Related to the shared data problem


Benefits

Supports Increased Complexity of Software Systems

In the early days, program were typically less the 1000 machine instructions in size, required one programmer, seldom took more than a month and average cost was around $5000.00.

Today it’s 25 million source code statements, requires hundreds or thousands of Developers and have development costs of $500,000,000. [1]

Supports Increase in the Demand for New Software

New third-party components, different languages, different operating systems and size of legacy systems require some way of managing all these different characteristics.

Supports the Changing Nature of Software

Software systems are subject to constant changes-during design, during development, and even after development. The only constant thing about software is change.

Supports Improved Software Development Productivity

Reducing the four development issues that are discussed above.

Provides Lower Software Maintenance Costs

According to the Iceberg Effect as defined by B.S. Blanchard [2], 75% of software costs are not visible. They occur as operational and maintenance costs. If requirements and other documentation are well defined and evolved, these costs are reduced.

Earlier Problem Detection and Bug Fixes

Once you have defect logging and tracking systems in place, once the QA team starts looking into the causes of the problems and starts correcting them, once the checks and audits are made to ensure that the project standards and guidelines are followed, then the number of bugs and problems will be reduced.

Faster Problem Identification and Bug Fixes

In the usual system of testing, bugs are found and fixed. But if there is a mechanism for logging the bug\problem reports, categorizing them, analyzing the causes, and recording how the problem was resolved, then much time can be saved the next time the problem occurs.

Process-Dependent Development Rather than Person-Dependent Development

First-class people are essential, but they need the support of an orderly process to do first-class work. In early days, when software projects were simple and small, a single individual often handled the design and details of a project. Even though projects have become larger and more complex, the dependency on the individual still exists. For example, in many projects, if you remove a few key people, the projects will come to a standstill, basically because the other members of the team do not have the whole picture of the project. There is no way they can have the whole picture because no documentation exists, and even if it exists, it is only understood by the person who wrote it.

Provides Assurance that the Correct System was Built

There has to be some process for documenting the initial requirements and the changes made to them. This means there should also be some mechanism for checking or auditing the software system or product that is being delivered and certify that the product meets the requirements. This also assures that the tester knows the added functionality from the business requests and the which defects were fixed and need to be tested.

Provides Assurance that code does not get “lost”

Lost code can be an extremely high cost issue. A proper CM system ensures that the code is secure.


Risks of not Having CM

Missing Source Code

Incorrect Versions of Component Libraries

Inability to Determine What has Happened to a Particular Program or Data

Inability to Track Why, When, and Who Made a Change.

Why the Heck Did a Program that was Working Suddenly Quit Working?


References

  1. A Guide to Software Configuration Management, Alexis Leon
  2. System Engineering Management, B.S. Blanchard


-- BryanSkinner?, Configuration Manager - 10 Jul 2003

-- BradAppleton? - Jul 10 2003 (minor corrections/updates)

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions | key Log In
 
Copyright © 1998-2008 CM Crossroads LLC
Ideas, requests, problems regarding CmWiki?? Send feedback