Last updated: April 28, 2006

Making a Product Release

Several times during the semester you will be required to deliver a version of your product to the customer.  Each of these deliveries is called a “release.”  A typical project will provide three partial capability releases, a beta release, and a final release.  Your customer may request additional releases or you may decide that it is more convenient to deliver in finer granularity. 

You and your customer work together to determine and prioritize the product feature, but the customer has the final say regarding the relative priority of features.  On the other hand, you must figure out which features you can complete and how best to deliver those features over the course of the semester through the series of product releases.

Partial capability releases are produce at predetermined points during the semester.  Each one provides your customer with the product capabilities (features) that you have developed up to that time.  This gives you the opportunity to get early feedback from your customer about the direction you’re taking.  This will help minimize the likelihood of a major surprise when you make your final product delivery.  In addition to delivery of new features, releases also deliver defect fixes, and documentation.  The first release you make may be intended to prove out a basic product concept or to help the customer flush out requirements details.  All releases, even ones delivering partial capabilities, must be thoroughly tested and evaluated before delivery.  Although you test extensively, you probably won’t be able to find all the defects in your code.  So a release has the unfortunate side effect of delivering some defects as well.  What you want to make sure is that you don’t waste your customer’s time dealing with defects that you should have found with your systematic testing.

The beta release contains all agreed to functionality.  It is provided to the customer so that he/she can do additional testing in the final environment.  Normally, the beta testing activity will identify a few more defects many of which are the results of unanticipated usage and differences between the development environment and the customer’s environment.

The final release contains the functionality provided at beta release plus defect fixes for all defects that the team and the customer have agreed require fixing.  Some defects may be considered to be of low value or too high a risk to be fixed and are therefore present in the final product..

The important points to remember about a release are: