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