<?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>JavaPulse &#187; extreme programming</title>
	<atom:link href="http://javapulse.net/tag/extreme_programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://javapulse.net</link>
	<description>a finger on the pulse of the freelance Java&#0153; market in the Netherlands</description>
	<lastBuildDate>Sat, 19 Jun 2010 11:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XP-NL</title>
		<link>http://javapulse.net/2006/09/23/xp-nl/</link>
		<comments>http://javapulse.net/2006/09/23/xp-nl/#comments</comments>
		<pubDate>Sat, 23 Sep 2006 16:23:43 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[organizations]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=40</guid>
		<description><![CDATA[XP-NL is an organisation for people interested in eXtreme Programming in the Netherlands. The meetings are meant to introduce people to XP and for current XP practitioners to share their experience.
Most meetings so far are in Eindhoven, as mainly represented by the people from the Philips Research Lab. There is also a subgroup that meets [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xpnl.org">XP-NL</a> is an organisation for people interested in eXtreme Programming in the Netherlands. The meetings are meant to introduce people to XP and for current XP practitioners to share their experience.</p>
<p>Most meetings so far are in Eindhoven, as mainly represented by the people from the Philips Research Lab. There is also a subgroup that meets in Groningen, as organised by my ex-colleague, Kees Broenink. I have heard that they do occasionally plan meetings in Amsterdam. I&#8217;m going to see when that&#8217;s going to happen.</p>
<p>I talked about XP and the reasons for it <a href="http://javapulse.net/?p=12">here</a> and <a href="http://javapulse.net/?p=33">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/09/23/xp-nl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolutionary Design: why extreme programming is not extreme</title>
		<link>http://javapulse.net/2006/09/08/evolutionary-design-why-extreme-programming-is-not-extreme/</link>
		<comments>http://javapulse.net/2006/09/08/evolutionary-design-why-extreme-programming-is-not-extreme/#comments</comments>
		<pubDate>Fri, 08 Sep 2006 12:19:48 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=33</guid>
		<description><![CDATA[My thoughts after reading the article Is Design Dead? by Martin Fowler:
What is evolutionary design?
Design is part of the programming processes and as the program evolves the design changes.
Evolutionary design as promoted by extreme programming is a balance between adhoc (no design) programming and planned (one-off) design. It creates the balance by applying the term [...]]]></description>
			<content:encoded><![CDATA[<p>My thoughts after reading the article <a href="http://martinfowler.com/articles/designDead.html">Is Design Dead?</a> by Martin Fowler:</p>
<p><strong>What is evolutionary design?</strong></p>
<blockquote><p>Design is part of the programming processes and as the program evolves the design changes.</p></blockquote>
<p>Evolutionary design as promoted by extreme programming is a <em>balance</em> between adhoc (no design) programming and planned (one-off) design. It creates the balance by applying the term &#8220;iterative&#8221; to its fullest potential. The fact is that in software development, the design often evolves as programming is being done. In other words, the &#8220;best way of doing things&#8221; often evolves as the team learns on the project. There is no way to anticipate <em>all</em> the issues that can come up before you start programming. This is why planned design doesn&#8217;t work. If the design is done in a completely separate phase from the implementation, programmers are going to run into shortcomings in the design, and because most programmers are lazy ;), they will just code around it. This means that without the evolution of the design, <em>planned</em> design will dissolve into <em>no</em> design for all the issues that were found after the design was made. This is why the evolution of design should be acticipated and yes, planned.</p>
<p><strong>What enables evolutionary design?</strong><br />
To achieve this, a number of key concepts are used: refactoring, testing, continuous integration. The team must be able to refactor to keep things as simple as possible. Here, the goal is to keep the code as easy to work with as possible. Adding new features should be easy if the framework is the best it can be at that moment. If it is not, then someone should have the vision to refactor the design so it can accommodate the new feature. When refactoring large amounts of code, unit testing and continuous integration are of utmost importance. Refactoring is changing the underlying implementation without changing the functional aspects. Therefore, the unit tests should still work. Maybe they have to be adapted if the API has changed, but functionally, they should still work and the units being tested should still do what they used to do. As soon as unit tests pass, integrate. Continuous integration minimizes the need for merging. And a good test framework makes continuous integration possible. This way you know that what is being checked in doesn&#8217;t have stupid mistakes in it that breaks everything. As a result, the code base is as stable as it can be.</p>
<p><strong>Summary</strong><br />
Evolutionary design is about making the best decisions you can based on the knowledge you have at any given time. When design and code are allowed to change, you <em>incrementally</em> achieve the best result because you have a working system at every iteration. To me, this combats the chaos that can ensue when the programming phase reveals design flaws. In fact, extreme programming is not extreme at all. It only takes a wish to work in the most efficient way possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/09/08/evolutionary-design-why-extreme-programming-is-not-extreme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Martin Fowler</title>
		<link>http://javapulse.net/2006/09/06/martin-fowler/</link>
		<comments>http://javapulse.net/2006/09/06/martin-fowler/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 14:48:40 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[design patterns]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[uml]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=32</guid>
		<description><![CDATA[Martin Fowler writes insightful articles on various subjects of interest related to software development, such as XP and agile methods, refactoring, design patterns, and UML. He is also the author of a number of books on these subjects. I find that his articles on XP and agiles methods especially inspiring and are in concurrence with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://martinfowler.com/">Martin Fowler</a> writes insightful <a href="http://martinfowler.com/articles.html">articles</a> on various subjects of interest related to software development, such as XP and agile methods, refactoring, design patterns, and UML. He is also the author of a number of <a href="http://martinfowler.com/books.html">books</a> on these subjects. I find that his articles on XP and agiles methods especially inspiring and are in concurrence with my own opinions. It&#8217;s good that someone is speaking out about these things. By bring our awareness to subjects that are often resisted by those who don&#8217;t understand what benefits they bring, Martin Fowler gives us the tools to make our projects run smoother.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/09/06/martin-fowler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eXtreme Programming</title>
		<link>http://javapulse.net/2006/08/24/extreme-programming/</link>
		<comments>http://javapulse.net/2006/08/24/extreme-programming/#comments</comments>
		<pubDate>Thu, 24 Aug 2006 08:53:39 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[extreme programming]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=12</guid>
		<description><![CDATA[I&#8217;m a staunch supporter of eXtreme Programming because its focus on communication with customers as well as within the team is just plain common sense. Most projects fail not because of technical issues but because of bad planning and mismanagement.
Compared to other methodologies, XP is developer-centric and focuses only on the development phase of a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a staunch supporter of <a href="http://www.extremeprogramming.org/">eXtreme Programming</a> because its focus on communication with customers as well as within the team is just plain common sense. Most projects fail not because of technical issues but because of bad planning and mismanagement.</p>
<p>Compared to other methodologies, XP is developer-centric and focuses only on the development phase of a project. This makes it easily pluggable into other methodologies such as <a href="http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method">DSDM</a> and <a href="http://www.prince2.com/whatisp2.html">Prince 2</a>. This <a href="http://www.dsdm.org/news/article.asp?id=24">article</a> explains very well the complementary approaches of XP and DSDM. While XP focuses on programming and relies on the developers for the quality of the code, DSDM advises a clearer application of roles and responsibility. XP also fills in the detail for the development (production) phase within the Prince 2 process.</p>
<p>For me the most notable parts of XP are:</p>
<ul>
<li>daily short stand-up meetings</li>
<li>continuous participation of the customer</li>
<li>schedule short release cylces in an iterative process</li>
<li>frequent integration during coding</li>
<li>focus on testing to proof that the software works</li>
</ul>
<p>For developers, the hardest part to do is pair programming. The idea here is to raise the productivity of the team by showing the less experienced programmers how it is done. Pair programming during coding allows for constant review on the quality of the code, so bad code is less likely to get into the source base. Finally, how many times have you been searching for a bug for hours until a colleague comes around and spots it right away? In any case, I wouldn&#8217;t force pair programming on anyone, but why not give it a try one day a week. Good things just might happen as a result.</p>
<p>Here is another resource for XP:</p>
<ul>
<li><a href="http://www.xprogramming.com/">XProgramming.com</a></li>
</ul>
<p>In my opinion, <em>somebody</em> in every company needs to think about process methodologies, and not just think about it, but be capable and persistent enough to get it adopted and be aware of the need for occasional tweaking of the process when situations change. Because the development process is certainly always going to be a work in progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/08/24/extreme-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
