<?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="-zCM2ucJJxc_bQr_LoHlSaQ"
    name="promoting_changes,_SM4YIL6dEdqti4GwqTkbsQ" guid="-zCM2ucJJxc_bQr_LoHlSaQ"
    changeDate="2007-06-14T07:46:11.002-0700" version="1.0.0">
  <mainDescription>&lt;p>&#xD;
    During iterative software development, the team&amp;nbsp;creates numerous &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/guidances/concepts/change_set_430BF233.html&quot; guid=&quot;_1QU9MAIoEdyLh7vsrHZ4YA&quot;>Change Set&lt;/a>s that&#xD;
    are combined into a &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/workproducts/build_95D7D8FD.html&quot; guid=&quot;_0YuXEMlgEdmt3adZL5Dmdw&quot;>Build&lt;/a>. A build is initiated by combining the work completed by one or more&#xD;
    developers and resolving any conflicts between those changes. Ideally a build is then subjected to a battery of tests&#xD;
    to determine if it is of sufficient quality to move into production.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    As the changes progress from development towards production, its beneficial to know two characteristics:&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    &lt;strong>Test Context&lt;/strong>&amp;nbsp;– identifying the elements and their versions that are tested together&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        What changes are in this build (completed work items)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        What&amp;nbsp;changes are&amp;nbsp;partially in this build (work items that are partially complete)&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        What changes are&amp;nbsp;not in this build (work items that are not reflected at all in this build)&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    &lt;strong>Verification Level&lt;/strong> – identifying what amount of testing is complete.&amp;nbsp; For example,&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Unit Tested&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Integration Tested&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        System Tested&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    The promotion lifecycle coordinates and synchronizes the efforts of the development team. This lifecycle consists of&#xD;
    the following steps:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Changes are introduced into the system in the form of completed&amp;nbsp;&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/guidances/concepts/change_set_430BF233.html&quot; guid=&quot;_1QU9MAIoEdyLh7vsrHZ4YA&quot;>Change Set&lt;/a>s&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        A build is generated clearly identifying the&amp;nbsp;changes included in the build&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Testing is conducted&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        When testing is successful the changes are marked with the appropriate&amp;nbsp;verification level through labeling,&#xD;
        baselining or other related techniques.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Ultimately all required testing is complete and a new system&amp;nbsp;increment is ready.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Separate&amp;nbsp;&lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/guidances/concepts/workspace_722BBA90.html&quot; guid=&quot;_0cEmAMlgEdmt3adZL5Dmdw&quot;>Workspace&lt;/a>s are often used as the context for each level of testing. As changes are&#xD;
    added to the &lt;a class=&quot;elementLink&quot; href=&quot;./../../../openup/guidances/concepts/workspace_722BBA90.html&quot; guid=&quot;_0cEmAMlgEdmt3adZL5Dmdw&quot;>Workspace&lt;/a>, it is verified for consistency and tested. This ensures that the effort&#xD;
    of testing a build is applied to the correct&amp;nbsp;set of changes, makes the context for the tests stable,&amp;nbsp;and also&#xD;
    allows developers to continue working on the next build while the tests are being conducted.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    A change promotion lifecycle such as this offers three key benefits&#xD;
&lt;/p>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        Reduces effort because there is no reason to execute the tests in the next stages until the&amp;nbsp;changes passes the&#xD;
        previous stage. For example you would not commit the resources to&amp;nbsp;system testing a build until it&#xD;
        passes&amp;nbsp;developer tests.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Helps to ensure that a change&amp;nbsp;which is moved into production has been subjected to the appropriate level of&#xD;
        testing first.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Simplifies debugging since developers can base their work on a proven&amp;nbsp;set of changes&amp;nbsp;in relative&#xD;
        isolation from destabilizing changes from other developers&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;p>&#xD;
    For an example of this approach see &lt;a href=&quot;http://www.agiledata.org/essays/sandboxes.html&quot; target=&quot;_blank&quot;>Development Sandboxes: An Agile &quot;Best&quot; Practice.&lt;/a>&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
