Configuration management (CM) provides organizations with a level of control over the changes that occur in the engineering space. It can help protect the valuable code assets of the revenue generating products within the organization. CM provides the capability for products to manage the pieces therein that change at different rates, exposes the changes that are occurring, and establishes knowledge of the baseline of the product which then improves integrity and minimizes product regression. In addition, CM not only assesses the impact of change, but assists in problem resolution. While the value of CM is typically understood within engineering organizations, it is important to apply CM investment wisely.
CM professionals have a large number of demands on their time and typically more work than possibly be completed by the staff available. Typically, the organization in which a CM professional works must make business decisions regarding the order in which to apply CM resources and CM rigor. It is best to evaluate the items requiring CM and invest at the appropriate level.
To begin the evaluation process, it is important to first understand the life expectancy of the deliverables. Second, the business criticality of the products within the organization must be determined. From this data, the level of CM investment can be applied to the more important products first and then, eventually, to all products as resources allow.
Identifying Life Expectancy
The first step to take is asking, “What are you applying CM to?” and “How long is the deliverable expected to live?” This can provide insight into the appropriate level of CM to be applied. If items under consideration will only live for a short time, like a prototype with no expectation of life beyond the project, then a very simple level of CM (like only version control) can be applied. If CM is being applied to a project, but the deliverables of that project are part of a product that is expected to live for some time, then it is better to establish a more rigorous level of CM (including version control, change control, problem management, automated build management, etc.). In addition, if there is an expectation of multiple releases of the product over time, then it becomes critical to establish a very solid CM infrastructure to manage the multiple changes and may imply a rigorous branching and merging process. Keep in mind that it may not be easy to determine the life expectancy of a product. Talking with the product owner is one source of information. Learning that the product is intended to be used for quite a while is enough to know that it has a long enough life for CM to be applied. Determining Business Criticality
The next step is to determine the level of importance of the products that will need CM. This will help determine the order of the work and CM effort needing to be applied. If the company in which you work has ten products that need CM, the question is which to prioritize first, second, third, and so on. Investigate if there is a business criticality rating already assigned to the products. If not, conduct a brief evaluation with the product owners, collecting the following data for each product:
· Is the product in production (e.g., has it been released) and what is the potential impact to the customer base if product cannot deliver the next release?
· Current or expected future revenue of the product over the next year
· Current version and change control problems on the products
Based on this data, a simple business criticality ranking can be established. High scores should be given to products that have already been released and have an existing customer base. Without CM, any level of regression in the product can cause dissatisfaction. High scores should be given to those products currently generating large revenue and those expected to do so in the next year. Without CM, any level of regression in the product can cause a loss in revenue. High scores should be given to products that have immediate version and change control problems where there is regression or lost code.
| Product A | Product B | Product C |
Released (in production) | 10 (Yes) | 0 (No) | 5 (nearing) |
Current revenue/expected revenue | 5/10 ($1m/$2m) | 0/5 ($0/$500K) | 0/5 ($0/$500K) |
Problems | 5 (yes) | 0 (no) | 5 (yes) |
Totals | 30 | 5 | 15 |
Business criticality ranking | 1 | 3 | 2 |
Consider setting up a matrix like the one above that includes the products and answers to the questions above, along with scoring that will help drive the ranking. Using the example above, product A has the highest business criticality and, therefore, should have the highest level of CM rigor applied to it.
Investing Appropriately
Now that the life expectancy of the products has been identified, the business criticality has been determined and products have been ranked, a cost effective investment approach into applying CM can be discussed. Also, the rigor of the CM infrastructure should be directly proportional to the life of the product and the business criticality of the product to the organization. Few people will question the importance of CM. Given the competition for resources, though, it is important to establish a CM investment strategy based on the life of the application and business criticality.
References
1. Approaching the Implementation of CM”, by Mario Moreira, Feb 04, published at CM Crossroads (www.cmcrossroads.com).