MSF for CMMI Process Improvement Visual Studio Team System logo
workstreams icon

Release a Product

Release Manager

Participating Roles

Responsible:

Release Manager

Tester

Test Manager

Product Manager

User Experience Architect

User Education Specialist

Accountable:

Release Manager

Consult:

Development Manager

Developer

Business Analyst

Sponsor

IPM Officer

Informed:

All

Overview

Entry Criteria

  • A firm commitment to a release including a tight (low variation) definition of scope, and a fixed delivery date.
  • Code builds ready for evaluation as release candidates.
  • System test results for each build as input to evaluation for release candidate.
  • The minimum set of criteria for acceptance of a release.
  • The set of customer and product requirements committed to in the delivery promise at the time of the user acceptance test readiness signal.

When:

  • A future release is signaled during iteration planning

Activities

1

Establish a User Acceptance Test Environment

  • Establish a user acceptance test environment.
  • In order to maintain schedules, it is necessary to have the facilities and equipment needed for user acceptance tests ready to use when the release candidate is selected. The test environment should be acquired and commissioned for use ahead of time.

2

Establish User Acceptance Test Procedures and Criteria

  • Establish a set of procedures for running a user acceptance test.
  • This would include procedures for developing test plans and test cases, procedures on running tests and reporting results, and procedures for accepting or rejecting a release candidate based on the reported results.

3

Select Release Candidate

  • Code is being built everyday. Each build is a potential release candidate. However, most builds will not be in a suitable state for user acceptance testing.
  • When the last acceptable date for starting user acceptance tests is close, evaluate builds against a set of acceptance criteria for user acceptance tests.
  • Several builds generated over a recent period may be evaluated together. Some will have different levels of functionality and varying levels of quality. Select the best candidate and promote it as the release candidate for user acceptance testing.

4

Create Rollout and Deployment Plan

  • Gather the requirements for rollout or deployment including training and education for sales staff, help desk associates, field service and maintenance engineers, operations engineers, and end user trainers. Create a plan for marketing collateral, marketing communications, product launch, and any trade shows or exhibitions associated with the product release.
  • Analyze the requirements and create a list of tasks.
  • Assign tasks to personnel.
  • Define a list of other resources including facilities, equipment, and budget.
  • Add rollout and deployment risks to the risk log and risk management activities.
  • Monitor and manage rollout and deployment issues through the day-to-day issue management activities.

5

User Acceptance Testing

  • Run user acceptance tests and report results.
  • User acceptance testing is used to validate the product delivers what the sponsor, business case, vision statement and ultimate consumer need and want from a product release.
  • User acceptance testing enforces the MSF principle that quality is defined by the customer. The purpose is not to validate that the release candidate conforms to the specification (customer requirements in the shape of scenarios and qualities of service) but to agree that the release candidate delivers what the market needs.
  • Any variation from defined specification should be recorded and used as feedback for future product definition and planning activities.

6

Analyze User Acceptance Test Results

  • Evaluate user acceptance test results against a set of acceptance criteria.
  • This should include the critical to quality (CTQ) factors defined during the Envision track at the beginning of the project lifecycle.
  • CTQs are sometimes called "overall goodness factors" (or OGFs).
  • Based on reaching a minimum bar against the CTQs, accept a product for release.
  • Otherwise reject it and request a new release candidate for another round of user acceptance tests.
  • Based on the business drivers, consider canceling or rescheduling the release if quality is not acceptable.
  • For example, the effectiveness of training for downstream personnel in sales, support, and maintenance, may atrophy. This may require a rescheduling of a release and another round of training. Because of the costs incurred by the business, it is always better to deliver acceptable quality the first time.

7

Accept Product for Release

  • Involve all stakeholders.
  • Schedule a product review and demonstration.
  • Present the working product along with the summarized release evaluation results.
  • Agree upon a consensus that the product is acceptable for release.
  • Obtain commitments from each stakeholder agreeing to the release.

8

Package Product

  • Package the product for distribution.
  • It is impossible to be prescriptive about packaging. The type of packaging will vary depending on the product and the domain. It may require a physical box or it may simply be a zip file for distribution electronically. You must decide what represents the right packaging for your product.
  • Release the product.

9

Execute Rollout Plan

  • Assign tasks in the rollout plan and authorize personnel to act upon them.
  • Monitor task resolution against the plan with Visual Studio Team System.
  • Maintain a record of variance against the plan for use as future feedback and subsequent release planning activities.

10

Create Release Notes

  • Document the functionality in the release. Provide guidance on installation. Provide details of any new functionality if this is an upgrade on an earlier release. Detail any bugs fixed and other quality improvements.

Exit Criteria

Change requests from exploratory testing and usability study feedback.

Problems found in user acceptance testing.

A signal that the packaged release is available.

The packaged product.

(C) 2005 Microsoft Corporation. All rights reserved.

MSF for CMMI Process Improvement: Build 050707