<?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" xmi:id="-pA6XLJKgRiwDTEp_qMlQ9g" name="xp_values,1.076140803519123E-306" guid="-pA6XLJKgRiwDTEp_qMlQ9g" changeDate="2005-12-06T14:18:47.737+0330">
  <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>
