Planning the Release

Planning the release means answering some basic questions about its scope. Is it an entirely new release? Or does it use a previously defined plan? Perhaps it's a minor release—such as a patch—that requires almost no changes to an existing release? The answers to these questions will determine your path to production, and whether you can reuse an existing release, and if so, to what degree.

Tip

Ensure the inputs to the release train come from synchronized and open team-based planning. The goal is to define a set of clearly articulated deliverables and interdependencies.

The path to production refers to a succession of phases culminating in the final phase—production. At its simplest, a phase represents one or more environments and quality requirements. A phase can have additional items as well, such as quality statuses and gates.

The progression of phases is defined by a lifecycle model. When you create a release, the phases available to it are defined in the lifecycle model selected for the release. If a phase you need is not defined in a lifecycle, you can modify the model or create an entirely new one. UrbanCode Release provides a default lifecycle that you can modify as you see fit.

The following figure illustrates two releases—October, and November—that use the same lifecycle model. The phases defined in the model are listed across the top. Environments are allocated to releases and each phase is assigned one, which is shown in the illustration. The October Release, for example, uses the DEV-1 environment during the DEV phase, while the November Release uses DEV-2 for the that phase. The gates between phases are defined in the model.

Figure 1. Release Phases

Release Phases

It should be clear from the graphic that a lifecycle can be used for any number of releases. By varying the environments and applications (note that the lineup of applications differs between releases) you can craft releases for nearly any eventuality from the same lifecycle. And if a lifecycle is unsuitable for a particular release—either too many phases or not enough, for instance—you can create a new lifecycle model at any time.