A key benefit of release management is being able to determine and schedule when a new IT service or enhancement will be implemented into the production environment. Being able to plan and schedule new functionality allows for better resource utilization, increased quality through planned testing, reduced financial cost, and greater implementation success. Another by-product of good release planning is the increase of customer satisfaction with the customer and end user.
There are two types of release schedules. The first is the enterprise release schedule, and the second is the release schedule of a specific service; both play a part in creating a successful release practice.
Enterprise release schedules are used to gain a holistic view of when all releases are scheduled within the enterprise. This type of release schedule is used primarily for the scheduling of development resources and financial planning. An enterprise release schedule should include, at minimum, a view of releases that are scheduled for the next twelve months, ideally, eighteen months to twenty-four months. Not only should an enterprise release schedule include releases by service, it should also include releases of cross-functional IT services used to support the business services and applications. An example of a release schedule would be: version 1.0 of a database is scheduled for May and an upgrade to that database to version 2.0 is scheduled for June of the following year. While this is important for the reasons previously stated, it can be more important for application teams to understand which versions of infrastructure or technology are being used since applications are typically built to use specific versions of technology products. If there is a change in version, the functionality of that technology product may change and the existing application functionality may not be able to work properly or may be disabled. Therefore, it is extremely important to understand when the underlying infrastructure of the enterprise is changing.
As illustrated in Figure 1, an enterprise release schedule can be as simple as a spreadsheet with products and dates or as complex as detailed release plans.
Release | Jan. | Feb. | Mar. | Apr. | May | June | July | Aug. | Sept. | Oct. | Nov. | Dec. |
---|---|---|---|---|---|---|---|---|---|---|---|---|
e-Mail | MGR | MR | MR | MR | MR | MR | ||||||
CRM | MR | MR | MR | MR | MR | MGR | ||||||
Receivables System | MGR | MR | MR | MR | MR | MR | MR | MR | ||||
Database Upgrade | MR | MR | MR | MR | MR | MR | ||||||
MGR - Major Release MR - Minor Release |
Figure 1: Enterprise release schedule.
Release schedules can play an important role in financial and strategic planning in terms of providing a roadmap showing when expenditures will be needed and providing the timing of capitalization of the assets being developed.
The second type of release schedule is related to the individual release of a specific service or application. While the common practice is to relate a release to a specific application or CI, consideration must be given to how that release will affect the specific service and related services. This type of release schedule can be called a service release schedule or a product release schedule. Typically, these types of release schedules contain both major and minor releases of the specific product or service. Major releases are typically scheduled once every twelve to eighteen months and involve significant planning and development. Minor releases can vary when they are scheduled from every thirty days to every six months; much of this is dependent on the stability of the service or product. A newly implemented service will typically require more frequent minor releases and as it becomes more stable, will require fewer minor releases.
When planning a service release schedule, several factors must be considered, including timing, resources, cost, funding, and business need. In some companies, system enhancements are implemented at the whim of the associated business unit or customer and are not scheduled. When this happens, the time to delivery may be quicker, however, typically the delivery cost is increased significantly and the quality is reduced due to inadequate planning and testing.
The release policy should include a couple of release schedule models to help the service owners understand the different time frames that could be used in developing their release schedules. Figure 2 provides some sample release schedule models.
Release Model | Program |
---|---|
Mature |
|
Standard |
|
Unstable or new |
|
Figure 2: Release schedule models.
An enterprise release schedule will be created when the individual service's schedules are rolled up into a holistic schedule for the enterprise. Both will be managed by release management; each at different levels. This is a very simplistic explanation of what a release schedule is, however, it gives the basic premise of understanding and helps to point out that there is no need to overcomplicate the creation.