<?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.5/uma.ecore"
    xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-aOaMjqW4RZWOiHT1_U1NNw"
    name="deploying_the_solution,_yYlQoC3xEdycYKq0PulnEQ" guid="-aOaMjqW4RZWOiHT1_U1NNw"
    changeDate="2007-07-23T13:14:50.468-0700">
  <mainDescription>&lt;h3>&#xD;
    Planning Transition Iterations&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Software may be deployed into a production environment at the end of any Construction or Transition iteration.&#xD;
    Deployment to production before the end of the project may be done to drive down risk by validating the application,&#xD;
    deployment scripts, the deployment environment, and to get valuable feedback from operations and systems teams, as well&#xD;
    as end user. These early deployments are often done on a limited scale in terms of target audience or deployment of&#xD;
    only partial applications. For the deployment to work, one or several iterations are focused on work necessary to&#xD;
    successfully release the system. In Transition, one or several iterations may be dedicated to preparing for a smooth&#xD;
    deployment. The number of iterations depends on the complexity of the system and various other factors, as listed&#xD;
    below. When planning for deployment, the work item list should be updated with relevant tasks related to:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Resolving defects&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Testing installation or deployment scripts to avoid surprises in actual deployment&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Updating any&amp;nbsp;operations&amp;nbsp;&amp;amp; support test environments used to simulate production problems&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Performing release-specific testing efforts such as pilot or beta testing to a subset of your end-user community&#xD;
        where the system is deployed&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Conducting acceptance reviews with stakeholders, including a&amp;nbsp;final release acceptance testing effort where&#xD;
        people outside of the team are involved and decide whether it truly meets their needs&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Finalizing relevant documentation, such as operations and system manuals, end-user documentation and release notes&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Creating&amp;nbsp;physical collateral, such as installation media&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Replacing and/or installing physical assets, including workstations, servers, and network components&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Replacing existing software with new versions&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Updating existing databases, including any relevant data migration and/or database schema changes&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Production data population&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Training end users and operations&amp;nbsp;and support staff&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Fixing any discrepancies discovered during the transition phase&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Setting up management and operational systems and processes&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Training the team that is taking over maintenance and evolution of the system&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Deploying the software to the production environment&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    See [&lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../openup/guidances/supportingmaterials/references.html#AMB07&quot;&#xD;
    guid=&quot;_9ToeIB83Edqsvps02rpOOg&quot;>AMB07&lt;/a>]&amp;nbsp; for more information.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
    &lt;span style=&quot;BACKGROUND-COLOR: rgb(255,255,255)&quot;>Reviewing Transition Iterations&lt;/span>&lt;br />&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    Transition iteration reviews have a different focus from other iterations in the project lifecycle. The goal is not to&#xD;
    brainstorm around what&amp;nbsp;features to develop next. Instead, reviews will assess the release management resources and&#xD;
    procedures, the quality of the software,&amp;nbsp;and how prepared users and operations teams are to face a move of the&#xD;
    software into the production environment.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
