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.