Why a Configuration Management (CM) department should be independent from Development, Test, and Production. When deciding where to organize an SCM team within a development organization it is helpful to keep in mind that the three most important characteristics of the SCM role are objectivity, skill set, and focus. This document will show that an independent SCM department is the only group with the right mix of these characteristics to successfully implement and support a full range of SCM services.
The main responsibility of the SCM role is to hold "in trust" the software assets of the organization. Because these software assets are created and used by a large number of cooperating stakeholders, the agenda of SCM should be to create an equitable, auditable, and predictable system of "care, custody, an d control" for those software assets as they progress through the development lifecycle. In this way, the SCM role provides an unbiased objectivity analogous to the role of an accounting department within a business organization.
An accounting department does not concern itself with "why" or "if" any other department spends its money. Nor does it express and affinity to any one department with regard to resource disputes. The accounting department merely acts as an independent Trustee of corporate funds and how those funds are spent. This would not be the case if the accounting department were not independent. For instance, if the accounting function were placed within the IS department, expenditures would be slanted towards hardware and software needs, while departments like Marketing would be left with barely enough financial resources to make photocopies.
Like accounting, an independent SCM department necessary to achieve the necessary objectivity t o equally service the conflicting needs of all interested pa! rties in cluding Development, Test, and Production.
The SCM department provides a unique skill set to the enterprise. SCM administrators are a special breed, possessing a unique blend of development and systems administration skills. SCM administrators are knowledgeable about the development lifecycle, tools such as make files and compilers, and the system administration skills necessary to configure and maintain the SCM system with all of its components. The Development department has the technical development skills, but they typically lack systems administration skills. System Test typically consists of power users who have neither the development, nor the systems administration skills required for SCM work.
Production, on the other hand, has the systems administration skills, but lacks the development oriented technical skills to design and configure builds or manage multiple lines of development for software applications. Therefore, it is important to create an SCM department with the appropriate technical skills, the mandate to improve those skills, and the ability to train others.
Another crucial element of the SCM department is its ability to focus on the problem at hand. Although SCM is too often seen as an afterthought upon which no specialized focus is necessary, nothing could be further from the truth. An SCM system is a combination of specialized tools and processes. These tools and processes need to be maintained, as well as changed and improved over time to meet future business goals. Who should perform this work? We might look to Development, but they are focused on writing code for new applications, and improving the functionality of existing ones. System Test is focused on testing applications to find new defects and verify bug fixes. Production is busy maintaining a stable and functioning production environment. None of these groups have the time or the focus to wor ry about maintaining the SCM system, much less developing an! d refini ng SCM standards and procedures. It is therefore critical to have an SCM department focused on building and maintaining an SCM system that will increase the quality and reduce the cost of development by improving the control and predictability of the software development process.
A key component of a successful SCM implementation is the creation of an independent SCM department free from the natural biases of Development, Test, and Production. An organization which fosters the right blend of skills