The natural goal of CM – comparing expected vs actual – creates an implication about what sort of business activity Configuration Management and where it may best fit in an organization.
Before diving into this, it is critical to understand that there is a difference between “CM team” and “employees that perform CM activities”. For example a developer will perform many CM activities in the course of normal development – such as searching through branches and checking code out/in – and yet not be a member of the CM team. To be effective, the CM team’s primary function should be to define, establish, and enforce the organization’s CM related strategy, policies, and practices. Although it is possible that the CM team only focuses on this and never actually touches any code/products, there is often a benefit to having the CM team perform specialized activities such as creating branches, or when there is a need for separation of control.
Because the CM team should be focusing on strategy, policies, and practices where that team fits into the overall organization is no small matter and has a very large influence. The CM team will naturally acquire the mindset of its parent organization. When it is a part of a development organization, it will become focused on tools (version control, build automation, etc). In an operations type group it will focus on gate keeping. As part of a service organization, it will focus on providing ‘billable’ services (builds, service calls, etc). When in the QA organization it will attempt to focus on quality – even though this is not a specific goal of CM.
The fundamental issue is one of balance: CM activities provide support for many roles within the organization including development, QA, testing, and operations. The CM team is at a disadvantage when it cannot interact equally with each role to find the balance that best supports the overall effort.
With this in mind, it is fairly clear that the CM team should be its own organization, on par with the development, QA, testing, etc. groups. A good second choice would be for CM to be part of program management type organization (PMO) as there is a fair amount of synergy that can exist between the two.
Regardless of where the CM team fits into an organization, the day-to-day CM related activities should be performed in the most natural location and person for the task.