<?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; misc</title>
	<atom:link href="http://ericlefevre.net/wordpress/category/misc/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericlefevre.net/wordpress</link>
	<description>Eric&#039;s Earnest Elucidations</description>
	<lastBuildDate>Mon, 06 Feb 2012 06:08:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Io Language: adding slots to messages</title>
		<link>http://ericlefevre.net/wordpress/2012/02/06/io-language-adding-slots-to-messages-2/</link>
		<comments>http://ericlefevre.net/wordpress/2012/02/06/io-language-adding-slots-to-messages-2/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 06:08:49 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=1061</guid>
		<description><![CDATA[Week 2 of the Seven Languages in Seven Weeks book is about the Io Language. Day 3 is more specifically on how the flow of control (how messages are passed to an object or to its parent) can be hijacked &#8230; <a href="http://ericlefevre.net/wordpress/2012/02/06/io-language-adding-slots-to-messages-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Week 2 of the <a href="http://pragprog.com/book/btlang/seven-languages-in-seven-weeks">Seven Languages in Seven Weeks</a> book is about the <a href="http://iolanguage.com/">Io Language</a>. Day 3 is more specifically on how the flow of control (how messages are passed to an object or to its parent) can be hijacked to create a DSL.</p>
<p>In this post, I am going to describe an interesting feature in Io, and how I extended it a bit to enhance an XML generator.</p>
<p>In the example provided, the following Io code:</p>
<pre>Builder ul(
  li("Io"),
  li("Lua"),
  li("JavaScript"))</pre>
<p>can generate the following output:</p>
<pre>&lt;ul&gt;
&lt;li&gt;
Io
&lt;/li&gt;
&lt;li&gt;
Lua
&lt;/li&gt;
&lt;li&gt;
JavaScript
&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>This is made possible by redefining the <em>forward</em> method (&#8220;slot&#8221; in the terminology of Io), which is responsible for deciding who to apply the method calls (&#8220;message calls&#8221; in Io) to.<br />
The other key thing is that it is possible to obtain the details on a message call, even when this message is not defined, a bit like what <a href="http://apidock.com/ruby/BasicObject/method_missing">method_missing</a> does in Ruby. This is done using <em>call message</em>.</p>
<p>For example, while this would be a normal method definition:</p>
<pre>Builder myMethod := method("I have been called" println)</pre>
<p>you could also do it awkwardly by redefining <em>forward</em> and using <em>call message</em>:</p>
<pre>Builder forward := method(if(call message name == "myMethod", "I have been called" println))</pre>
<p>This leads us to the following program (provided in the book) as a way to implement the Builder called in the example:</p>
<pre>Builder := Object clone

Builder forward := method(
	writeln("&lt;", call message name, "&gt;")
	call message arguments foreach(
		arg,
		content := self doMessage(arg);
		if(content type == "Sequence",
			writeln(content)
		)
	)
	writeln("<!--", call message name, "-->")
)</pre>
<p>The exercise was to add indentation dependent on the depth of the tag. It turns out that slots (that is, members of classes or instances) can added to pretty much anything in Io, so I decided to add a <em>depth</em> slot to arguments. Here is the resulting Io code:</p>
<pre>// create a sub-class ("prototype") of Object
Builder := Object clone

// redefine the forward method in order to intercept unknown method ("message") calls
Builder forward := method(
	// if the message does not have a "depth" attribute ("slot"), add it
	call message hasLocalSlot("depth") ifFalse(call message depth := 0)
	// indentation is "depth"-times a tab
	indent := "\t" repeated(call message depth)
	// open an XML tag, the name being the name of the message,
	// preceded by the indentation
	writeln(indent, "&lt;", call message name, "&gt;")
	// loop on each of the arguments of the message
	call message arguments foreach(
		arg,
		// increase the depth level for the sub-message call
		arg depth := call message depth + 1;
		// call the message represented by the argument on the current instance
		// (or on the current prototype, as it is the case here)
		content := self doMessage(arg);
		// check if the argument turns out to be a normal String
		if(content type == "Sequence",
			// prints the value of the argument, preceded by the indentation
			writeln(indent, content)
		)
	)
	// closes the XML tag
	writeln(indent, "<!--", call message name, "-->")
)</pre>
<p>With this, the folllowing code</p>
<pre>Builder p (
	ul(
		li("Io"),
		li("Lua"),
		li("JavaScript")
	)
)</pre>
<p>produces this result:</p>
<pre>&lt;p&gt;
	&lt;ul&gt;
		&lt;li&gt;
		Io
		&lt;/li&gt;
		&lt;li&gt;
		Lua
		&lt;/li&gt;
		&lt;li&gt;
		JavaScript
		&lt;/li&gt;
	&lt;/ul&gt;
&lt;/p&gt;</pre>
<p>To sum up, we have created a DSL by redefining the way methods are called, introspecting the method call, and finally added a parameter to the method call (!).</p>
<p>If you want to read more about this technique, check out <a href="http://www.bennadel.com/blog/2067-Seven-Languages-In-Seven-Weeks-Io-Day-3.htm">this other post on Io in the 7 Languages book</a>. Curiously, Ben Nadel uses a variable on the Builder to store the current depth. That works, but it seems to me that it behaves just like a global variable, which wouldn&#8217;t be thread-safe. Also, I rather like associating a tag to its corresponding depth.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2012/02/06/io-language-adding-slots-to-messages-2/feed/</wfw:commentRss>
		<slash:comments>0</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 &#8230; <a href="http://ericlefevre.net/wordpress/2009/03/10/refactoring-applied-to-features-or-yagniam-you-arent-gonna-need-it-any-more/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>I am a jealous man</title>
		<link>http://ericlefevre.net/wordpress/2008/09/12/i-am-a-jealous-man/</link>
		<comments>http://ericlefevre.net/wordpress/2008/09/12/i-am-a-jealous-man/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 15:36:34 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=382</guid>
		<description><![CDATA[I&#8217;d like to have many visitors. But compared to some blogs I follow, I still have work to do. Here are some information, according to Google Analytics. Compared to Claude Aubry, who writes in French about Scrum, I now reach &#8230; <a href="http://ericlefevre.net/wordpress/2008/09/12/i-am-a-jealous-man/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Traffic on my site http://ericlefevre.net/ by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/2850350451/"><img class="aligncenter" src="http://farm4.static.flickr.com/3125/2850350451_f24f46513e.jpg" alt="Traffic on my site http://ericlefevre.net/" width="500" height="96" /></a></p>
<p>I&#8217;d like to have many visitors. But compared to some blogs I follow, I still have work to do. Here are some information, according to <a href="http://www.google.com/analytics/">Google Analytics</a>.</p>
<ul>
<li>Compared to <a href="http://scrum.aubryconseil.com/">Claude Aubry</a>, who writes in French about Scrum, I now reach 1,500 unique visitors per month, while he has <a href="http://www.google.com/analytics/">twice that many</a>.</li>
<li>Julian Simpson&#8217;s Build Doctor on Continuous Integration, <a href="http://www.build-doctor.com/2008/09/build-doctor-retrospective-season.html">seems to average 100 visitors per day</a> (it&#8217;s difficult to tell on the graph), I think I&#8217;m around 50 per day. Missed again!</li>
</ul>
<p>My wife does not like it when I compare myself to others. Me, I feel it is stimulating. This makes me want to write more.</p>
<p>Other trivia:</p>
<ul>
<li>my most popular post ever is the one about <a href="http://ericlefevre.net/wordpress/2007/03/14/gienah-inject-dependencies-in-your-junit-4-tests/">Gienah</a>; strangely, it is also the most popular one in the past 3 months, although it is 18 months old</li>
<li>next, with almost the same number of visitors, a post about a <a href="http://ericlefevre.net/wordpress/2007/06/08/the-plugin-does-not-exist-or-no-valid-version-could-be-found/">classic error message in Maven</a> and one about <a href="http://ericlefevre.net/wordpress/2008/06/02/cruisecontrol-is-still-the-bigger-player-hudson-is-growing/">download stats for CC and Hudson</a>, which has been referred to by quite a few sites, including dzone.com</li>
<li>Firefox is by far the most popular browser, with more than two thirds of visitors</li>
<li>Almost 80% of people use Windows (I was hoping Linux and MacOS would do better, but they got less than 10% each)</li>
<li>the vast majority of people find my pages through Google; other sources are <a href="http://www.dzone.com/">dzone</a>, <a href="http://blog.valtech.fr/">Blog Valtech</a>, <a href="http://www.feedburner.com/">FeedBurner</a> (possibly because of syndication), <a href="http://www.netvibes.com/">NetVibes</a> (I guess some people have added my blog to their home page) and <a href="http://www.build-doctor.com/">The Build Doctor</a>.</li>
<li>the two most popular region of origins are the USA and France (half of the traffic in total). I am rather happy with that, as I do write in English to be heard outside France.</li>
</ul>
<p>Anyway, my biggest satisfaction is that traffic has been consistently rising from the beginning. It does take time, but who wouldn&#8217;t do that for fame, money and women! ;-)</p>
<p>One thing I have done recently is add <a href="http://feedburner.com/">FeedBurner analysis</a>. It does not show much for the moment; I&#8217;ll guess I&#8217;ll get data next year. The other thing I did is syndicate my blog under <a href="http://planet.valtech.fr/">Planet Valtech</a> and <a href="http://feeds.feedburner.com/CitconBlogs">CITCON Blogs</a>. That will probably make a difference in the medium term.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/09/12/i-am-a-jealous-man/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2007: a mini personal retrospective</title>
		<link>http://ericlefevre.net/wordpress/2008/01/07/2007-a-mini-personal-retrospective/</link>
		<comments>http://ericlefevre.net/wordpress/2008/01/07/2007-a-mini-personal-retrospective/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 20:10:25 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2008/01/07/2007-a-mini-personal-retrospective/</guid>
		<description><![CDATA[Wow, what a year. In 2007: I got married we almost completed improvement work in our flat Attended 7 conferences (compared to just 1 in 2006). Hard to say which one was my favorite! Sun Tech Days XP Day Paris &#8230; <a href="http://ericlefevre.net/wordpress/2008/01/07/2007-a-mini-personal-retrospective/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow, what a year.</p>
<p><span id="more-164"></span> In 2007:</p>
<ul>
<li>I got married</li>
<li>we almost completed improvement work in our flat</li>
<li>Attended 7 conferences (compared to just 1 in 2006). Hard to say which one was my favorite!
<ul>
<li>Sun Tech Days</li>
<li><a href="http://ericlefevre.net/wordpress/2007/05/16/xp-day-paris/">XP Day Paris</a></li>
<li><a href="http://ericlefevre.net/wordpress/2007/06/14/agileopen-back-from-ao-europe-2007/">AgileOpen Europe</a></li>
<li><a href="http://ericlefevre.net/wordpress/2007/10/24/back-from-citcon-brussels-2007/">CITCON Brussels</a></li>
<li><a href="http://ericlefevre.net/wordpress/2007/10/28/valtech-days-an-insider-look/">Valtech Days</a></li>
<li><a href="http://ericlefevre.net/wordpress/2007/12/10/barcampparis15-tools-20/">BarCampParis15</a></li>
<li><a href="http://ericlefevre.net/wordpress/2007/12/11/paris-on-rails-2/">Paris On Rails</a></li>
</ul>
</li>
<li>helped organized Valtech Days and CITCON, and joined the <a href="http://www.agile2008.org/">Agile 2008</a> organizational committee, as a sidekick to <a href="http://www.bossavit.com/">Laurent Bossavit</a>, for the <a href="http://www.agile2008.org/stage-breaking.html">Breaking Acts stage</a>.</li>
<li>became &#8220;Technical Leader&#8221; for <a href="http://valtech.fr/">Valtech France</a></li>
<li>technically, became serious about <a href="http://hudson.dev.java.net/">Hudson</a>, <a href="http://maven.apache.org/">Maven</a>, <a href="http://www.springframework.org/">Spring</a> and <a href="http://www.hibernate.org/">Hibernate</a></li>
<li>organized internal training sessions, and consultants going to conferences</li>
<li>taught <a href="http://www.valtech-training.fr/fr/index/training/catalogue/gestion_de_projet/SCRUM.html">Scrum</a> and <a href="http://www.valtech-training.fr/fr/index/training/catalogue/strategies_developpement_logiciel/USIL.html">Build Process</a> for <a href="http://www.valtech-training.fr/">Valtech Training</a></li>
</ul>
<p>All in all, a pretty good year!</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2008/01/07/2007-a-mini-personal-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After all these years, internationalization is still not working well</title>
		<link>http://ericlefevre.net/wordpress/2007/11/07/after-all-these-years-internationalization-is-still-not-working-well/</link>
		<comments>http://ericlefevre.net/wordpress/2007/11/07/after-all-these-years-internationalization-is-still-not-working-well/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 15:40:12 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/11/07/after-all-these-years-internationalization-is-still-not-working-well/</guid>
		<description><![CDATA[With all the techniques that we have at our disposal, with all the education that developers got, still we see websites that handle internationalization poorly. I noticed the problem recently on a minor website, but even Flickr and/or Yahoo got &#8230; <a href="http://ericlefevre.net/wordpress/2007/11/07/after-all-these-years-internationalization-is-still-not-working-well/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With all the techniques that we have at our disposal, with all the education that developers got, still we see websites that handle internationalization poorly. I noticed the problem recently on a minor website, but even Flickr and/or Yahoo got it badly wrong.</p>
<p><span id="more-157"></span><br />
<a href="http://www.flickr.com/photos/elefevre/1903098567/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2375/1903098567_62f500dbcb_m.jpg" alt="Site in English" align="left" height="197" width="240" /></a>In this screen shot, the website is all in English, as long as my browser is configured for English as the primary language. All fine and good.<br />
<a href="http://www.flickr.com/photos/elefevre/1903098229/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2240/1903098229_d825a73e80_m.jpg" alt="Site with weird mix of English and French" align="right" height="197" width="240" /></a>But, if I switch to French as the primary language, I got the site only partly in French. Of course, it makes sense in a way: the website <em>engine</em> is supports many languages, but the <em>content</em> written by the contributors is only in English. Well&#8230; why not make English the default language for the site as well? I guess this is what you get when you don&#8217;t <a href="http://ericlefevre.net/wordpress/2006/06/30/as-a-user-always-choose-the-english-language/">stick to English at all times</a>.</p>
<p>This can be forgiven for a website hacked together by a few developers for their own needs, but what if Flickr/Yahoo does it too? well, it can get really, really ugly.</p>
<p>Consider this: I configured Flickr and my browser both to use English. As for Yahoo, I couldn&#8217;t find a way to specify the language. All I did was set to the content to be US-centric. My location remained France, though.<br />
<a href="http://www.flickr.com/photos/elefevre/1904182100/" title="Photo Sharing"></a></p>
<p style="text-align: center"> <a href="http://www.flickr.com/photos/elefevre/1904182100/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2232/1904182100_88872d7d45_m.jpg" alt="Flickr configured to be in English" align="bottom" height="238" width="240" /></a> <a href="http://www.flickr.com/photos/elefevre/1904182510/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2077/1904182510_72388950c0_m.jpg" alt="Yahoo in configured to use US-centric content" align="bottom" height="231" width="240" /></a><a href="http://www.flickr.com/photos/elefevre/1904182510/" title="Photo Sharing"> </a></p>
<p>Well, believe it or not, when I wanted to upgrade my flickr account to Pro, I was served with a page containing a mix of English, French&#8230; and Italian. Now, English &amp; French, OK, I can understand (though not forgive: Yahoo should know better); but <em>Italian</em>?? Where did that come from?</p>
<p><a href="http://www.flickr.com/photos/elefevre/1903097905/" title="Photo Sharing"></a></p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/elefevre/1903097905/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2212/1903097905_30c35fce0b.jpg" alt="Flickr mixes French, English AND Italian!!" height="500" width="433" /></a></p>
<p>Even the French part is weird, though: did they pick it up from my localization? Or from the IP address of my internet gateway? I sure hope not: I remember being in Denmark in 1997, and trying to access my developer account on Microsoft website: one day, all appeared written in Danish&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/11/07/after-all-these-years-internationalization-is-still-not-working-well/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 books: &#8220;Guns, Germs &amp; Steel&#8221;, and &#8220;Good To Great&#8221;</title>
		<link>http://ericlefevre.net/wordpress/2007/09/24/2-books-guns-germs-steel-and-good-to-great/</link>
		<comments>http://ericlefevre.net/wordpress/2007/09/24/2-books-guns-germs-steel-and-good-to-great/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 13:17:51 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/09/24/2-books-guns-germs-steel-and-good-to-great/</guid>
		<description><![CDATA[This August, as I was vacationing in Malta, I grabbed Guns, Germs &#38; Steel at a bookstore in the airport. It is a fascinating book that explains how the European civilization basically ended up dominating the rest of the world. &#8230; <a href="http://ericlefevre.net/wordpress/2007/09/24/2-books-guns-germs-steel-and-good-to-great/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p> This August, as I was vacationing in Malta, I grabbed <a href="http://en.wikipedia.org/wiki/Guns%2C_Germs%2C_and_Steel">Guns, Germs &amp; Steel</a> at a bookstore in the airport. It is a fascinating book that explains how the European civilization basically ended up dominating the rest of the world.<br />
After completing it, I dived into <a href="http://en.wikipedia.org/wiki/Good_to_great">Good to Great: Why Some Companies Make the Leap&#8230; and Others Don&#8217;t</a>, another captivating essay that tells how some companies manage to reach a inflection point where they start making a lot more money than their competitors, and never go back to their previous mediocrity.</p>
<p>What is most intriguing to me is the parallel that can be drawn between each of these books, and the facilitating technique of the <a href="http://en.wikipedia.org/wiki/5_Whys">Five Whys</a>.</p>
<p><span id="more-136"></span><br />
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/f/fc/Ggas_human_soc.jpg/200px-Ggas_human_soc.jpg" align="left" height="305" width="200" /> The line of thought for the author of Guns&#8230; seems to have been the following:</p>
<p>The European civilization dominates the world.</p>
<ul>
<li> Why? Because they have had stronger armies, more developed weapons and means of transportation, better writing skills, and deadlier germs.</li>
<li>Why? Because they have been able to support dense populations, a hierarchical society, scientists, scribes, and an environment where germs have multiplied.</li>
<li>Why? Because they have had plentiful food in terms of edible plants and useful animals; the later have brought germs along. All this earlier than competing societies.</li>
<li>Why? Because appropriate domesticated plants and animals where available nearby (mostly from the Fertile Crescent) in great numbers.</li>
<li>Why? Because fauna and flora were more rich and diverse.</li>
<li>Why? Because Eurasia is the largest continent, and has a West-East axis, which helps fauna and flora to spread out (climates varies less than on continents with a North-South axis), compete with each other, and develop more useful characteristics.</li>
</ul>
<p>As a side note, not only the European civilization ended up dominating other continents, but the fauna brought along as well (this is a general statement; counter-examples do exist).</p>
<p>For <a href="http://en.wikipedia.org/wiki/James_C._Collins">Jim Collins, the author of Good to Great</a>, it goes more or less like that:<img src="http://upload.wikimedia.org/wikipedia/en/thumb/0/03/Cover_Good_2_Gr8.jpg/150px-Cover_Good_2_Gr8.jpg" align="right" height="237" width="150" /></p>
<p>Some companies used to be mediocre, but at some point raised to greatness and never fell back. That, over a fairly a long period of time (more than 30 years).</p>
<ul>
<li>Why? Because they are selling the right products.</li>
<li>Why? Because they have had an appropriate core concept of what they want to do, can do, and make money with <em>in the long term</em></li>
<li>Why? Because they have thought long and hard, and then stuck to their core concept, no matter what</li>
<li>Why? Because they had the right people on board</li>
<li>Why? Because they had a &#8220;Level 5&#8243; Leader (a servant-leader, consistent and fearless); also, they did <em>not</em> have a high-profile, bigger-than-life leader that proves impossible to replace</li>
<li>Why? Mostly because someone was lucky enough in assigning this person as CEO</li>
</ul>
<p>Of course, both chain of thought might strike as a bit simplistic. In a way, they are (though you&#8217;d better read the books first before judging them to quickly). For example, in Guns&#8230; the author admits that some additional explanations are required, for example the fact that Europe was geographically dispersed helped creating competing nations, as opposed to, say, China.</p>
<p>Still, they strike as reasonably good analysis of the main forces at work. Such depth of analysis is refreshing in a world where authors tend to serve ready-made solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/09/24/2-books-guns-germs-steel-and-good-to-great/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estimates in everyday life</title>
		<link>http://ericlefevre.net/wordpress/2007/09/23/estimates-in-everyday-life/</link>
		<comments>http://ericlefevre.net/wordpress/2007/09/23/estimates-in-everyday-life/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 17:26:48 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/09/23/estimates-in-everyday-life/</guid>
		<description><![CDATA[One thing that we teach in Agile courses is estimating. One technique is taken from Steve McConnell and called Count, Compute, and Judge. The idea is that, to make an estimate, you have 3 options. First, if you can Count, &#8230; <a href="http://ericlefevre.net/wordpress/2007/09/23/estimates-in-everyday-life/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One thing that we teach in Agile courses is estimating. One technique is taken from <a href="http://stevemcconnell.com/">Steve McConnell</a> and called <a href="http://stevemcconnell.com/Estimation-07.pdf">Count, Compute, and Judge</a>. The idea is that, to make an estimate, you have 3 options. First, if you can Count, do so (ie. do not do any estimate at all). Second, take a value that you know, then count it, then Compute the resulting value to obtain the estimate. Finally, if all else fails, use your Judgment. It is a good idea to mix compute &amp; judge.In two recent instances, I have heard outrageous figures when talking with friends. One mentioned that &#8220;the average pregnancy age is 13 years old&#8221;. In a separate discussion, another asserted that &#8220;the price of baguette has increased 6-fold since the introduction of the euro&#8221;.</p>
<p>Obviously, in the context of this post, it sounds trivial that these sentences are nonsense. However, in the heat of the conversation, they can pass unnoticed. Both persons seemed actually convinced that they were true, and used them as proof to further the debate.</p>
<p>How often are we taking random figures at face value? (&#8220;we have estimated this project to cost this much&#8221;) We should always be at least critical.<br />
The idea is to think of other things to judge the figure against (&#8220;the laws of economics would probably prevent the price of bread to increase so fast in such a short time&#8221;). Intuition helps, naturally.</p>
<p>&#8220;<a href="http://en.wikipedia.org/wiki/Idea#Ren.C3.A9_Descartes">Common sense is the most fairly distributed thing in the world</a>&#8221; (Descartes). It seems that it is still not enough. Let&#8217;s keep in mind that others can be wrong, and that we ourselves can be wrong. Judging people and behavior is foolish, but judging data is not.</p>
<p>So, when hearing figures, always keep a critical mind, especially if this figure is used to take decisions. Conversely, do not show figures as hard facts. Be as honest as possible and make clear that &#8220;well, I heard this on the radio, but I might have misunderstood&#8221;. Giving a wide range of possible values helps too (&#8220;the most probable estimate is 1000 man-days, but plausible estimates range from 500 to 5000&#8243;). You&#8217;ll be helping others, and yourselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/09/23/estimates-in-everyday-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telelogic to be acquired by IBM</title>
		<link>http://ericlefevre.net/wordpress/2007/06/29/telelogic-to-be-acquired-by-ibm/</link>
		<comments>http://ericlefevre.net/wordpress/2007/06/29/telelogic-to-be-acquired-by-ibm/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 09:02:23 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/06/29/telelogic-to-be-acquired-by-ibm/</guid>
		<description><![CDATA[I&#8217;ve just learned that Telelogic, one of my former employers, is to be acquired by IBM. From 1998 till early 2000, I used to work for Verilog, a French software company (I was based in the Dallas office) that was &#8230; <a href="http://ericlefevre.net/wordpress/2007/06/29/telelogic-to-be-acquired-by-ibm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just learned that <a href="http://www.ibm.com/software/rational/">Telelogic, one of my former employers, is to be acquired by IBM</a>.</p>
<p>From 1998 till early 2000, I used to work for Verilog, a French software company (I was based in the Dallas office) that was doing pretty well with its IDE targeted at the <a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.sdl-forum.org%2F&amp;ei=mcSERo3EKZH4-AK075i5Dw&amp;usg=AFQjCNFZNcpo1qNeSdC-ufgBpYH3bPqXpw&amp;sig2=sR5PkVu2p7dPp-_GLEAr0w">SDL world</a>. One fine day of December 1999, I arrived in the office, only to learn that Telelogic, the other major player in SDL, had acquired us. Telelogic was no worse, nor better that Verilog (though certainly more commercially aggressive), but I needed a change and in April, I went back to Europe and joined Valtech (in London for a few years, then Paris).</p>
<p>When we were at Verilog, we used to worry about Telelogic (which we thought was using disloyal means to take business from us), and also, though less, about Rational (for its real-time software IDE), i-Logix, and a few others.</p>
<p>Well, Telelogic snapped Verilog, then i-Logix (among others). IBM acquired Rational (among many others), and now Telelogic.</p>
<p>It&#8217;s a strange feeling to hear about a company you used to work for. It&#8217;s a bit like hearing about long-lost high school friends: how did they do? and, inevitably, did I do any better?</p>
<p>Every now and then, I come across people that used to work for Telelogic, including the project manager of my current consulting gig at EDF, and <a href="http://www.dotnetguru2.org/proques/">Pascal Roques</a>, a UML guru and a colleague at Valtech (the proverbial <a href="http://en.wikipedia.org/wiki/Small_world_phenomenon">small world</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/06/29/telelogic-to-be-acquired-by-ibm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Spreadsheets Just Added Charts!</title>
		<link>http://ericlefevre.net/wordpress/2007/04/20/google-spreadsheets-just-added-charts/</link>
		<comments>http://ericlefevre.net/wordpress/2007/04/20/google-spreadsheets-just-added-charts/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 10:15:59 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/04/20/google-spreadsheets-just-added-charts/</guid>
		<description><![CDATA[I just tried: it works reasonably well, though a bit slow (as one could expect). More here.]]></description>
			<content:encoded><![CDATA[<p>I just tried: it works reasonably well, though a bit slow (as one could expect).</p>
<p>More <a href="http://www.google.com/google-d-s/whatsnew.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/04/20/google-spreadsheets-just-added-charts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiring Tips</title>
		<link>http://ericlefevre.net/wordpress/2007/03/02/hiring-tips/</link>
		<comments>http://ericlefevre.net/wordpress/2007/03/02/hiring-tips/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 11:48:08 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[valtech]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/2007/03/02/hiring-tips/</guid>
		<description><![CDATA[Every once in a while, I stumble upon a new list of tips to hiring someone. Since I am actively involved in interviewing candidates technically, I always read them in detail. If you don&#8217;t know them already, here they are &#8230; <a href="http://ericlefevre.net/wordpress/2007/03/02/hiring-tips/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Every once in a while, I stumble upon a new list of tips to hiring someone. Since I am actively involved in interviewing candidates technically, I always read them in detail.</p>
<p>If you don&#8217;t know them already, here they are for your reading pleasure.</p>
<li><a href="http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html">Joel Spolsky&#8217;s Guerrilla Guide to Interviewing</a>, possibly the most referred to paper on hiring</li>
<li><a href="http://steve.yegge.googlepages.com/five-essential-phone-screen-questions">Steve Yegge&#8217;s Five Essential Phone-Screen Questions</a>, a bit too system-centered for my taste, but interesting</li>
<li><a href="http://blogs.atlassian.com/rebelutionary/archives/2007/03/life_is_a_hire_way_5_tips_for_startup_hi.html">Mike Cannon-Brookes&#8217; 5 Tips For Startup Hiring</a>, Mike is the co-founder of <a href="http://www.atlassian.com/">Atlassian</a>; I&#8217;ve met him briefly at CITCON London 2006</li>
]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2007/03/02/hiring-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

