Maintaining the Code: An Overview of Configuration Management

Maintaining the Code: An Overview of Configuration Management

The finished product in a software development life cycle (SDLC) that is moved into production is never actually the final product; software is never truly static, and updates are consistently needed to add changes and to fix bugs that were missed during development phases. There are multiple phases within an SDLC all consisting of a detailed plan describing how to develop, maintain, or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. To maintain consistency of each phase, a software revisioning tool is needed. This is where a configuration management (CM) process is implemented. 

What is Configuration Management?

Configuration management is a key process in managing changes and updates to software and expanding the scope of the management to include all of aspects in the SDLC such as the servers, routers, desktop computers, and other such things needed to keep all the moving parts of the whole continuing to work together smoothly. Keeping up-to-date documentation is of paramount importance to configuration management. One aspect of the documentation is similar to that of keeping inventory; you must know what you have before you are able to effectively manage it.  

The other aspect would be keeping detailed records of all the changes that are made to the code of the software. Configuration management is not called “configuration documentation” for the reason that it not only concerns detailed record keeping, but also managing who is able to enact changes to better ensure that changes to the code are not made accidentally and that the code and the systems that make use of it continue to function as intended after the changes are made. Documentation is essential to ensure that the CM process is implemented within your company correctly and consistently, and that tools are leveraged to best effect for your software development life cycle. 

Choosing the Right CM tool

Before choosing the proper tool to use in your configuration management process, it is important to first define the objectives for the CM during the planning phase of the software development project. SDLC processes should be automated, so you can manage the infrastructure, as much as possible in order to improve efficiency, allow for flexibility, and increase reliability of product for the client as well as save costs and money. For instance, automating the testing process will allow for tests to be carried out without extra costs and consumes less time than manual testing. An added benefit to using a CM for you! Consider other factors when choosing a CM such as process flow and time it takes to train with the chosen CM. There are many different tools used to aid in configuration management, each having advantages and areas of expertise.  

One of the most popular CM tools used by developers around the world is Puppet. Some reasons for the popularity and widespread use of Puppet would be that it has the advantages of being open-source, has automated provisioning capabilities, and provides real-time reporting and compliance for increased visibility. The key focus is their automation capabilities which make it a great choice for organizations looking to implement automation of as many processes possible. It doesn’t matter what the implementation is, but Puppet is the enforcement of that codification. The platform works well for management and the reporting tools are well developed, providing deep details on how agents are behaving though communication with the master. Other configuration management tools can still be very useful depending on the needs of your organization.  

Our Integratz team can help your company identify which configuration management tool works best for your software development life cycle process. We will work with you to streamline every step of your IT service delivery. Designing easily repetitive and error-prone system administration tasks, Integratz will quickly set up your systems in a reliable and repeatable way.

To learn more about configuration management, visit us at www.integratz.com