Showing posts with label Configuration Management. Show all posts
Showing posts with label Configuration Management. Show all posts

Thursday, December 23, 2010

Change control

Change control is vital. But the forces that make it necessary also make it annoying. We
worry about change because a tiny perturbation in the code can create a big failure in the
product. But it can also fix a big failure or enable wonderful new capabilities. We worry
about change because a single rogue developer could sink the project; yet brilliant ideas
originate in the minds of those rogues, and a burdensome change control process could
effectively discourage them from doing creative work.

Version control

Version control combines procedures and tools to manage different versions of configuration
objects that are created during the software process.
Configuration management allows a user to specify alternative configurations of the software
system through the selection of appropriate versions. This is supported by associating
attributes with each software version, and then allowing a configuration to be specified
[and constructed] by describing the set of desired attributes.
These "attributes" mentioned can be as simple as a specific version number that is
attached to each object or as complex as a string of Boolean variables (switches) that
indicate specific types of functional changes that have been applied to the system

What is configuration management?

In software engineering software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revise control and the establishment of  baseline.
SCM concerns itself with answering the question "Somebody did something, how can one reproduce it?" Often the problem involves not reproducing "it" identically, but with controlled, incremental changes. Answering the question thus becomes a matter of comparing different results and of analysing their differences. Traditional configuration management typically focused on controlled creation of relatively simple products. Now, implementers of SCM face the challenge of dealing with relatively minor increments under their own control, in the context of the complex system being developed

The goals of SCM are generally:
  • Configuration identification - Identifying configurations,configuration items and baselines.
  • Configuration control - Implementing a controlled change process. This is usually achieved by setting up a change control board whose primary function is to approve or reject all change requests that are sent against any baseline.
  • Configuration status accounting - Recording and reporting all the necessary information on the status of the development process.
  • Configuration auditing - Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications and user manuals.
  •  Build Management - Managing the process and tools used for builds.
  • Process Management - Ensuring adherence to the organization's development process.
  • Environment management - Managing the software and hardware that host the system.
  •  Teamwork - Facilitate team interactions related to the process.
  • Defect tracking - Making sure every defect has traceability back to the source.