<?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="-EHSlFv7Gla5oCPGBiaZKow" name="agile_software_development,1.041091673844025E-305" guid="-EHSlFv7Gla5oCPGBiaZKow" changeDate="2006-11-30T03:02:13.357+0330" version="1.0.0">
  <mainDescription>&lt;a id=&quot;XE_agile_software_development__process_differentiators&quot; name=&quot;XE_agile_software_development__process_differentiators&quot;>&lt;/a> &#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Intro&quot; name=&quot;Intro&quot;>Introduction&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Extreme Programming is probably the best known and very likely the most used of what have come to be known as agile&#xD;
    software development methods. There are many software professionals working on agile methods today. There have been&#xD;
    several international conferences on agile methods, numerous papers, many websites, and quite a few books. We'll key&#xD;
    our discussion from the Agile Manifesto at &lt;a href=&quot;http://www.agilemanifesto.org&quot; target=&quot;_blank&quot;>www.agilemanifesto.org&lt;/a>.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have&#xD;
    come to value:&#xD;
&lt;/p>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Individuals&quot; name=&quot;Individuals&quot;>Individuals and Interactions Over Processes and Tools&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Processes and tools are very important. We wouldn't be writing this and you wouldn't be reading it were that not true.&#xD;
    The best processes and tools, we believe, are those that enable the individuals who are part of a software project to&#xD;
    do their job most effectively. To do that, the processes and tools need to facilitate the human interactions that bring&#xD;
    about understanding and cooperation. The agile methods use the smallest amount of process that's safe and the simplest&#xD;
    tools that are effective in aid of those individuals and interactions.&#xD;
&lt;/p>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Working&quot; name=&quot;Working&quot;>Working Software Over Comprehensive Documentation&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Documentation can be very important to a software project. Sometimes it's the only way to communicate ideas across&#xD;
    space and time. For an ongoing software project, however, there is a much better way to know what's going on and to&#xD;
    steer the project.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Observe the software. The software can be tested, used, and inspected, and all the answers you get are unambiguous. The&#xD;
    agile methods focus on keeping the software visible, beginning as early as possible. The best XP projects begin&#xD;
    producing tested visible software in the first couple of weeks of the project and never stop.&#xD;
&lt;/p>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Customer&quot; name=&quot;Customer&quot;>Customer Collaboration Over Contract Negotiation&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Many software projects require a contract, and all benefit from a clear understanding of what will be done. Attempts to&#xD;
    over-constrain the initial understanding, however, almost always backfire. Too often, the result can be a &quot;letter of&#xD;
    the law&quot; product that pleases neither the developers nor the users. Agile methods recognize that all stakeholders will&#xD;
    be learning over the course of the project. Agile projects are thus set up to facilitate learning and to take advantage&#xD;
    of it.&#xD;
&lt;/p>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Responding&quot; name=&quot;Responding&quot;>Responding to Change Over Following a Plan&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    Too many changes of direction can cause a project to go out of control, costing too much or never finishing. Initial&#xD;
    plans, however, cannot know which potential changes should be accommodated and which ignored. Agile methods address&#xD;
    this issue in two ways:&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    First, they respond to change by planning publicly and often. Small changes are dealt with in frequent in-team small&#xD;
    planning sessions, while the big picture is published and processed by all stakeholders, again very frequently.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Second, the development techniques in the agile methods generally allow stakeholders to substitute new and better ideas&#xD;
    for earlier notions without exorbitant increases in costs.&#xD;
&lt;/p>&#xD;
&lt;h2>&#xD;
    &lt;a id=&quot;Summary&quot; name=&quot;Summary&quot;>Summary&lt;/a>&#xD;
&lt;/h2>&#xD;
&lt;p>&#xD;
    As you study Extreme Programming and as you use it, it's important to keep these agile values in mind. As you tune and&#xD;
    adjust the process to your situation, working with the values will enable you to get the best results from the least&#xD;
    effort.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
