<?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>Eric Lefevre-Ardant on Java &#38; Agile &#187; agile</title>
	<atom:link href="http://ericlefevre.net/wordpress/category/process/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericlefevre.net/wordpress</link>
	<description>Eric's Elegant Elucidations</description>
	<lastBuildDate>Fri, 30 Jul 2010 14:45:02 +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>Bob Martin on TDD in Clojure</title>
		<link>http://ericlefevre.net/wordpress/2010/06/04/bob-martin-on-tdd-in-clojure/</link>
		<comments>http://ericlefevre.net/wordpress/2010/06/04/bob-martin-on-tdd-in-clojure/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:54:23 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=821</guid>
		<description><![CDATA[Robert &#8220;Uncle Bob&#8221; Martin has just blogged on the differences in TDD styles using Clojure, as compared to more traditional languages such as Java. Though I am a Clojure-newbie, I mostly disagree with his conclusions.
His main point is that, because Clojure is a functional language, functions have no side-effects and therefore can be used directly [...]]]></description>
			<content:encoded><![CDATA[<p>Robert &#8220;Uncle Bob&#8221; Martin has just blogged on <a href="http://blog.objectmentor.com/articles/2010/06/03/tdd-in-clojure">the differences in TDD styles using Clojure</a>, as compared to more traditional languages such as Java. Though I am a Clojure-newbie, I mostly disagree with his conclusions.</p>
<p>His main point is that, because Clojure is a functional language, functions have no side-effects and therefore can be used directly in the tests.</p>
<p>For example, the production code</p>
<pre>(defn update-all [os]
  (update os))</pre>
<p>would be tested with something like</p>
<pre>(testing "update-all"
  (let [
    o1 (make-object ...)
    o2 (make-object ...)
    os [o1 o2]
    us (update-all os)
    ]
    (is (= (nth us 0) (update o1)))
    (is (= (nth us 1) (update o2)))
    )
  )</pre>
<h2>There is no reason to believe that the (update) function is side-effect-free</h2>
<p>Changing internal values is only one way of creating side-effect. I admit that Clojure encourages coders to write code that does not change variables (if I got it right, it is definitely possible to do so, but with some additional work). However, that effect only stops at the boundaries of the language. At some point, it might access the file system or a database. Clearly, the state might change there.</p>
<h2>Correct implementation of the (update-all) function depends on the correct implementation of (update)</h2>
<p>Bob Martin says: &#8221;this test simply checks that the appropriate three functions are getting called on each element of the list&#8221;.<br />
Suppose that the (update) function does not do anything or maybe does something that does not return a value, such as printing out to the console. Then, calling it will have the same effect as not calling it at all. The test above will pass even if the (update-all) function does not provide any implementation at all. When, later, the bug is found, it will be harder to fix.</p>
<h2>The test could be clearer (with a more powerful test framework)</h2>
<p>One of my biggest concerns is that the test looks a lot like the code itself. Looks like duplication of information to the reader.<br />
If there was a mock framework for Clojure, I would expect to see something like</p>
<pre>(testing "update-all"
  (let [
    pre-conditions (
      (should-return (update 1) 1.5)
      (should-return (update 3) 3.0) )
    o1 (make-object 1)
    o2 (make-object 3)
    os [o1 o2]
    us (update-all os)
    ]
    (is (= (nth us 0) (1.5)
    (is (= (nth us 1) (3.0)
    )
  )</pre>
<h2>Bob Martin is right to conclude that &#8220;Clojure without TDD is just as much a nightmare as Java or Ruby without TDD.&#8221;</h2>
<p>But he should also make it clearer that it is lacking a mock framework (he does point to Brian Marick&#8217;s work on this).</p>
<p>It should be noted that it is possible to get a similar implementation style in Java as in Clojure, though it is significant work. In fact, that&#8217;s often how we use it here at <a href="http://www.algodeal.com/">Algodeal</a>. That means mostly relying on <a href="http://en.wikipedia.org/wiki/Immutable_object">immutable objects</a> and state-less methods. Immutable collections from <a href="http://code.google.com/p/google-collections/">Google Collections</a> help a lot, too. Still, we like to use mocks in our tests (too much for some, probably).</p>
<p>In the end, Uncle Bob&#8217;s post is another aspect of the (almost) age-old debate described by Martin Fowler: <a href="http://martinfowler.com/articles/mocksArentStubs.html">classicists vs. mockists</a>. If you haven&#8217;t already, read Fowler&#8217;s article, it&#8217;s worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2010/06/04/bob-martin-on-tdd-in-clojure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interviewed by François Beauregard</title>
		<link>http://ericlefevre.net/wordpress/2009/09/10/interviewed-by-francois-beauregard/</link>
		<comments>http://ericlefevre.net/wordpress/2009/09/10/interviewed-by-francois-beauregard/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 21:55:45 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[agile2009]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=733</guid>
		<description><![CDATA[François Beauregard from Pyxis Technologies interviewed me during Agile 2009 for their Vox Agile podcast. The interview is now online.
  
We chatted about a favorite topic of mine: how to expand the horizons for Agile. My point is mostly that the Agile crowd is mostly talking about basic issues in software development, including during [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pyxis-tech.com/blog/author/fbeauregard/">François Beauregard</a> from <a href="http://www.pyxis-tech.com/">Pyxis Technologies</a> interviewed me during <a href="http://agile2009.agilealliance.org/">Agile 2009</a> for their <a href="http://bit.ly/Wo7qS">Vox Agile podcast</a>. The interview is now <a href="http://bit.ly/1TVzjI">online</a>.</p>
<p style="text-align: center;"><a title=" Toy sampling megaphone  by mikael altemark" href="http://www.flickr.com/photos/24844537@N00/337248947"> <img class="aligncenter" src="http://farm1.static.flickr.com/133/337248947_f1eadc7cc0.jpg" alt="Toy sampling megaphone" width="300" height="247" /> </a></p>
<p>We chatted about a favorite topic of mine: how to expand the horizons for Agile. My point is mostly that the Agile crowd is mostly talking about basic issues in software development, including during the Agile 2009 conference. I fear that this my give the wrong impression to beginners (&#8221;how, so we only need to do this and that, and we&#8217;re agile? Cool!&#8221;) and even to seasoned practitioners (&#8221;this Agile thing is not addressing my needs anymore&#8221;).<br />
I would much prefer that we talk more about complex problems, whether they relate directly to Agile or not. This can include technical discussions or more touchy-feely ones. As long as we are addressing difficult problems, we will be making progress.</p>
<p>I also want to see more cross-domains talks. Obvious domains are the heavy industry (I won&#8217;t need to remind how influential Toyota has been to the IT industry) or performing arts. But that could also include things such as <a href="http://en.wikipedia.org/wiki/Behavioral_economics">Behavioral Economics</a>.</p>
<p>Or not. I don&#8217;t know for sure. However, I do know that we should be taking more risks. And stop presenting Introductions to Retrospectives for the upteenth time.</p>
<p>At the end of the talk, I mention 2 things for further reading. Here they are, plus a bonus book that I&#8217;ve just read:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0321413091?ie=UTF8&amp;tag=ericlefevre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321413091">Implementation Patterns</a>, by Kent Beck</li>
<li><a href="http://www.randsinrepose.com/">Rands In Repose</a>, a blog on technological culture and managerial aspect of life in an IT firm; posts are not frequent, but very interesting (and long)</li>
<li>bonus track: <a href="http://www.amazon.com/gp/product/0812977874?ie=UTF8&amp;tag=ericlefevre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0812977874">The Logic of Life</a>, a book by Tim Harford; this is very much in the style of <a href="http://www.amazon.com/gp/product/0345494016?ie=UTF8&amp;tag=ericlefevre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0345494016">The Undercover Economist</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ericlefevre-20&amp;l=as2&amp;o=1&amp;a=0345494016" border="0" alt="" width="1" height="1" /> (his previous books, which I enjoyed a lot) and <a href="http://www.amazon.com/gp/product/0060731338?ie=UTF8&amp;tag=ericlefevre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0060731338">Freakonomics</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ericlefevre-20&amp;l=as2&amp;o=1&amp;a=0060731338" border="0" alt="" width="1" height="1" /> (ditto)</li>
</ul>
<p>The podcast is available in French on the <a href="http://bit.ly/Wo7qS">Vox Agile site</a>. Here is <a href="http://bit.ly/1TVzjI">a direct link to the MP3 file</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><strong class="h3color">Tim Harford</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/09/10/interviewed-by-francois-beauregard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://bit.ly/1TVzjI" length="15648608" type="audio/mpeg" />
		</item>
		<item>
		<title>&#8220;Is Scrum Evil?&#8221; Beyond our session at XP Day Paris</title>
		<link>http://ericlefevre.net/wordpress/2009/06/02/is-scrum-evil-beyond-our-session-at-xp-day-paris/</link>
		<comments>http://ericlefevre.net/wordpress/2009/06/02/is-scrum-evil-beyond-our-session-at-xp-day-paris/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 11:14:42 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[scrum]]></category>
		<category><![CDATA[xpday]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=635</guid>
		<description><![CDATA[Our session &#8220;Is Scrum Evil?&#8221; at XP Day Paris this year went well. Attendance was good (50 people or so). One participant called it an &#8220;eye opener&#8220;. Two recorded the discussion (one of the records is available, in French, here; look for the podcast published on May 30th 2009). Nicolas Martignole even did a transcript [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Is Scrum Evil? by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3569286059/"><img class="alignright" src="http://farm4.static.flickr.com/3388/3569286059_c542db4960_m.jpg" alt="Is Scrum Evil?" width="240" height="160" /></a>Our session &#8220;Is Scrum Evil?&#8221; at <a href="http://xpday.fr/">XP Day Paris</a> this year went well. Attendance was good (50 people or so). One participant called it an &#8220;<a href="http://twitter.com/morlhon/status/1922417164">eye opener</a>&#8220;. Two recorded the discussion (one of the records is available, in French, <a href="http://www.touilleur-express.fr/podcast_page/">here</a>; look for the podcast published on May 30th 2009). Nicolas Martignole even did a <a href="http://www.touilleur-express.fr/2009/05/29/xp-day-france-2009-scrum-est-il-dangereux/">transcript of the session</a> (in French &#8212; you might want to check out the <a href="http://translate.google.com/translate?js=n&amp;prev=_t&amp;hl=fr&amp;ie=UTF-8&amp;u=http://www.touilleur-express.fr/2009/05/29/xp-day-france-2009-scrum-est-il-dangereux/&amp;sl=fr&amp;tl=en&amp;history_state0=&amp;swap=1">Google translation</a>).</p>
<p>I thought I would give more details here.</p>
<h2>Our goals</h2>
<p>We didn&#8217;t exactly manipulate the participants, but we certainly did not reveal, on purpose, what our goals were:</p>
<ul>
<li>help dissenting voices come out of the closet &#8212; very few people are vocally criticizing Scrum today in France, and I have found no blogs. I wanted to show the pro-Scrum side that they do not have the final word.</li>
<li>let people vent &#8212; both pros and antis</li>
<li>make participants think &#8212; one later came to me and suggested that I should have offered &#8220;alternative solutions&#8221;. Well, I have none (though I do have some starting points, see below)<img class="alignright" src="http://farm4.static.flickr.com/3349/3570113092_0d6b7f13d4_m.jpg" alt="Is Scrum Evil?" width="240" height="180" /></li>
</ul>
<h2>Alternative endings</h2>
<p>We had prepare additional materials, in case the discussion died out. Fortunately, it was so lively that we couldnt use them at all. You&#8217;ll find all three of them below.</p>
<h3>You are not alone</h3>
<p>The first thing I wanted to highlight is that, though dissenting voices on Scrum (or Agile) are not currently heard in France, they do exist in the rest of the world:</p>
<ul>
<li>James Shore has <a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html">blogged</a> that &#8220;<em>when people say &#8220;Agile,&#8221; they usually mean Scrum</em>&#8221; and that &#8220;<em>it&#8217;s very easy for teams using Scrum to throw out design</em>&#8220;. Finally, he points out that the &#8220;<em>Scrum makes it worse by ignoring important (but hard) agile engineering practices, and the Scrum Alliance makes it worse still with their armies of trainers [...] issuing dubious &#8220;ScrumMaster&#8221; certificates to people</em>&#8220;. There is more in <a href="http://www.infoq.com/news/2009/06/shore-interview">today&#8217;s article on InfoQ</a>.</li>
<li>David Anderson <a href="http://www.agilemanagement.net/Articles/Weblog/TheCaseforanAgileFringe.html">lobbyied hard for an &#8216;Agile Fringe&#8217; stage at Agile 2009 Conference</a>, feeling that the vocal agile community is too mainstream. I agree with him, and I feel that the Agile 2009 program could have given more room to dissenting voices. The <a href="http://agile2009.agilealliance.org/AgileFrontier">Agile Frontier stage</a> is not bad, but it should have gone further.</li>
<li>Naresh Jain says that <a href="http://blogs.agilefaqs.com/2009/04/29/agile-as-practiced-today-is-the-new-waterfall/">Agile (as practices today) is the new waterfall</a>.</li>
<li>which reminds us directly of <a href="http://www.m3p.co.uk/">Steve Freeman</a>&#8217;s aphorism, uttered during CITCON Amsterdam: &#8220;Scrum is the new RUP&#8221;</li>
<li>some people did manage to get controversial sessions accepted to Agile 2009. Not all are directly related to Scrum:
<ul>
<li>JB Rainsberger: <a href="http://agile2009.agilealliance.org/node/708">Integration Tests are a scam</a></li>
<li>Bas Vodde &amp; Steven Mak: <a href="http://agile2009.agilealliance.org/node/656">Let&#8217;s Stop Calling It Agile</a></li>
<li>Paul Hodgetts: <a href="http://agile2009.agilealliance.org/node/3231">ScrumMasters considered harmful &#8211; Where did it go wrong?</a></li>
<li>Brian Foote &amp; Joseph Yoder: <a href="http://agile2009.agilealliance.org/node/2470">Big Balls of Mud: Is this the best Agile can do?</a></li>
<li>also, there might be good content at Linda Rising&#8217;s <a href="http://agile2009.agilealliance.org/node/408">Agile: placebo or real solution?</a></li>
</ul>
</li>
<li>last but not least, <a href="http://alistair.cockburn.us/">Alistair Cockburn</a>, author of the Crystal family of methodologies, signatory of the Agile Manifesto and Certified ScrumMaster Trainer, will host a keynote at Agile 2009 entitled <a href="http://agile2009.agilealliance.org/keynotes">“I Come to Bury Agile, Not to Praise It”</a></li>
</ul>
<p><a title="Is Scrum Evil? by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3570113476/"><img class="alignright" src="http://farm4.static.flickr.com/3593/3570113476_85648d6b1a_m.jpg" alt="Is Scrum Evil?" width="180" height="240" /></a></p>
<h3>Scrum has Crossed The Chasm</h3>
<p>There is a model that give hints to the current situation with Scrum. It is the <a href="http://en.wikipedia.org/wiki/Technology_adoption_lifecycle">Technology Adoption Life-Cycle</a>, as amended by <a href="http://en.wikipedia.org/wiki/Geoffrey_Moore">Geoffrey Moore</a> in his seminal book &#8220;<a href="http://en.wikipedia.org/wiki/Crossing_the_Chasm">Crossing The Chasm</a>&#8220;.</p>
<p>In short, it appears that many of the arguments against Scrum do not just mean that it is poorly explained, nor just that it is poorly understood, but rather that it is now being adopted by a large number of people. Or, to rephrase this, that it has been (consciously or not) packaged in order to be palatable to the mainstream. This implies trainings, books, consulting services, explanations, case studies, success stories. In short, packaging the approach just like a marketing team would do. That the people behind Scrum did it on purpose (as I believe) is beyond the point: the Agile approach that wins the hearts and minds of IT professionals everywhere is necessarily the one that comes with such as package, a <em>whole product</em>, in the words of Moore.</p>
<p>That is a reality that people that are blindly against Scrum must acknowledge.</p>
<h3>ARXTA</h3>
<p>Finally, I would like to point any aspiring Scrum-evil-ist to <a href="http://www.exampler.com/blog/">Brian Marick</a>&#8217;s writing on Agile roots. His argument is that &#8220;Agile&#8221; (and, I guess, the names of pretty much all Agile methodologies) is too easy a term to adopt. In other words, many people will look at the name, glance at the practices, and quickly come to the conclusion that &#8220;hey, this is exactly what we&#8217;ve been doing all along! Let&#8217;s avoid asking ourselves hard questions and let&#8217;s not change the way we work.&#8221; Which is, obviously, missing the whole point.</p>
<p>Brian has came up with a new name for the roots of Agile: &#8220;<a href="http://arxta.net/">Artisanal Retro-Futurism, crossed with Team-Scale Anarcho-Syndicalism</a>.&#8221; The name is cryptic (and even slightly repulsing) on purpose, so that people will have to ask, and will have to have a conversation.</p>
<h2>Further reading</h2>
<p>Check out</p>
<ul>
<li>my <a href="http://www.flickr.com/photos/elefevre/3569301289/in/photostream/">photos of the notes</a> taken on easel pads</li>
<li><a href="http://www.touilleur-express.fr/2009/05/29/xp-day-france-2009-scrum-est-il-dangereux/">the transcript (in French) of the session</a> by Nicolas Martignole (<a href="http://translate.google.com/translate?js=n&amp;prev=_t&amp;hl=fr&amp;ie=UTF-8&amp;u=http://www.touilleur-express.fr/2009/05/29/xp-day-france-2009-scrum-est-il-dangereux/&amp;sl=fr&amp;tl=en&amp;history_state0=&amp;swap=1">Google translation in English</a>); he even has <a href="http://www.touilleur-express.fr/podcast_page/">a recording somewhere on his site</a></li>
<li><a href="http://ericlefevre.net/wordpress/2008/10/07/scrum-is-evil/">my notes</a> from the session at CITCON Amsterdam 2008</li>
<li>&#8220;<a href="http://stackoverflow.com/questions/343162/is-scrum-evil">Is Scrum Evil?</a>&#8221; a question asked by Jeffrey on Stackoverflow</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/06/02/is-scrum-evil-beyond-our-session-at-xp-day-paris/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Refactoring applied to features (or YAGNIAM &#8211; You Aren&#8217;t Gonna Need It&#8230; Any More)</title>
		<link>http://ericlefevre.net/wordpress/2009/03/10/refactoring-applied-to-features-or-yagniam-you-arent-gonna-need-it-any-more/</link>
		<comments>http://ericlefevre.net/wordpress/2009/03/10/refactoring-applied-to-features-or-yagniam-you-arent-gonna-need-it-any-more/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 12:52:25 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=550</guid>
		<description><![CDATA[Refactoring code without modifying its external behavior is necessary to keep your code base manageable. That is nowadays a well-established fact.
However, it can only go so far to prevent your code base from swelling permanently. In theory, if your revenues keep growing, you can keep recruiting more people in your development team, and all will [...]]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/clairity/141872743/"><img class="flickr-photo alignright" src="http://farm1.static.flickr.com/44/141872743_39d1fccfa3_t.jpg" alt="Taking Off" width="100" height="74" /></a><a href="http://en.wikipedia.org/wiki/Code_refactoring">Refactoring code without modifying its external behavior</a> is necessary to keep your code base manageable. That is nowadays a well-established fact.</p>
<p>However, it can only go so far to prevent your code base from swelling permanently. In theory, if your revenues keep growing, you can keep recruiting more people in your development team, and all will be good. Unforunately, that&#8217;s not usually how software works.</p>
<p><a href="http://www.truehealth.org/anatcycl.html">Like many other things in life</a>, software goes through well-known phases: birth, growth, maturity, and decay. At some point, the costs of maintaining the software are just not justified anymore and the editor pulls the plug.</p>
<p>However, we can do a little better than that. If the project still has some life in it, it can be a better plan to <em>reduce</em> its complexity, in order to lower its maintainance costs and increase its life. In fact, there is no need to wait for the product to decrease in popularity. Housekeeping should be done as early as possible in the lifecycle. No need to maintain features that cost more than they pay.</p>
<p>My current customer has exactly this problem. Their project suffers from feature creep. Regression tests become more and more costly to maintain (it is actually planned to delete some of them regularly &#8212; though, of course, nobody <em>really</em> knows which ones we can afford to throw away).</p>
<p>I would call the activity I&#8217;m promoting &#8220;<em>Feature Refactoring: the process of changing a computer program&#8217;s list of features (and corresponding code) without modifying revenues significantly</em>&#8221; (balancing short- and long- term revenues). This means that it is OK to remove some features, as long as it is acceptable to your customer base, in terms of money to make in the long term. Basically, you want to avoid the classic pattern where 80% features that are little used or not used at all.</p>
<p>Note that I am not merely talking about features representing significant weight in terms of code, tests, or documentation. Rather, I want to target anything that costs money to maintain, understand (for new hires), market, etc.</p>
<p>How can we do this? Well, here are a few <a href="http://en.wikipedia.org/wiki/Code_smell">smells</a> that can help</p>
<ul>
<li>your client representative tell you about it &#8212; the easy scenario</li>
<li>you detect that few customers actually use your modules &#8211; <a href="http://www.appspy.org/">monitoring tools</a> can help you here</li>
<li>you find bugs in production&#8230; and few people actually complain about it &#8212; should this feature be there at all?</li>
<li>you upgrade your project&#8230; and nobody complains &#8212; if your features are popular, someone is bound to complain about <em>any</em> change</li>
<li>specs for a particular feature are not updated &#8212; features that do not evolve tend to rot</li>
<li>run workshops with customers &#8212; a interesting format for this is <a href="http://innovationgames.com/the-games/speed-boat/">Speed Boat</a></li>
</ul>
<p>My point is that there are even more potential benefits in term of code maintenance when removing features, compared to refactoring the code base (which is a good thing to do, too).</p>
<p>Refactor your features. See this one there in the corner? You Aren&#8217;t Going to Need It.</p>
<p>You&#8217;ll be happier.  And you will probably save money.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/03/10/refactoring-applied-to-features-or-yagniam-you-arent-gonna-need-it-any-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Alliance Meeting in Paris</title>
		<link>http://ericlefevre.net/wordpress/2009/01/17/agile-alliance-meeting-in-paris/</link>
		<comments>http://ericlefevre.net/wordpress/2009/01/17/agile-alliance-meeting-in-paris/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 11:36:30 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=540</guid>
		<description><![CDATA[
As you might know, the AA board is meeting in person a couple of times a year and, for once, they decided to reach out to the crowd. This time, it happened in Paris.
Not much talking that evening; mostly networking, really. I got to talk to a few people that I had seen at Agile [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Hall by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3201623560/"><img class="aligncenter" src="http://farm4.static.flickr.com/3479/3201623560_0547518b35.jpg" alt="Hall" width="500" height="375" /></a></p>
<p>As you might know, the <a href="http://www.agilealliance.org/show/1647">AA board</a> is meeting in person a couple of times a year and, for once, they decided to reach out to the crowd. This time, it happened in Paris.</p>
<p>Not much talking that evening; mostly networking, really. I got to talk to a few people that I had seen at <a href="http://ericlefevre.net/wordpress/2008/08/11/agile-2008-conference-is-over/">Agile 2008</a>, but couldn&#8217;t meet, because of the huge crowd. It&#8217;s too bad I couldn&#8217;t stay for drinks, since I was giving a training the following day.</p>
<p>Check out <a href="http://flickr.com/photos/elefevre/sets/72157612594796529/">my pictures</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/01/17/agile-alliance-meeting-in-paris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30,000 ScrumMasters and 1,500,000 members of Scrum Teams?!</title>
		<link>http://ericlefevre.net/wordpress/2008/11/03/30000-scrummasters-and-1500000-members-of-scrum-teams/</link>
		<comments>http://ericlefevre.net/wordpress/2008/11/03/30000-scrummasters-and-1500000-members-of-scrum-teams/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 18:17:47 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=474</guid>
		<description><![CDATA[A look on the ScrumAlliance list of Certified ScrumMasters shows that they have 618 pages each containing 50 names of ScrumMaster. This means more than 30,000 CSMs as of Novembre, 3rd, 2008.
According to an interview of Jeff Sutherland, for every CSM, there are 10 Scrum teams that have not had training.  That is, 300,000 Scrum [...]]]></description>
			<content:encoded><![CDATA[<p>A look on the <a href="http://scrumalliance.org/community/csms_only">ScrumAlliance list of Certified ScrumMasters</a> shows that they have 618 pages each containing 50 names of ScrumMaster. This means more than 30,000 CSMs as of Novembre, 3rd, 2008.</p>
<p>According to an interview of Jeff Sutherland, <a href="http://www.infoq.com/interviews/jeff-sutherland-scrum-rules">for every CSM, there are 10 Scrum teams that have not had training</a>.  That is, 300,000 Scrum teams.</p>
<p><a href="http://www.flickr.com/photos/vipez/2470805136/"><img class="alignright" title="Watch out! The Scrum people are coming..." src="http://farm4.static.flickr.com/3199/2470805136_ca2edbe9bb_m.jpg" alt="" width="240" height="180" /></a>Finally, Scrum defines that a team is made of 7 people, give or take 2. Taking the conservative value of 5, this means that we have 1,500,000 people doing Scrum.</p>
<p>One and a half million?! Is it really possible? That said, even taking more conservative numbers, there is no doubt that many people are using (trying to use?) Scrum. The <a href="http://www.versionone.com/AgileSurvey2008/index.asp">annual Agile Survey</a> showed that more than 60% of agile projects are using Scrum, or Scrum combined with XP.</p>
<p>To be honest, this is probably off the mark but maybe not by an order of magnitude. <a href="http://www.theserverside.com/discussions/thread.tss?thread_id=18838">Some estimates put the number of developers worldwide to something between 8 to 13 millions</a>. I&#8217;d be surprised that even 5% of developers <em>worldwide</em> are using Scrum (400,000 to 650,000 individuals), but the 1,500,000 figure contains all people in a scrum team, including some that probably do not qualify as developers, such as business analysts, testers, graphical designers, etc. So it could work.</p>
<p>At least it would explain why <a href="http://ericlefevre.net/wordpress/2008/10/07/scrum-is-evil/">many people now start to think that Scrum Is Evil</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/11/03/30000-scrummasters-and-1500000-members-of-scrum-teams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More about Coding Dojo at CITCON Amsterdam</title>
		<link>http://ericlefevre.net/wordpress/2008/10/21/more-about-coding-dojo-at-citcon-amsterdam/</link>
		<comments>http://ericlefevre.net/wordpress/2008/10/21/more-about-coding-dojo-at-citcon-amsterdam/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 20:52:42 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=458</guid>
		<description><![CDATA[As a nice followup to my earlier post, Willem did a great write up of our Coding Dojo session at CITCON Europe, in early October. His post is supplemented with pictures by Marc.

]]></description>
			<content:encoded><![CDATA[<p>As a nice followup to <a href="http://ericlefevre.net/wordpress/2008/10/08/coding-dojo-on-legacy-code/">my earlier post</a>, Willem did <a href="http://me.andering.com/2008/10/21/as-a-programmer-i-want-to-go-to-a-coders-dojo-so-that-i-can-improve-my-skills/">a great write up of our Coding Dojo session</a> at <a href="http://ericlefevre.net/wordpress/2008/10/05/back-from-citcon-europe-amsterdam-2008/">CITCON Europe</a>, in early October. His post is supplemented with <a href="http://www.flickr.com/photos/27671788@N05/sets/72157608207996555/">pictures by Marc</a>.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/27671788@N05/2957339873/in/set-72157608207996555/"><img class="aligncenter" title="Marc and Eric in action during the first 5 mins of the Coding Dojo" src="http://farm4.static.flickr.com/3033/2957339873_66447d67c8_m.jpg" alt="" width="240" height="160" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/10/21/more-about-coding-dojo-at-citcon-amsterdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Valtech Days are tomorrow!</title>
		<link>http://ericlefevre.net/wordpress/2008/10/20/valtech-days-are-tomorrow/</link>
		<comments>http://ericlefevre.net/wordpress/2008/10/20/valtech-days-are-tomorrow/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 09:44:44 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[openspace]]></category>
		<category><![CDATA[valtech]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=453</guid>
		<description><![CDATA[Valtech Days are starting tomorrow! We are all very excited.
I will be presenting 3 things:

Retrospectives: the key to continuous improvement, together with Laurent Bossavit
A 15-mins demonstration of Hudson
Introduction to the Open Space part of the conference

If you will be attending this conference, please come and say hi!
]]></description>
			<content:encoded><![CDATA[<p>Valtech Days are starting tomorrow! We are all very excited.</p>
<p>I will be presenting 3 things:</p>
<ul>
<li><em>Retrospectives: the key to continuous improvement</em>, together with <a href="http://bossavit.com/">Laurent Bossavit</a></li>
<li>A 15-mins demonstration of <em><a href="http://ericlefevre.net/wordpress/2008/10/05/back-from-citcon-europe-amsterdam-2008/">Hudson</a></em></li>
<li><em>Introduction to the <a href="http://ericlefevre.net/wordpress/2007/11/17/reflecting-on-our-open-space-technology-event/">Open Space</a></em> part of the conference</li>
</ul>
<div>If you will be attending this conference, please come and say hi!</div>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/10/20/valtech-days-are-tomorrow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Valtech Days: bio &amp; abstract for Jeff McKenna</title>
		<link>http://ericlefevre.net/wordpress/2008/10/13/valtech-days-bio-abstract-for-jeff-mckenna/</link>
		<comments>http://ericlefevre.net/wordpress/2008/10/13/valtech-days-bio-abstract-for-jeff-mckenna/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 08:09:00 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[valtech]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=449</guid>
		<description><![CDATA[Jeff McKenna will be opening the Valtech Days conference on October 21th with a keynote on Agile. We got his bio in English, as well as the abstract for his talk. We duly translated into French, but could not take immediate advantage of the English version.
I thought it would be a good idea to reproduce [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Jeff McKenna" src="http://www.valtech.fr/fr/index/valtech_days/Keynote.RightCol.43455.ImageRef.jpg" alt="" width="102" height="153" />Jeff McKenna will be opening the <a href="valtechdays.fr/">Valtech Days</a> conference on October 21th with a keynote on Agile. We got his bio in English, as well as the abstract for his talk. We duly translated into French, but could not take immediate advantage of the English version.</p>
<p>I thought it would be a good idea to reproduce that version here. <a href="http://www.valtech.fr/fr/index/valtech_days/Keynote.html">The French version is on the conference website</a>.</p>
<p>Talk:  Agile: Crossing the Chasm</p>
<p>Description:  Agile Software Development is moving to a new level of acceptance in the industry. Geoffrey Moore has famously called this transition Crossing the Chasm.  As this occurs, a number of significant changes in the rate and manner of acceptance of Agile are happening.  These changes are often accompanied by legends, myths and other points of view.  Some of them support the new point of view while others discount it.  The keynote will explore many of the legends and myths that surround Agile and describe techniques for adoption Agile into the modern enterprise.</p>
<p>Jeff McKenna has been involved in software development for over 45 years and has been actively participating in the creation and delivery of agile software development since 1987. He has been involved in all areas of software product development from programming, system design and architecture to project management, testing, sales and marketing. Since the late 1980s Jeff has focused on the process side of development and along with Jeff Sutherland and John Scumniotales at Easel corporation in 1993 created the Scrum methodology of agile software development and started the very first Scrum team.</p>
<p>Jeff has worked extensively with object-oriented programming systems, languages and applications and was the Chair of OOPSLA in 1994 which helped to incubate and increase adoption of several related disciplines including agile software development. Working with IBM, Cigna, ObjectShare, Easel Corp, Millennium Pharmaceutical and the US Air force, Jeff provided  expertise in architecture, design and implementation for their first Smalltalk based object-oriented projects.</p>
<p>As an Architect at Rational Software (now IBM), Jeff made various contributions to Rational’s industry leading Rose product.  These included extensions to the Unified Modeling Language (UML) to support a UML model of testing. Jeff also worked with industry pioneers, including Grady Booch, to extend the Rational Rose product to natively support Design Patterns.</p>
<p>Jeff is a Certified Scrum Coach and Scrum Master, he has taught, coached and mentored agile teams using Scrum and Extreme Programming practices for many companies, including Oracle, PayPal, Borland, Vanguard, Microsoft, Google, Lockheed Martin, Tumbleweed Communications, V-Mark and Net Objectives.</p>
<p>Jeff is currently an Agile evangelist for Serena Software helping to build Serena Agile On Demand and working with customers and partners aiding the adoption of agile methods and practices in engineering organizations.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/10/13/valtech-days-bio-abstract-for-jeff-mckenna/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Coding Dojo on Legacy Code</title>
		<link>http://ericlefevre.net/wordpress/2008/10/08/coding-dojo-on-legacy-code/</link>
		<comments>http://ericlefevre.net/wordpress/2008/10/08/coding-dojo-on-legacy-code/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 16:31:55 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>
		<category><![CDATA[facilitation]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=443</guid>
		<description><![CDATA[At CITCON Amsterdam last WE, Willem van den Ende and I facilitate a Coding Dojo session on both Mockito and Legacy Code.
Willem and I thought that we had missed some of our goals (especially demonstrating Mockito), but still many people at the closing session mentioned that they enjoyed it :-)
We tried to prepare a bit before diving [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://ericlefevre.net/wordpress/2008/10/05/back-from-citcon-europe-amsterdam-2008/">CITCON Amsterdam</a> last WE, <a href="http://www.willemvandenende.com/">Willem van den Ende</a> and I facilitate a <a href="http://ericlefevre.net/wordpress/2008/09/28/improvided-coding-dojo/">Coding Dojo</a> session on both <a href="http://code.google.com/p/mockito/">Mockito</a> and <a href="http://en.wikipedia.org/wiki/Legacy_code">Legacy Code</a>.</p>
<p>Willem and I thought that we had missed some of our goals (especially demonstrating Mockito), but still many people at the closing session mentioned that they enjoyed it :-)</p>
<p><a title="Coding Dojo with Legacy Code by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/2915504264/"><img class="alignleft" src="http://farm4.static.flickr.com/3004/2915504264_b376f0879f_m.jpg" alt="Coding Dojo with Legacy Code" width="240" height="180" /></a>We tried to prepare a bit before diving into the session. However, in practice, it became a bit chaotic, as many participants tried to make their opinion heard. This was very different than when I do that in trainings or even at Valtech. I guess this is because there were quite a few people (~20) and most of them were rather experienced and strong-headed (I guess they wouldn&#8217;t be at such a conference otherwise!).</p>
<p><a title="Coding Dojo with Legacy Code by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/2915505760/"><img class="alignright" src="http://farm4.static.flickr.com/3028/2915505760_6d0949840a_m.jpg" alt="Coding Dojo with Legacy Code" width="240" height="180" /></a>We managed to have a quick retrospective at the end. Here are some of the things we learnt:</p>
<li>We need to prepare the session better; half of the session was spent fixing an existing bug in the original application, instead of adding features. Also, Willem wanted to take advantage of Mockito, which was quickly forgotten as people concentrated on fixing the bug.</li>
<li>At first, do Safe Refactorings (the ones that can be done automatically by Eclipse and such tools), though you still need to be careful of what you are doing</li>
<li>It is OK to add code, not OK not remove code from the legacy application</li>
<li>Add collaborators using setters to facilitate testing</li>
<li>However, be careful: getters and setters can quickly get out of hand</li>
<li><a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singletons</a> are bad, not just because they make code hard to test, but also because they create secret coupling</li>
<li>Apparently, many (bad) coders want to write singletons and <a href="http://en.wikipedia.org/wiki/Method_(computer_science)#Static_methods">static methods</a> (which are both frown upon in the context of testing), simply because they do not want to type the &#8216;new&#8217; keyword</li>
<li>We could try to rotate the copilot on a longer basis (for example, every 10 mins, instead of every 5 mins for the coder)</li>
<li>I (Eric) got concerned that the Coding Dojo format prevents participants from thinking; facilitating the session sometimes seemed to be like herding cats</li>
<li>it was clear that many people was interested in working on legacy code</li>
<li>in the end, a Coding Dojo with an appropriately complex application seemed like a good way to learn about handling legacy code</li>
<p>I need to experiment a bit more with Coding Dojo for Legacy Code, but I feel that the format is rather good. Next year, we&#8217;ll do better!</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/10/08/coding-dojo-on-legacy-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
