blob: 30b0fcff733cc233ad025164e1cb3a0eb37385d4 [file] [log] [blame]
<?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="-EHSlFv7Gla5oCPGBiaZKow"
name="agile_software_development,1.041091673844025E-305" guid="-EHSlFv7Gla5oCPGBiaZKow"
changeDate="2006-11-29T18:32:13.357-0500" 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>