<?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.3/uma.ecore" epf:version="1.0.0" xmi:id="-PCk5_o83KYiPZaKUzt021A" name="getting_started_with_xp,1.2284921351651456E-304" guid="-PCk5_o83KYiPZaKUzt021A" changeDate="2006-11-08T15:14:04.387-0800" version="1.0.0">
  <mainDescription>&lt;a id=&quot;XE_xp__getting started_with&quot; name=&quot;XE_xp__getting started_with&quot;&gt;&lt;/a&gt;&lt;a id=&quot;XE_getting started__with_xp&quot;
name=&quot;XE_getting started__with_xp&quot;&gt;&lt;/a&gt; 
&lt;h3&gt;
    Topics
&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;
        &lt;a href=&quot;#WhatisXP&quot;&gt;What is XP?&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;a href=&quot;#Start&quot;&gt;Where do I start?&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;a href=&quot;#Providing&quot;&gt;Providing Feedback&lt;/a&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
    &lt;a id=&quot;WhatisXP&quot; name=&quot;WhatisXP&quot;&gt;What is XP?&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    Extreme Programming or XP is a development process that can be used by small to medium sized teams to develop high
    quality software within a predictable schedule and budget and with a minimum of overhead. XP is currently one of the
    most widely used agile processes in the industry.
&lt;/p&gt;
&lt;h3&gt;
    &lt;a id=&quot;Start&quot; name=&quot;Start&quot;&gt;Where do I start?&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    If you are unfamiliar with XP and want to learn more about it, we suggest you take the following steps:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        Get a quick &lt;a class=&quot;elementLinkWithUserText&quot;
        href=&quot;./../../../xp/guidances/concepts/what_is_xp,9.251272550276345E-306.html&quot;
        guid=&quot;9.251272550276345E-306&quot;&gt;overview of XP&lt;/a&gt;.
    &lt;/li&gt;
    &lt;li&gt;
        Learn what the &lt;a class=&quot;elementLinkWithUserText&quot;
        href=&quot;./../../../xp/guidances/concepts/motivation,1.6390805262958034E-306.html&quot;
        guid=&quot;1.6390805262958034E-306&quot;&gt;motivation behind XP&lt;/a&gt; is.
    &lt;/li&gt;
    &lt;li&gt;
        Understand what &lt;a class=&quot;elementLink&quot;
        href=&quot;./../../../xp/guidances/concepts/agile_software_development,1.041091673844025E-305.html&quot;
        guid=&quot;1.041091673844025E-305&quot;&gt;Agile Software Development&lt;/a&gt; means.
    &lt;/li&gt;
    &lt;li&gt;
        Take a tour of the &lt;a class=&quot;elementLink&quot;
        href=&quot;./../../../xp/guidances/concepts/xp_values,1.076140803519123E-306.html&quot; guid=&quot;1.076140803519123E-306&quot;&gt;XP
        Values&lt;/a&gt; and &lt;a class=&quot;elementLink&quot;
        href=&quot;./../../../xp/guidances/concepts/xp_practices,2.2937799026801584E-305.html&quot; guid=&quot;2.2937799026801584E-305&quot;&gt;XP
        Practices&lt;/a&gt;.
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
    &lt;a id=&quot;Providing&quot; name=&quot;Providing&quot;&gt;Providing Feedback&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
    As this is the first version of the XP plug-in, we are looking to the community for advice on how to make&amp;nbsp;it
    better. You can help us do this by sending us your suggestions, comments, or questions to the discussions lists (see &lt;a
    href=&quot;http://www.eclipse.org/epf&quot;&gt;www.eclipse.org/epf&lt;/a&gt; for more information).
&lt;/p&gt;</mainDescription>
</org.eclipse.epf.uma:ContentDescription>
