|
Software Release Management
Who Says It's Finished?
Hand-off to an Isolated "Build" Environment
On the other side of the hand-off there is a "build-meister." The build-meister
should demand that the instructions be simple and that the build be smooth and easy.
If special conditions are required for the build, for example if third party
software is required, these conditions must be clearly stated in the instructions.
A product that gets built on an isolated system from immutably stored parts using
simple and complete instructions meets the criterion of being "reproducible."
Use Software to Manage Software
The "parts" from which a build is made are "source code" files. In a large
and dynamic develoment environment, the source code is constantly changing,
and often it is accessed by multiple people. Furthermore, the code that
is initially handed-off might not be the code that actually goes into the
delivery, since "quality assurance" might find a defect that needs to be
fixed. The cascade of updates rapidly gets too complex for humans to
manage reliably, so a facility for "source code control" is a necessity.
Jumping Through Hoops
The observations by "QA" come under review. Usually some defects will be
found, but they might be minor. A decision is made whether to deliver as
is, or to require a cycle of fixing. The reviewers making this decision
will include management, and might also include: developers, "QA" people,
and perhaps even sales people. If the decision calls for fixes, then
the developers make the update and then the whole process starts again:
there is a hand-off to the build-meister, etc.
Stamp It and Ship It
(Optionally) A Bigger Picture
Configuration Management
"Configuration Management" refers the ability to get different results
from similar source code. Software might need to be compiled for
different machine architectures. Software might need to adapt
dynamically to various hardware capabilities. Or, it might need to
adapt to availability of third party software, such as vendor databases.
It might be adaptable to different user environments, such as directory
hierarchies or network resources. It might use environment variables
or configuration files to modify behaviour for various users.
The product might need to be confifured with a license before it
will run.
After the Release comes the Install
The "Flow" of Release Management
- Hand-off from developers to build-meister.
- Build, in an isolated environment.
- "QA" testing.
- Review, and acceptance decision.
- Version stamping.
- Consumer facing "install" and "verify."
|
|