Packaging
Packaging is defined as the activity of organizing or bundling software that has changed in order
to prepare it for deployment to a production environment.
Numerous tools and IDE’s enable packaging of all software artifacts into a deployable executable.
There are three kinds of packaging based on Major releases and Minor releases depending on the
functionality being released. The mode of release is decided, or governed by the implementation
Experts.
- A Hot-Fix or Patch is used for a Minor release where the entire Implementation-base does not
have to change in the production environment. In an existing production environment, this is the
most frequent method of packaging a release. This kind of Package can be deployed without the need
for downtime in most cases.
- A Service Pack or Major Release is performed when several components and their integrating
counterparts have been changed and tested. This kind of Packaging will almost always require system
downtime and is usually communicated and performed through a scheduled outage.
- A Full Release is the act of replacing the entire implementation with data conversion
routines required at the Database layer in some cases. Like a Service Pack, this release definitely
requires System Downtime and is usually communicated and performed through a scheduled outage.
Regardless of the kind of release, the following components are a mandatory part of the packaging
process:
- Release Notes - A list of all fixes / features that are being implemented, outlined linearly
indicating how this release is different from its predecessors.
- Bill Of Materials (BOM) – A complete list of all artifacts whose source code has been
changed, the version number of that artifact in the Source Control database for the particular
release and notes that clearly defining the reason for the change.
- Rollback Plan – A clear listing of the Version Numbers of all artifacts in the source
control database to revert back to in the event of failure to restore the system to its last known
good configuration (LKGC) and the steps to be performed in order to reach that LKGC. This may very
often be the BOM pertaining to the Release that built the LKGC.
- Installation Plan – Documentation of the deployment process, as illustrated in the next
section along with detailed instructions defining both the sequence and method of invocation of all
scripts or steps required to deploy the changes into the pre-production (staging) area.
- Pass / Fail Criteria – Criteria to validate that the deployment was successful.