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 of CM. To begin this evaluation process, it is important to first understand the life expectancy of the deliverables at hand. 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 is to ask ‘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, 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 awhile’ 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 |





