<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ThotSpots &#187; XP</title>
	<atom:link href="http://www.thotspots.com/tag/xp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thotspots.com</link>
	<description>Agile Software Development</description>
	<lastBuildDate>Wed, 09 Sep 2009 18:13:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What is Extreme Programming (XP)?</title>
		<link>http://www.thotspots.com/what-is-extreme-programming-xp/</link>
		<comments>http://www.thotspots.com/what-is-extreme-programming-xp/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 01:47:43 +0000</pubDate>
		<dc:creator>Craig Jones</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile development]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[design principles]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.maximsc.com/what-is-extreme-programming-xp/</guid>
		<description><![CDATA[The other day, I was asked for the &#8220;elevator pitch&#8221; on XP, so I dug out this description from an old posting on another of my sites.
It&#8217;s taking best practices to the extreme&#8230;

Long iterations become short iterations with early experience
Long, irregular meetings become frequent stand up meetings
Back-end testing becomes unit testing
Specification artifacts become stories and [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I was asked for the &#8220;elevator pitch&#8221; on XP, so I dug out this description from an old posting on another of my sites.</p>
<h3>It&#8217;s taking best practices to the extreme&#8230;</h3>
<ul>
<li>Long iterations become short iterations with early experience</li>
<li>Long, irregular meetings become frequent stand up meetings</li>
<li>Back-end testing becomes unit testing</li>
<li>Specification artifacts become stories and a full-time customer (proxy)</li>
<li>Enforced deadlines become developer-derived estimates</li>
<li>Code reviews become pair programming</li>
</ul>
<p><span id="more-42"></span></p>
<h3>The XP Values</h3>
<ul>
<li>Communication</li>
<li>Feedback</li>
<li>Simplicity</li>
<li>Courage</li>
</ul>
<h3>The Tenets of Extreme Programming &amp; Refactoring</h3>
<ul>
<li>Establish a guiding vision, or &#8220;metaphor,&#8221; and then design as you go, with no big, up-front design.</li>
<li>Do the simplest thing that works, at first, and then refactor as needed.</li>
<li>No &#8220;Spec Gen&#8221; (speculative generality). Rely on refactoring to add features only as they actually become required.</li>
<li>No speculative performance tuning.  Rely on refactoring to introduce performance tuning later.</li>
<li>Code in small iterations and fast release cycles.</li>
<li>Put unit and functional testing at the core of the project goal posts, not as an optional add-on.  In fact, write the tests before you write the code to be tested.  You cannot rely on refactoring without a complete baseline of unit tests.</li>
<li>Do not refactor and add functionality at the same time.  Alternate between them.</li>
<li>Coding standards should have buy-in by all team members and call for the least amount of work possible.</li>
<li>Work directly with an on-site customer and/or user and make them a part of the programming team.</li>
<li>The customer determines the priorities, not the developers.</li>
<li>Developers provide the estimates, not the customer.</li>
<li>&#8220;Spikes&#8221; are written when preliminary research is required to provide a confident estimate.</li>
<li>The entire development team has collective ownership of the entire project.  It is not portioned-out code to individual experts.</li>
<li>Program in pairs to assure quality and stay on track.</li>
<li>Use stand-up meetings to stay on track.</li>
<li>Stick to a 40-hour workweek, sleep well and lead a balanced, healthy lifestyle.</li>
</ul>
<h3>Getting Started</h3>
<ol>
<li>Kent Beck&#8217;s &#8220;Extreme Programming Explained&#8221; (second edition) is the seminal work in the field.  It&#8217;s an easy read and it paints a good overall picture.</li>
<li>Martin Fowler&#8217;s &#8220;Refactoring: Improving the Design of Existing Code&#8221; is a must-read.  The first 100 pages describes refactoring (and a bit about test-driven development).  The remaining pages are a catalog of refactorings &#8212; essentially a cookbook of step-by-step recipes.</li>
<li>Robert Martin&#8217;s &#8220;Agile Software Development&#8221; has also been recommended as a good starting point, though it&#8217;s not primarily about XP.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.thotspots.com/what-is-extreme-programming-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
