blob: f77493f495a9ddc84880ae0f378f1d33f49e8378 [file] [log] [blame]
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Concept: XP Practices</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="element_type" content="concept">
<meta content="description" name="filetype">
<meta name="role" content="">
<link type="text/css" href="./../../../css/default.css" rel="StyleSheet">
<script src="./../../../scripts/contentpage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
backPath = './../../../';
</script>
</head>
<body onload="createSectionLinks('div', 'sectionHeading', './../../../images/');">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top"><a name="Top"></a>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="pageTitle">Concept: XP Practices</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" alt="" src="./../../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top"></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableCell"><a id="XE_xp__practices_of" name="XE_xp__practices_of"></a><a id="XE_practices_in__xp" name="XE_practices_in__xp"></a>
<p>
XP is a collection of guiding values and best practices. Most of these practices have been used in the industry in some
shape or form for a number of years. XP has simply identified them and tried to push the envelope of these practices in
order to get the most benefit from them. Taken individually, these practices are all fairly simple. But it is the sum
of all of them that provides the most benefit as they reinforce each other to address the most difficult problems teams
encounter when developing software.
</p>
<br />
<br />
<p>
<img height="540" alt="" src="./../../../xp/resources/circleOfLife.jpg" width="720" usemap="#xp_practices_image_map" border="0" /> <map id="xp_practices_image_map" name="xp_practices_image_map">
<area shape="RECT" coords="298,19,390,88" href="./../../../xp/guidances/concepts/whole_team,7.89591827591278E-306.html" />
<area shape="RECT" coords="176,135,282,200" href="./../../../xp/guidances/concepts/collective_ownership,9.300699588493279E-306.html" />
<area shape="RECT" coords="297,168,434,231" href="./../../../xp/guidances/concepts/test_driven_development,1.620567348185129E-306.html" />
<area shape="RECT" coords="447,135,547,198" href="./../../../xp/guidances/concepts/coding_standard,8.8116853923311E-307.html" />
<area shape="RECT" coords="15,236,122,305" href="./../../../xp/guidances/concepts/customer_tests,2.297945473205673E-305.html" />
<area shape="RECT" coords="218,238,362,307" href="./../../../xp/guidances/concepts/pair_programming,3.876855509996079E-307.html" />
<area shape="RECT" coords="392,241,512,305" href="./../../../xp/guidances/concepts/refactoring_xp_programming,1.4410217108363206E-306.html" />
<area shape="RECT" coords="614,236,714,302" href="./../../../xp/guidances/concepts/planning_game,2.7371805612676613E-305.html" />
<area shape="RECT" coords="143,325,270,393" href="./../../../xp/guidances/concepts/continuous_integration,3.193414568279561E-305.html" />
<area shape="RECT" coords="310,321,412,379" href="./../../../xp/guidances/concepts/simple_design,1.6109092258980447E-306.html" />
<area shape="RECT" coords="468,323,597,393" href="./../../../xp/guidances/concepts/xp_sustainable_pace,3.133529870649493E-306.html" />
<area shape="RECT" coords="307,386,413,436" href="./../../../xp/guidances/concepts/metaphor_system_of_names,4.884861766532753E-306.html" />
<area shape="RECT" coords="312,475,419,539" href="./../../../xp/guidances/concepts/small_releases,5.762953011420275E-306.html" />
<area shape="RECT" target="_blank" coords="561,494,708,538" href="http://www.xprogramming.com" />
</map>
</p>
<p>
This diagram arranges the core practices of Extreme Programming in a way that makes them easy to remember and that
exemplifies the steering and control cycles of the process.
</p>
<p>
The outer red circle is called the "Circle of Life". It's what keeps an XP project going, producing tested working
software. The <a class="elementLink" href="./../../../xp/guidances/concepts/whole_team,7.89591827591278E-306.html" guid="7.89591827591278E-306">Whole Team</a>, customer members and development members, work together--preferably
physically together--to build the project. Using the <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/planning_game,2.7371805612676613E-305.html" guid="2.7371805612676613E-305">Planning Game</a> elements of Release Planning and Iteration Planning, they plan a
series of <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/small_releases,5.762953011420275E-306.html" guid="5.762953011420275E-306">Small
Releases</a> of software that demonstrably pass all the <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/customer_tests,2.297945473205673E-305.html" guid="2.297945473205673E-305">Customer Tests</a>.
</p>
<p>
The innermost blue circle describes the day to day, moment to moment, work of the XP developers. Each feature is
addressed with <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/simple_design,1.6109092258980447E-306.html" guid="1.6109092258980447E-306">Simple Design</a>, ensuring that the design of the system is just right for the features
supported. The programmers work in <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/pair_programming,3.876855509996079E-307.html" guid="3.876855509996079E-307">pairs</a> for all production code development, providing continuous code review and
valuable, team-wide understanding of the system. They build the software using <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/test_driven_development,1.620567348185129E-306.html" guid="1.620567348185129E-306">Test-Driven Development,</a> a technique that produces well-crafted and well-tested
software with a minimum of wasted effort, and the design is kept clean by the continuous improvement process of <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/refactoring_xp_programming,1.4410217108363206E-306.html" guid="1.4410217108363206E-306">Refactoring</a>.
</p>
<p>
The middle green circle contains the important supporting practices of XP. The software is designed according to a
common, shared, evolving <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/metaphor_system_of_names,4.884861766532753E-306.html" guid="4.884861766532753E-306">Metaphor</a> that helps it all hang together. It is kept <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/continuous_integration,3.193414568279561E-305.html" guid="3.193414568279561E-305">continuously integrated</a> with many system builds every day, each one fully tested. The
team shares ownership of of all the code so that needed changes can be made by any qualified pair, not just by one
individual. Since everyone works on everything, the team evolves a <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/coding_standard,8.8116853923311E-307.html" guid="8.8116853923311E-307">standard
way of coding</a>. Finally, XP teams work at a <a class="elementLinkWithUserText" href="./../../../xp/guidances/concepts/xp_sustainable_pace,3.133529870649493E-306.html" guid="3.133529870649493E-306">sustainable pace</a> that enables them to deliver tested software on a predictable basis
from the first day of the project until the last.
</p>
<p>
<br />
&nbsp;
</p></td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>