Achieving SCM objectives through day to day interactions with all departments of an organization need specialized skills comprising of both Technical and Personal skills.
However sometimes It is hard to find a resource having all these skills, thus companies need to provide proper training and guidance to existing employees in development, quality assurance or operations to take up on this responsibility.
Understanding of SCM Concepts: Thorough understanding of configuration management concepts is required by Configuration Managers so that they can work towards the desired goal with clear conscience. Understanding these concepts and goals will help them design policies and processes that won’t hinder someone else’s work while achieving desired results.
Experience with Code Repositories: Code repositories are heart of Configuration Management, a manager must be familiar with available code repository solutions and have working knowledge of one that is being used by his organization. Knowledge of common functions related to Code repositories including coding check-in, check-out , branching and tagging is mandatory.
Knowledge of Diverse Programming Languages: In today’s cross platform world there are rarely products supporting single platform. All that diversity pushes software houses to develop solutions in multiple programming languages and targeting multiple device types. To work along with this diversity, Configuration Managers should have working knowledge of diverse programming languages including Java, .Net, Objective-C, Ruby, PHP and ActionScript so that they can create build scripts for these different project types.
Cross Platform Knowledge: Products targeting large customer base needs to address every platform out there including Windows, Linux distributions and Mac OS. Knowledge of these operating systems and their command line languages will enable configuration managers to utilize their powers to maximum.
Continuous Integration Servers: Multiple and Diverse project types make it impossible for Configuration Managers to keep track of every aspect of a changing software. Thus knowledge and working experience of continuous integration servers is a must have.
Test Automation & Unit Test Integration: Creating unit and integration tests requires some degree of programming and testing skills, which a top configuration manager must possess to fully accomplish his job responsibilities.
Communication: The most important personal skill required in Configuration Managers is their ability to communicate with other departments. Their interaction must have all the ingredients of an effective communication to avoid any faults generated due to miscommunications alone.
Responsibility: Playing a central role in the product delivery work-flow demands responsibility to ensure timely delivery of the releases and in case of a problem it must be communicated to higher ups with due diligence.
Pressure: Dealing with deadlines has always been pressurizing, and Configuration Managers have to deal with deadlines when they have to release a product. CMs must be strong nerved and able to respond positively even in most adverse scenarios.
What other skills you believe are needed to be a good configuration manager?