<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="-DKbcEDMwu7S4GWFkH-TTkg" name="how_to_adopt_production_release,_IADPYeB-EeC1y_NExchKwQ" guid="-DKbcEDMwu7S4GWFkH-TTkg" changeDate="2011-10-13T06:52:57.041-0700" version="7.2.0">
  <mainDescription>&lt;h3>&#xD;
    Getting started&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    The goal of the Production Release practice is to transform the business value developed in Feature Development&#xD;
    Sprint/Iterations into a finished product that can be released into production along with other products as part of a&#xD;
    coordinated Release.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    If a development team has never practiced Production Release before, the best way to think of this special type of&#xD;
    Sprint/Iteration is to consider a past project in which your team spent a week of 16-hour days doing all the things&#xD;
    necessary to prepare for a deployment based on an arbitrary release date. Then realize that you do not have to operate&#xD;
    like that any more, and that a Production Release Sprint/Iteration is your opportunity to calmly deal with all the&#xD;
    preparatory activities that accompany a well-managed, coordinated release while other development team members are doing the&#xD;
    same. In short, the Production Release practice represents the way you always wished you could prepare for a release&#xD;
    but did not have the opportunity.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    Common pitfalls&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Because production release provides a development team the opportunity to &quot;fine tune&quot; a product and tighten up&#xD;
    problematic areas of the code, it is good practice not to squander that Sprint/Iteration.&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>A Release Sprint/Iteration is not a time to rest:&lt;/strong> Some development team members think that when they get&#xD;
        to Production Release they can relax and not work too hard. However, when practicing the Agile value of Sustainable&#xD;
        Pace, teams should &lt;em>not need to&lt;/em> rest, and team members should maintain the tempo that they established&#xD;
        during previous Feature Development Sprint/Iterations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Testing is not more important than documentation and training:&lt;/strong> While the various types of testing&#xD;
        that are conducted in a Release Sprint/Iteration (integration, system, UAT) are important, documentation and&#xD;
        training are just as important because how well end users can actually use the product to do their work is critical&#xD;
        to a successful delivery.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Successful hardening is more important than squeezing in marginally tested features:&lt;/strong> Do not think&#xD;
        that more features delivered is necessarily better. While there is always a temptation to deliver more&#xD;
        functionality in a Release, resist that desire and deliver only features that are mature and have been well tested&#xD;
        and integrated.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
