For last few years or so, I have seen significant improvement in the field of configuration management. Globally many organizations realize its importance and take maximum advantage by adopting best practices and standards to accelerate their business performance. ‘Configuration Management’ plays an important role in any lifecycle of a project and directly impacts the company’s business.
Talking about a software project, I am of the view that whether a project is small or large, it can never be successful unless the application is properly managed, controlled and administered else it will become problematic to handle. This is because change in an application is always inevitable and must be properly managed by means of its type, revision history information, accessibility to the user and other parameters. As the development passes through different phases of a software life cycle, the need to control the system changes becoming more demanding and critical for stakeholders.
Today most companies rely on CM tools for managing their software changes especially in terms of source code level and perhaps they are quite successful maintaining and preserving the changes. Here again selection of the right CM tool is critical for organizations. Ideally the tool should be able to facilitate users working by in different ways such as providing integration support, build automation, parallel development and other parameters. This will help the development team in accomplishing their tasks quickly and effectively with more reliability. Availability of open source version controlling tools are easily available in wide range that can facilitate all major requirements for both small & large enterprises, so I think cost should not be prevent users from adopting CM tools. Indeed tools have made life easier for software development teams and created a sense of comfort for organizational stability.
Establishing corporate standards to define a common usage model will often be the deciding factor in whether or not your tools deployment will be a success.
One of the other ways of implementing a configuration management system is by means of using ‘Process’. The processes should define, although flexible so that it does not create a burden for the users. Process should never cover up all the basic requirements like revision history information, file current version, date modification, etc. Some tools are so complex that they can be difficult to navigate with a considerable amount of training. This approach will at least provide some sort of tracking to small teams working on small size of application but in each case tracking is mandatory and cannot be tolerated.
I think ideally the most effective and productive method of implementing SCM is the combination of both CM tools and processes. Effective processes will make a big difference to a user by providing a smooth flow of data, auto-generated emails, rich reports, reverse and forward tracking, code traceability, track deviation and many others. This means that your users will get a lot more work done.
There are lots to think about when you implement CM tools and process. Make sure that you remember to set a corporate standard and help your team achieve success!
About the Author Muhammad Saqib Khan is Pakistani based working in Configuration Management field for more than 7 years. He has worked in the processes areas of CMMI especially relevant to Configuration Management and Product Integration. Currently he is working as a ‘ Configuration Manager’ in ‘ NetSol Technologies Ltd ’ a CMMI level 5 organization where he has contributed in the improvement of different process areas of Release Management and Configuration Management. Saqib has supported more than 60+ applications globally having different domains and challenges. He holds a B.Sc. degree in Computer Sciences and you can contact him at firstname.lastname@example.org