Configuration management is a discipline that focuses on the proper setup and maintenance of computer hardware and software systems. On the hardware side, this field lays out the operational methods and schedules for hardware systems across an office, building or company. On the software side, configuration management works on ensuring that all software packages have the same features, patches and add-ons so there's uniformity for every worker. Software configuration management is also common during the development phase as a design methodology.
There are two main areas of configuration management—hardware and software. In most cases, these two areas do the same thing, outlining the methods used to ensure the proper placement and configuration of computer resources. In most cases, the system’s human operators, rather than the system itself, use the configuration management methods.
Hardware configuration management works with hardware systems on a large scale. These protocols typically cover an area with multiple workstations, a configured network and one or more servers. Smaller systems are typically not complex enough to require a configuration methodology.
The configuration management protocols ensure that each portion of the hardware system is set up properly and similar to every other piece in the same situation. For instance, a router that connects to the Internet may have a different configuration from one that connects to internal resources. When properly set up, the two routers would have different settings from one another, but identical settings to other routers in their same situation.
Software management performs a similar task on the software side of things. This style of configuration management sets up software profiles that apply to different groups or ranks within an organization. For instance, all people in the marketing department might have a single setup, but each person above a certain management level has a different setup. When brought together, it shows that the upper management of the marketing department needs access to both configurations.
In both situations, configuration management helps with maintenance schedules. With hardware, it outlines the expected work life of any component of the system, helping people determine when a piece of hardware is likely to need replacement. On the software side, it helps to set up a patching schedule and ensures that software is up to date.
When a software system is first developed, software configuration management helps to lay out the necessary requirements of the software. The needs of the users are brought together into a single collective. These needs are placed in the software package based on the prominence of necessity; things that people need more often are placed higher up in the software. Other options are brought together into conditions that users may choose to use or ignore.