Practice: Production Release |  |
This practice describes how to prepare and execute the release of a product (or subset thereof) into the production environment.
Relationships
Content References | How to Adopt the Production Release Practice Release Iteration Work Products Backout Plan Deployment Plan Infrastructure Release Communications Release Controls Release Tasks Review and Conform to Release Controls Install and Validate Infrastructure Plan Deployment Develop Backout Plan Develop Release Communications Package the Release Execute Deployment Plan Verify Successful Deployment Execute Backout Plan (if necessary) Deliver Release Communications Deployment Plan
Purpose
Releasing a finished or emerging product into production is no trivial matter. Sometimes, business operations are interrupted or shut down because a release has somehow corrupted the production environment. Because the release activity can have such a dramatic impact on the business, the purpose of the Production Release practice is to ensure that the application developed is properly prepared to be released into production without any unintended consequences.
Main Description
Mike Cohn, noted author on Scrum, states: ..."Some large or complex projects will require the use of "release Sprint/Iteration" or "hardening Sprint/Iteration" at the end of a release cycle (say 6 two-week Sprint/Iterations then a 2-week release Sprint/Iteration). The release Sprint/Iteration is not a dumping ground for sloppy work; rather it is a place where some hardening of the system can occur." There are two components of the Production Release practice: 1) Release Preparation, and 2) Deployment. Release preparation establishes a release baseline and produces all the necessary supporting material necessary to deploy (and back out, if necessary) the release. Deployment involves the act of delivering the release into the production environment, verifying that the integration of the release package into the existing environment was successful, and notifying all relevant Stakeholders that the features of the release are available for use. Unfortunately, there is little guidance available today regarding the practice of releasing to production. Although there is wealth of information documented in the Information Technology Infrastructure Library (ITIL) set of process books on this topic, those reference materials are used primarily by members of Production Support and IT Operations organizations and not application development groups. This practice is designed to fill some of the void in this area for product development teams.
How to read this practice
The best way to read this practice is to become familiar with its overall structure, what is in it, and how it is organized. Start with the tasks for preparing the release for production, then review the work products that result from those tasks. Next, review the tasks of the deployment activity. Although these tasks sound straightforward, there is much skill and effort that goes into them. That is why a seasoned Deployment Engineer should execute these tasks.
Additional Information
For additional information about Production Release, see: Dean Leffingwell. Agile Software Requirements: Lean Requirements Practices for Team, Programs, and the Enterprise. Addison Wesley, 2011. Introduces the "Big Picture" of Scaled Agile and describes various aspects of that model, some in more detail than are covered in this method. Overall, a refinement of his previous works with the addition of Lean IT practices adopted from Lean Manufacturing. Dean Leffingwell. Scaling Software Agility: Best Practices for Large Enterprises. Addison Wesley, 2007. The first major work on scaling Agile that was based on key implementation experiences at several international companies.
This program and the accompanying materials are made available under the Eclipse Public License V1.0, which accompanies this distribution. EPF Copyright.