blob: 58a8fd24a61aa4870637e6ac272dd808973956bb [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
xmlns:xmi="" xmlns:org.eclipse.epf.uma=""
xmlns:epf="" epf:version="1.2.0" xmi:id="-nO38_JQ9G3FQvNlAT5Agqg"
name="what_is_xp,9.251272550276345E-306" guid="-nO38_JQ9G3FQvNlAT5Agqg" changeDate="2006-11-08T18:33:57.947-0500"
<mainDescription>&lt;a id=&quot;XE_xp__what_is_it&quot; name=&quot;XE_xp__what_is_it&quot;>&lt;/a>&lt;a id=&quot;XE_what_is__xp&quot; name=&quot;XE_what_is__xp&quot;>&lt;/a> &#xD;
Kent Beck, author of &lt;i>Extreme Programming Explained&lt;/i> [&lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/guidances/supportingmaterials/xp_and_agile_process_references.html#BEC00&quot; guid=&quot;6.191633934532389E-306&quot;>BEC00&lt;/a>], says, &quot;XP is a light-weight methodology for small-to-medium-sized teams&#xD;
developing software in the face of vague or rapidly changing requirements.&quot; Simply stated, XP is a set of &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/guidances/concepts/xp_values.html&quot; guid=&quot;1.076140803519123E-306&quot;>values&lt;/a>, &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/guidances/concepts/xp_rights.html&quot; guid=&quot;3.036332011267074E-306&quot;>rights,&lt;/a>&#xD;
and best &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../xp/customcategories/xp_best_practices.html&quot; guid=&quot;4.315031901943112E-306&quot;>practices&lt;/a> that support each other in incrementally developing software.&#xD;
When a team is developing software with XP, the customer creates stories that describe the functionality of the&#xD;
software. These stories are very lightweight use-cases. They are small units of functionality that require less than&#xD;
one or two weeks to implement. Programmers estimate the stories, and, based upon those estimates, the customer decides&#xD;
which stories to do first.&#xD;
Development is done iteratively and incrementally. Every two weeks, the programming team delivers working stories to&#xD;
the customer. Then the customer chooses another two weeks worth of work. The system grows in functionality, piece by&#xD;
piece, steered by the customer. Progress is measured and tracked based on the observable behavior of the team.&#xD;
XP relies on evolutionary design and testing techniques that maintain a high quality design while new functionality is&#xD;
being added. These techniques avoid the mess of unmaintainable code through continuous review, an emphasis on&#xD;
simplicity, and the backstop of nearly universal test coverage.&#xD;
Programmers work on their programming tasks in pairs. The pair share a single workstation and work together to write a&#xD;
single piece of code. Both partners are equally engaged in the writing. The keyboard moves back and forth between them&#xD;
XP programmers practice Test-Driven Development. In short, they write unit tests prior to writing production code.&#xD;
However, this is done in very tiny increments. Tiny portions of a test are written first, and then just enough&#xD;
production code is written to make those portions pass. This continues iteratively until everything that can be&#xD;
practically tested has been tested.&#xD;
XP focuses on continuous delivery of tested, running software from the first day of the project to the last. Delivery&#xD;
of real software, combined with simple but frequent planning, provides stakeholders with a clear view of what is done&#xD;
and what will be done. This enables the business to steer the project to an on-time shipment of the best possible&#xD;
software that can be completed in the time available.&#xD;