Few days back I have posted an article on responsibilities of release manager , Since release manager and configuration manager role is very much associated with each other and some where overlapped as well hence this thought provoke me to write on responsibilities of configuration manager.I have seen many projects paying the price of bad CM practices and struggling to stream line until the project closure And same story repeats when they start new projects specially in the SI(system Integration) project where time lines are very short and CM comes in the picture when projects goes in the Code Red. I called this as "CM syndrome" (deficiency of CM)."CM syndrome" starts with the project, if the symptoms are not identified in early stages then you can see things will go out of control or wrong code goes in to environment ,after merging code is missing or not able to get previous release artifacts ,I can go on counting number of symptoms ,As say "prevention is better than cure" its very much advisable emphasize on prevention rather than cure ,some times cure may be painful activities .To prevent "CM syndrome" planning of CM strategies should go hand in hand with project planning Also need to define role and responsibilities of the configuration manager who will be responsible for preventing "CM syndrome". in many projects CM role is taken care by release management himself however its sensible to assign CM role to separate resource when RM have lot of things in his plate.
1) First responsibility of CM is to own the SCM plan it has to derived based on the project need or can be taken inputs from historical projects ,CM is responsible for planning, monitoring , executing and reporting of entire CM plan. Plan should say every thing about all the CM aspects.
2) CM mostly deals with the configuration items and activities around it, CM should identify all the possible configurable items(CI) in planning stage with the help of respective leads and previous project implementations. In some of the project documents like Release notes are considered as CI.
3) Very important aspect of CM role is to define version control policies and the naming convention and ensure that it will not collapse during branching and merging activities and easy to understand, follow and track.
4) Defining directory structure for respective projects to accommodate all the possible CI according to project need it should be with the help of project lead or CC .if you are planning to accommodate multiple projects in the same repository then classification can be done at the root level and also have to define the user access rights policies for respective projects/root
5) House keeping and CM library maintenance activities should be taken care by CM himself or some one from the CM team.
6) After every release CM should have track and log of release baseline in separate documents or in system which will be useful for tracking, merging, monitoring and audit purpose .
7) CI register maintaining out side the CM tool is optional since CI history is available in CM tool and can be extracted for specific release .in some of the project CI register data shared as quality and verification process. According to me it's a overhead if you are already maintain the data in CM tool .
8) Best practice is to tag / baseline release so that any defect fixing will not effect on going development.
CM should ensure baselines is properly done for all the intended release and can it can be branch out whenever any fixing is required.
9) Once the Directory structure and access rights policies has been defined, time to decide the code check-in check-out policies ,Branching ,Merging code promotion guidelines ,CM own the responsibility for training and giving guidelines to the team members. Also support them to adhere the policies and in trouble shooting.
10) CM is accountable to ensuring all CI in CM tool is authorized for specific release and have approval for the same.
11) Constant monitoring of all CM process and activities is the key role of CM and also responsible for raising "Red Alert" in case of discrepancy or process breach.
12) CM take care of the physical configuration audit before release and also responsible to comply with organization or project quality process matrix.
13) CM is solely responsible for ensuring to take regular backup for CM repositories and restore it and validate the backup as per project backup policy ,In big organization technical infrastructure team will take care of defining backup and restoration policy at organizational level, in that case CM has to co-ordinate for the backup and restorations.
14) CM also maintain the inventory of security token ,user id creation, server IP ,static IP list for project etc.
Role and responsibilities of the CM can be alter based on the project need and delivery methodology as long as objective is to prevent the CM syndrome
By : Dharmesh Patel