blob: a55102c997c7215c65b257bcbd42277f21ddc4e1 [file] [log] [blame]
<?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.4/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.2.0" xmi:id="-35rZhRLEVuTVI4280ncN0A"
name="continuous_integration,3.193414568279561E-305" guid="-35rZhRLEVuTVI4280ncN0A"
changeDate="2006-11-08T19:55:42.002-0500" version="1.0.0">
<mainDescription>&lt;a id=&quot;XE_xp__continuous_integration&quot; name=&quot;XE_xp__continuous_integration&quot;>&lt;/a>&lt;a id=&quot;XE_continuous_integration__practice_of&quot; name=&quot;XE_continuous_integration__practice_of&quot;>&lt;/a>&lt;a id=&quot;XE_engineering_practices__continuous_integration&quot; name=&quot;XE_engineering_practices__continuous_integration&quot;>&lt;/a> &#xD;
&lt;h3>&#xD;
Description&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
One of the goals of XP is to ensure that the customer can feel and touch actual progress that reflects the investment&#xD;
to date. As the team builds the software incrementally according to the customer's priority, the new functionality is&#xD;
continuously integrated and demonstrated to the customer.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
Integration in XP can happen several times a day. As developers finish some work, they integrate what they have done.&#xD;
Typically, integration is done on an integration machine in order to serialize the process. Integration is supported by&#xD;
unit tests and acceptance tests. When a pair of programmers first sits at the integration machine, the current code&#xD;
base passes all tests. They start by integrating their changes into the code and checking for conflicts. Then, they run&#xD;
all tests. Should any test fail, the pair is responsible for fixing the code and making it pass. Since the tests were&#xD;
all passed before, the failures are in some way related to the modifications that have made to the code. Once all the&#xD;
tests have passed, the integration can be considered a success and another pair can now integrate its changes. The&#xD;
integrated build can then be handed over to the customer, who can see the new functionality on a running system.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
This practice obviously requires the use of tools and an environment that supports fast integration/build/test cycles.&#xD;
&lt;/p>&#xD;
&lt;h3>&#xD;
Benefits&#xD;
&lt;/h3>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
&lt;b>Simplified and faster integrations&lt;/b>: reduces important conflicts associated with big bang integration and&#xD;
insures that people are working with the latest version of the code.&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;b>Improved feedback&lt;/b>: shows constant and demonstrable progress (it takes a running system to pass the&#xD;
customer's acceptance tests).&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;b>System always shippable&lt;/b>: the latest version of the system passing all tests is always available.&#xD;
&lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>