Many objects are produced in the process of constructing an IT system. These objects undergo numerous changes before they reach the stage when they are considered to be complete and acceptable.
Version control is a process that aims to introduce rules and disciplines to ensure that individual variants of objects are effectively identified and that these variants are managed effectively.
The main benefits of effective version control are as follows:
• Simplify the task of identifying variants of an object.
• Facilitate the documentation of baselines (refer to the Approval and Baselining Standard).
• Control access and changes to objects.
• Enable the identification of changes between variants, (refer to the Labelling and Identification Standard).
Objects shall be labelled to facilitate easy identification.
All objects shall be assigned a version number. This is necessary to enable the identification of object variants.
The version number shall be updated each time the object changes status, e.g. between “Draft” and “Approved”.
A developer may update the version number while making successive modifications to an object while it is in “Draft” status.
Identification of objects may be implicit or explicit:
• Explicit identification involves the tagging of the object with the version number identifier (refer to the Labelling and Identification Standard).
• Implicit identification involves entering a version number for the object in the configuration log (refer to the Configuration Management Standard).
All baselined objects shall be placed in a controlled environment “Master Library” with the aim of preventing unauthorized access and modification (refer to the Configuration Management Standard).
Change control (refer to the Change Control Standard) shall be employed to obtain authorization before the implementation of any changes to approved objects.
Once authorization is granted, a copy of the objects that require modification shall be reserved and then extracted from the Master Library.
On the completion of the approval process, e.g. testing, objects shall be replaced into the Master Library.
Where possible, a record shall be produced which documents the changes between two successive variants of an object. This record should identify all the changes made to the object.
Where possible, a change history record shall be appended to an object. The history record shall contain the following identifiers:
• Date: The date the new variant was produced.
• Version: The version number assigned to the new variant.
• Status: The status of the object.
• Author: The person constructing the change.
• Source location: Location of the source for the new object.
• Comment: A reference to the change control authorization. The first version of any object shall have “First draft” comment.
Documenting the history is mandatory if a suitable tool is available to automate this activity.
These are tools that are designed to automate the version control process, e.g. Source Code Control System (SCCS).
Where a suitable version control tool exists, then its use is mandatory.
Version control tools automate object reservation, production of unique version numbers, production of history records and the generation of reports that identify changes between variants.