Concepts: Baselining
Topics
A baseline is a 'snapshot' in time of the development artifacts in the Implementation
Model. It provides an official standard on which subsequent work is to be based, and to
which only authorized changes can be made. After an initial baseline is established every
subsequent change to a baseline is recorded as a delta until the next baseline is set.
When baselines are created, all constituent components and baselines need to be
labeled such that they are uniquely identifiable and re-createable.
There are several advantages to
creating baselines:
- A baseline provides a stable point, and a snapshot of the development artifacts.
- Baselines provide a stable point from which new projects can be created. The new
project, as a separate branch, would be isolated from subsequent changes to the original
project (on the main branch).
- Individual developers can take baselined components as a basis for updates in their
isolated private workspaces.
- A baseline provides a way for a team to roll back changes in case the updates are
considered to be unstable or suspect.
- A baseline provide a way to reproduce reported bugs given that you can recreate the
configuration when a particular release was built.
The best time to create a baseline is at the
end of each phase (major milestone). However, during the course of the project baselines
may be created at the ends of iterations (minor milestones). A good time to create a
baseline may be after an iteration when certain critical level of development has be done,
and different teams can use the baseline to branch off for individual development efforts.
As such, baselining would occur more frequently than just at the end of iterations.
Names of the major milestones associated with the lifecycle phases are:
- Lifecycle Objectives Milestone (Inception Phase)
- Lifecycle Architecture Milestone (Elaboration Phase)
- Initial Operational Capability Milestone (Construction Phase)
- Product Release Milestone (Transition Phase)
|