<?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="-pA6XLJKgRiwDTEp_qMlQ9g"
    name="xp_values,1.076140803519123E-306" guid="-pA6XLJKgRiwDTEp_qMlQ9g" changeDate="2005-12-06T05:48:47.737-0500">
  <mainDescription>&lt;a id=&quot;XE_xp__core_values&quot; name=&quot;XE_xp__core_values&quot;>&lt;/a> &#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Communication&quot; name=&quot;Communication&quot;>Communication&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    XP emphasizes face-to-face communication over other types of communication, such as documents. XP values documents but&#xD;
    values personal communication even more. In order to facilitate communication, XP teams:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Use a common system metaphor or vocabulary.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Work closely with one another in an open workspace.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Continuously integrate the code.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Work closely with the business people, preferably having them in the same room.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Program in pairs.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Collectively own the code.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Frequently plan and report status to the customer.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Simplicity&quot; name=&quot;Simplicity&quot;>Simplicity&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    XP presumes that it is better to do the simple thing today and pay a little more tomorrow if more is really needed than&#xD;
    to do a more complicated thing today that may never be used. This is a fundamental philosophy that permeates everything&#xD;
    in an XP project. If something isn't needed today, we don't do it today.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    For example:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        We will write no document unless there is an immediate and significant need.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        We will adopt no tool unless there is a tangible and verifiable benefit.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        We will avoid writing infrastructure until it is needed by existing code.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    In order to maintain the simplicity of their software and their team structure, XP teams:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Ask themselves: What is the simplest thing that can possibly work?&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Continuously simplify and improve the design through refactoring.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    Some time ago, Kent Beck offered the following rules for simple design. In priority order, the code must:&#xD;
&lt;/p>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        Run all the tests.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Contain no duplicate code.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Express all the ideas the author wants to express.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Minimize classes and methods.&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Feedback&quot; name=&quot;Feedback&quot;>Feedback&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Feedback works at different scales in XP.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    At the highest level, the customer can see the progress of the team through the working software delivered every two&#xD;
    weeks. This continuous feedback allows the customer to steer the project to success. We get concrete feedback on the&#xD;
    state of the system in the form of executable pieces of functionality that pass repeatable, automated acceptance tests.&#xD;
    These tests prevent the system from backsliding. No new release of the system can fail acceptance tests that used to&#xD;
    work.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    At the programming level, programmers write unit tests for all the logic in the system to get immediate and concrete&#xD;
    feedback telling them if the code they just wrote is doing what they expected.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    XP teams:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Develop in small releases.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Develop in smaller iterations.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Break features and requirements into stories that fit in an iteration.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Break stories into even smaller tasks.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Write small unit tests to ensure that tasks work properly.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Write acceptance tests to ensure that stories work properly.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Track progress and communicate it to the customer frequently.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Courage&quot; name=&quot;Courage&quot;>Courage&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Perhaps a better name for this value is trust. In order to function, the members of an XP team have to have the courage&#xD;
    to trust each other, trust their customer, trust their practices, and trust themselves.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    XP team members trust that they can:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Stop when they are tired.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Let every business decision be made by the customer.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ask customers to reduce the scope of a release.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Ask their peers or customers for help.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Design and implement only what is needed for today and add tomorrow what will be needed tomorrow.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Make changes that improve the functions or structure of the code.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Fix the design and retrofit existing code when the design is shown to be inadequate.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Throw away code.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Change code they did not write.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Change the process when it is not working.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    &lt;br />&#xD;
    &lt;br />&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
