<?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="-uqrgrFY-74R1FijPLvcXoQ"
    name="whole_team,7.89591827591278E-306" guid="-uqrgrFY-74R1FijPLvcXoQ" changeDate="2006-11-08T18:36:31.999-0500"
    version="1.0.0">
  <mainDescription>&lt;h3>&#xD;
    Description&#xD;
&lt;/h3>&#xD;
&lt;p>&#xD;
    All the contributors to an XP project sit together, members of a whole team. The team shares the project goals and the&#xD;
    responsibility for achieving them. This team must include a business representative, the &quot;Customer&quot; who provides the&#xD;
    requirements, sets the priorities, and steers the project. It's best if the Customer or one of her aides is a real end&#xD;
    user who knows the domain and what is needed. The team will of course have programmers. The team may include testers,&#xD;
    who help the Customer define the customer acceptance tests. Analysts may serve as helpers to the Customer, helping to&#xD;
    define the requirements. There is commonly a coach, who helps the team keep on track and facilitates the process. There&#xD;
    may be a manager, providing resources, handling external communication and coordinating activities. None of these roles&#xD;
    is necessarily the exclusive property of just one individual. Everybody on an XP team contributes in any way that they&#xD;
    can. The best teams have no specialists, only general contributors with special skills.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Subservient in organization to the Whole Team are the teams that focus on the business decisions (&lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_customer_team.html&quot; guid=&quot;2.9889538140050517E-306&quot;>XP Customer Team&lt;/a>), the technical decisions (&lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_developer_team.html&quot; guid=&quot;8.608243854485154E-306&quot;>XP Developer Team&lt;/a>), and the organization that supports those teams (&lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_organization.html&quot; guid=&quot;5.613949040902463E-308&quot;>XP Organization&lt;/a>). To create a context for clear communication, XP provides a set of&#xD;
    guidelines defining the rights of the customer and developer. These guidelines are referred to as the &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/guidances/concepts/xp_rights.html&quot; guid=&quot;3.036332011267074E-306&quot;>customer and a developer bill of rights&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;div align=&quot;left&quot;>&#xD;
    &lt;table width=&quot;75%&quot; border=&quot;1&quot;>&#xD;
        &lt;tbody>&#xD;
            &lt;tr>&#xD;
                &lt;th width=&quot;30%&quot;>&#xD;
                    &lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_customer_team.html&quot; guid=&quot;2.9889538140050517E-306&quot;>XP Customer Team&lt;/a>&#xD;
                &lt;/th>&#xD;
                &lt;th width=&quot;34%&quot;>&#xD;
                    &lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_developer_team.html&quot; guid=&quot;8.608243854485154E-306&quot;>XP Developer Team&lt;/a>&#xD;
                &lt;/th>&#xD;
                &lt;th width=&quot;36%&quot;>&#xD;
                    &lt;a class=&quot;elementLink&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_organization.html&quot; guid=&quot;5.613949040902463E-308&quot;>XP Organization&lt;/a>&#xD;
                &lt;/th>&#xD;
            &lt;/tr>&#xD;
            &lt;tr>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/roles/xp_customer.html&quot; guid=&quot;{3C90DD4F-CFDB-4111-922D-3B840B8942DE}&quot;>Customer&lt;/a>&#xD;
                &lt;/td>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/roles/xp_programmer.html&quot; guid=&quot;{08A6AF28-69B1-42DC-A957-2E6CDCB436C1}&quot;>Programmer&lt;/a>&#xD;
                &lt;/td>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/roles/xp_tracker.html&quot; guid=&quot;{D8FE277E-4F9A-47EB-855F-C451D601BBAF}&quot;>Tracker&lt;/a>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/roles/xp_tester.html&quot; guid=&quot;{FB65D00B-8304-4CF7-9969-52CE82F503DC}&quot;>Tester&lt;/a>&#xD;
                &lt;/td>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &amp;nbsp;&#xD;
                &lt;/td>&#xD;
                &lt;td align=&quot;middle&quot;>&#xD;
                    &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/roles/xp_coach.html&quot; guid=&quot;{9C440605-FF0E-4D37-A774-BBF8B5F47AB6}&quot;>Coach&lt;/a>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/tbody>&#xD;
    &lt;/table>&lt;br />&#xD;
&lt;/div>&#xD;
&lt;h3>&#xD;
    Benefits&#xD;
&lt;/h3>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;b>Progress visibility&lt;/b>: customer gets real feedback on a daily basis.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;b>Agility&lt;/b>: customer can steer team on a daily basis.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;b>Reduces miscommunication&lt;/b>: contact is direct and face to face, single point of contact.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;b>Speeds up communication&lt;/b>: customer is always available to answer questions.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
