<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Eric Lefevre-Ardant on Java &amp; Agile</title>
	
	<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>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EricLefevre" /><feedburner:info uri="ericlefevre" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to use LogMeIn under Linux</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/g6-_pmSr4sk/</link>
		<comments>http://ericlefevre.net/wordpress/2010/07/30/how-to-use-logmein-under-linux/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 14:45:02 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=846</guid>
		<description><![CDATA[For my Remote Pair Programming session with Alexandru Bolboaca, I wanted to work on our actual code, not toy programs. It was hard finding a technical solution to allow this (despite the many suggestions I received on Twitter; the biggest issue is sharing the entire development environment), but I finally settled on LogMeIn. LogMeIn basically [...]]]></description>
			<content:encoded><![CDATA[<p>For my <a href="http://www.alexbolboaca.ro/the-remote-pair-programming-tour#Eric">Remote Pair Programming session with Alexandru Bolboaca</a>, I wanted to work on <a href="http://algodeal.com/">our</a> actual code, not toy programs. It was hard finding a technical solution to allow this (despite the many suggestions I received on <a href="http://twitter.com/elefevre">Twitter</a>; the biggest issue is sharing the entire development environment), but I finally settled on <a href="http://www.logmein.com/">LogMeIn</a>. LogMeIn basically lets you create an ad hoc VPN with them serving as a middle man. The great thing with it is that all the configuration is done on the client machines. There is nothing to change on firewalls (especially important for the <em>other</em> people that you are working with).</p>
<p>LogMeIn has a download that seems very simple to use&#8230; as long as you are under Windows. It also has a Mac OS X version and a <a href="https://secure.logmein.com/labs/">Linux version</a>, but they hardly come with any documentation. What&#8217;s worse, it is hard to find additional information on the <a href="http://community.logmein.com/t5/Linux-OSX/bd-p/HamLinOSX">support site</a>.</p>
<p>So, for your eyes only, here are some instructions on how to get LogMeIn to run under Linux. (this applies only to the client machine; setting up the network can be done entirely on LogMeIn&#8217;s website)</p>
<p style="text-align: center;"><a title="The worlds network by saschaaa, on Flickr" href="http://www.flickr.com/photos/saschaaa/152502539/"><img class="aligncenter" src="http://farm1.static.flickr.com/51/152502539_c4cb9121eb.jpg" alt="The worlds network" width="500" height="375" /></a></p>
<p>My configuration: Ubuntu 10.04 Lucid Lynx 64 bits with LogMeIn Hamachi 2.0.0.11-1. (Hamachi is a protocal that creates a VPN that goes through their servers)</p>
<ol>
<li>First, create a login on <a href="http://www.logmein.com/">http://www.logmein.com/</a></li>
<li>Install their <a href="https://secure.logmein.com/labs/">Linux client</a>. Just double-clicking it after download should be enough.</li>
<li>Configure the client in the command line :
<ol>
<li>hamachi login</li>
<li>hamachi attach &lt;your email on logmein&gt;</li>
<li>hamachi set-nick &lt;a human-readable user name for you; any should do&gt;</li>
<li>hamachi do-join &lt;id of the VPN previously created on LogMeIn&gt;
<ul>
<li>The password is the one specified by the domain creator. This is <em>not</em> the password for your login.</li>
</ul>
</li>
</ol>
</li>
<li>Wait for domain creator to approve your machine on the virtual network (you might need to send an email to remind her of that)</li>
</ol>
<p>Done! From that point, you can use VNC or anything else to connect to a remote computer. Use something like ifconfig on the remote computer and use the IP address under the ham0 entry (ham is for Hamachi, obviously). The IP address has an unusual value such as 5.18.76.84.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/g6-_pmSr4sk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2010/07/30/how-to-use-logmein-under-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2010/07/30/how-to-use-logmein-under-linux/</feedburner:origLink></item>
		<item>
		<title>How we use Git at Algodeal</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/qyKg1vgYa3E/</link>
		<comments>http://ericlefevre.net/wordpress/2010/07/22/how-we-use-git-at-algodeal/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:14:59 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[algodeal]]></category>
		<category><![CDATA[source control]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=838</guid>
		<description><![CDATA[I&#8217;ve talked recently with the CTO of a small-but-successful company, trying to explain how we do software development. I realized that many things are difficult for them to copy from us, mostly because we have a different approach to implementing features (in particular, we try to limit GUI-intensive features, while they have a very rich [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve talked recently with the CTO of a small-but-successful company, trying to explain how <a href="http://algodeal.com/">we</a> do software development. I realized that many things are difficult for them to copy from us, mostly because we have a different approach to implementing features (in particular, we try to limit GUI-intensive features, while they have a very rich Javascript interface).</p>
<p>One thing, however, that I believe they can adopt without changing their code is the source code management tool <a href="http://git-scm.com/">Git</a>. However, they had already considered it (they are currently using <a href="http://subversion.apache.org/">Subversion</a>) and figured that it does not solve problems they already have.</p>
<p style="text-align: left;"><a title="The Gits by dreamsjung, on Flickr" href="http://www.flickr.com/photos/dreamsjung/2641454736/"><img class="aligncenter" src="http://farm4.static.flickr.com/3169/2641454736_ac245b038e.jpg" alt="The Gits" width="375" height="500" /></a></p>
<p>I&#8217;d agree that Git doesn&#8217;t fix obvious problems. However, Git is powerful enough (once the complexity is mastered) to make lots of little things easier. Here is what it does for us.</p>
<ul>
<li>It makes merges <em>much</em> less painful, even when no branched are involved, for example when two developers modify the same file. With Git, it is possible for someone to move a file to a different package, while another developer renames it simultaneously. And removes half of the content. Git (almost always) magically resolves the conflicts and maintains the history of the file, <a href="http://marc.info/?l=git&amp;m=116473016012824">all without any special command</a>. No need for &#8220;svn move&#8221; or &#8220;svn rename&#8221;. And no code freeze when someone renames a package, so we tend to do refactorings more often.</li>
<li>When a regression is detected late, Git can help find the faulty commit. That can be done automatically if you can write a script that detect the bug (for example if there was no automated failing test in the faulty commit), but that&#8217;s not necessary. For example, it helped us find at what point &#8220;mvn eclipse:eclipse&#8221; stopped working (it was because we enforced maven 3 usage in the POMs). The command that does this is &#8220;<a href="http://blog.javabien.net/2010/03/23/git-bisect-might-save-your-day/">git bisect</a>.&#8221;</li>
<li>The entire source repository is on the developer&#8217;s machine (this is configurable). This gives us free backup across all our machines, and instantaneous access to <a href="http://learn.github.com/p/log.html">logs</a>. In the same spirit, I frequently use <a href="http://book.git-scm.com/5_finding_issues_-_git_blame.html">git blame</a> to find out who wrote what on a particular piece of code, so that I can ask them for clarifications.</li>
<li>There are no access rights to manage (though users&#8217; accounts on the server machine, if you choose to have one, <a href="http://lwn.net/Articles/246381/">as many do</a>, are still necessary).</li>
<li>Suppose you&#8217;re working on something, but must suspend that work temporarily to fix a bug. In SVN, either you cancel all your changes, or re-download the entire code base in a separate directory. Or count on the fact that changes won&#8217;t overlap (maybe). In Git, you can temporarily put your changes on the side, do your fix, then retrieve them back again. This is known as &#8220;<a href="http://ariejan.net/2008/04/23/git-using-the-stash/">git stash</a>&#8220;.</li>
<li>If by any chance it is necessary to roll a fix in production, it is possible to hand-pick changes with &#8220;<a href="http://technosophos.com/content/git-cherry-picking-move-small-code-patches-across-branches">git cherry-pick</a>&#8220;. My colleagues often use this.</li>
<li>Generally speaking, there is much less mangling of the code base (none of the infamous &#8220;<a href="http://stackoverflow.com/questions/158664/what-to-do-when-svn-cleanup-fails">svn cleanup</a>&#8220;)</li>
</ul>
<p>None of these features are absolutely necessary. But all together, they make life easier for us. It even let do <a href="http://blog.javabien.net/2009/12/01/serverless-ci-with-git/">serverless CI</a>.</p>
<p><a href="http://twitter.com/sdouche">Sebastien Douche</a> has said during a presentation at <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20100511">a recent Paris JUG evening</a> that <a href="http://en.wikipedia.org/wiki/Distributed_Version_Control_System">DVCS</a> are the one thing that all developers should learn in 2010. I think he&#8217;s right.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/qyKg1vgYa3E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2010/07/22/how-we-use-git-at-algodeal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2010/07/22/how-we-use-git-at-algodeal/</feedburner:origLink></item>
		<item>
		<title>Bob Martin on TDD in Clojure</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/-N6Wh_j7HbI/</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>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/-N6Wh_j7HbI" height="1" width="1"/>]]></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>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2010/06/04/bob-martin-on-tdd-in-clojure/</feedburner:origLink></item>
		<item>
		<title>AppArmor: how to fix the Create New User issue with logprof</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/SrqJY5HU7LM/</link>
		<comments>http://ericlefevre.net/wordpress/2009/11/23/apparmor-how-to-fix-the-create-new-user-issue-with-logprof/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:24:18 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=805</guid>
		<description><![CDATA[We have started to use AppArmor as a way to strengthen the security on our platform. A reasonably good tool for which you can find rather straightforward tutorials.
  
Portrait of a young woman dressed as Boadecia or Mother England by         Powerhouse Museum
AppArmor is a tool that [...]]]></description>
			<content:encoded><![CDATA[<p>We have started to use <a href="http://en.opensuse.org/AppArmor">AppArmor</a> as a way to strengthen the security on our platform. A reasonably good tool for which you can find <a href="http://www.overclock.net/linux-unix/517324-tutorial-secure-ubuntu-apparmor.html">rather straightforward tutorials</a>.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/24785917@N03/3640355880"> <img src="http://farm4.static.flickr.com/3366/3640355880_1093e7dcc0.jpg" alt="Portrait of a young woman dressed as Boadecia or Mother England" width="217" height="300" /> </a><br />
<a href="http://www.flickr.com/photos/24785917@N03/3640355880">Portrait of a young woman dressed as Boadecia or Mother England</a> by         <a href="http://www.flickr.com/people/24785917@N03">Powerhouse Museum</a></p>
<p>AppArmor is a tool that can explicitly allow or deny actions by some applications. Those actions are recorded in a profile. Many profiles are already available, for such tools as Firefox, but sometimes it is necessary to create your own. This was the case for us: we wanted to make sure using <a href="http://www.mono-project.com/">Mono</a> was not too much of a risky endeavor (we run investment strategies written by our users in .NET).</p>
<p>Creating a profile for AppArmor can be done is a couple of ways. One is to run the application you want to lock down in record (&#8221;complain&#8221;) mode, check the logs produced by AppArmor and select the corresponding rules you want to enforce. The tool that checks the logs and produces the profile containing the rules is logprof, generally run with the aa-logprof command.</p>
<p>Last morning, when I merrily tried to run logprof, it prompted me at the end of the process to create a user.</p>
<blockquote><p><code>Create New User?<br />
(Y)es / [(N)o]</code></p></blockquote>
<p>I didn&#8217;t know what &#8220;Creating a user&#8221; meant here. And, at this point, there is nothing useful to do. Whether you reply Yes or No, you are always prompted for a username and password, then asked whether you want to save the configuration, which inevitably ends with a Login failure, and you are back to the Create a User question (Ctrl-C to get out). Here is the whole trace:</p>
<blockquote><p><code>Updating AppArmor profiles in /etc/apparmor.d.<br />
Create New User?</code></p>
<p><code>(Y)es / [(N)o]<br />
Username: noideawhatmyusernameis<br />
Password: noideawhatthepasswordis<br />
</code></p>
<p><code>Save Configuration?</code></p>
<p><code>[(Y)es] / (N)o</code></p>
<p><code>Login failure<br />
Please check username and password and try again.<br />
RPC::XML::Client::send_request: HTTP server error: Not Found</code></p>
<p><code>Create New User?</code></p></blockquote>
<p>It took me a while to understand what was going on, so I&#8217;m writing this post in the hope that it will help someone (possibly me, in the not-so-distant future).</p>
<p>The <em>user<span style="font-style: normal;"> here r</span></em>efers in fact to a user on the central, public repository for AppArmor profiles. You do not normally need a login for downloading profiles, but logins are required to upload them. Now, I obviously do not want to upload my profiles, so what&#8217;s the deal?<br />
In all likelihood, I must have enabled the upload of profiles at some point, possibly when I was trying to figure out what AppArmor was doing. There is a way to undo that, but very little documentation and few discussions about it on the internet.<br />
I finally found it on <a href="http://www.novell.com/documentation/apparmor/book_apparmor21_admin/?page=/documentation/apparmor/book_apparmor21_admin/data/sec_apparmor_repo.html">Novell&#8217;s site</a>.</p>
<p>In the end, here is what you need to do:</p>
<ol>
<li>move to /etc/apparmor (and <em>not</em> /etc/apparmor.d, which is the directory where the profiles are saved)</li>
<li>edit repository.conf</li>
<li>in the [repository] section, replace upload = yes with upload = no</li>
</ol>
<p>All done!</p>
<p>Footnote: the status of AppArmor is not clear to me. Wikipedia indicated that <a href="http://en.wikipedia.org/wiki/Apparmor">Novell has fired the original team that developed it</a> and indeed Novell&#8217;s site <a href="http://www.novell.com/documentation/apparmor/">only points to AppArmor v2.1 and earlier</a>. A Google search returns many links to Ubuntu and indeed Karmic Koala comes with v2.3.1 (the latest, AFAIK), but <a href="https://wiki.ubuntu.com/AppArmor">Ubuntu pages do not offer very advanced documentation</a>. <a href="http://www.novell.com/documentation/apparmor/">Novell does have the best documentation</a> but is strangely not well referenced on Google and the documentation only goes until v2.1, which is not impressive. <a href="http://forge.novell.com/modules/xfmod/project/?apparmor">The official development site is hosted by Novell</a>, but it only mentions v2.3beta and has not seen any release seen mid-2008. Finally, a similar tool, <a href="http://en.wikipedia.org/wiki/TOMOYO_Linux">Tomoyo</a>, <a href="http://kernelnewbies.org/Linux_2_6_30#head-eeb259e0ba81d96d59015b8f79456d9a5283c650">has been merged into the Linux kernel v2.6.30 since mid-2009</a>. So I think that, once we will have move all our servers to Karmic, we&#8217;ll dump AppArmor.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/SrqJY5HU7LM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/11/23/apparmor-how-to-fix-the-create-new-user-issue-with-logprof/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/11/23/apparmor-how-to-fix-the-create-new-user-issue-with-logprof/</feedburner:origLink></item>
		<item>
		<title>Predictions for CITCON Europe 2009</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/LkHlO89GBJQ/</link>
		<comments>http://ericlefevre.net/wordpress/2009/09/28/predictions-for-citcon-europe-2009/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 06:45:17 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=780</guid>
		<description><![CDATA[Last year, at CITCON Amsterdam 2008, a few of us stayed late into the night, drinking beer and discussing the state of the world.
And what to do when you have 21 geeks with time on their hands? Why, predictions, of course! (I want to do it again this year, check out the Google Moderator page [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, at CITCON Amsterdam 2008, a few of us stayed late into the night, drinking beer and discussing the state of the world.</p>
<p>And what to do when you have 21 geeks with time on their hands? Why, predictions, of course! (I want to do it again this year, <a href="http://bit.ly/2JEjbC">check out the Google Moderator page I&#8217;ve started</a>)</p>
<p style="text-align: center;"><a title="Bar at the Marriott Hotel by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/2914682691/"><img class="aligncenter" src="http://farm4.static.flickr.com/3022/2914682691_e410702e60.jpg" alt="Bar at the Marriott Hotel" width="500" height="375" /></a></p>
<p>We decided to come up with a number of predictions (and bet on them), some serious, some not, that would be verified at CITCON Europe 2009, the price being beer points. And, the losers will be named and shamed, while the winners will be glorified (at least until new predictions are made, and for no more than a year, whichever is earliest).</p>
<p>Here are the predictions, and the actual outcome (a couple of them were settled by votes at the closing session):</p>
<table border="0">
<thead>
<tr>
<td>Prediction</td>
<td>Votes</td>
<td>Actual</td>
</tr>
</thead>
<tbody>
<tr>
<td>CITCON Europe has more than 120 attendees (I had voted against!!)</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>more .NET developers than Java developers</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>CITCON will take place in Paris</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>at least 5% of attendees are female (I personally did vote in favor)</td>
<td>yes</td>
<td>NO</td>
</tr>
<tr>
<td>at least 20% of participants do Ruby</td>
<td>draw</td>
<td>NO</td>
</tr>
<tr>
<td>Java closures are considered too complex</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>IBM buys ThoughtWorks</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>IBM buys Valtech</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>there is a Maven.NET coded in Java, with MS Tools integration</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>Ivan Moore gives up on build-o-matic</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>McCain wins the election</td>
<td>draw</td>
<td>NO</td>
</tr>
<tr>
<td>CITCON Europe takes place in Frankfurt</td>
<td>NO</td>
<td>NO</td>
</tr>
<tr>
<td>Jeffrey Fredrick XOR Tom Sulston (that is, either Jeffrey or Tom, but not both) have short hair</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>Fewer Agile Consultancies</td>
<td>NO</td>
<td>NO</td>
</tr>
</tbody>
</table>
<p>So, out of 14 predictions, we got 11 right, 1 wrong, and 2 undecided.<br />
Now, you may think that the answers were straightforward. But you need to realize that, for each one of them, someone was willing to bet a beer against the consensus. In other words, at the time when the predictions were made, it was not clear cut.</p>
<p>In the interest of the bets, I shall now reveal the names.<br />
Winners (Glory to Them All!)</p>
<ul>
<li> Andrew Parker (8 rights, 1 wrong)</li>
<li>Eric Lefevre (that&#8217;s me) (10 rights, 2 wrongs)</li>
<li>Guillaume Tardif (6 rights, no wrongs)</li>
<li>Jean-Michel Bea (8 rights, 2 wrongs)</li>
<li>Pekka Pietikäinen (7 rights, 2 wrongs)</li>
</ul>
<p>Losers (Boo to Them All!)</p>
<ul>
<li>Julian Simpson (3 rights, 4 wrongs)</li>
<li>Jeffrey Fredrick (3 rights, 6 wrongs)</li>
<li>Paul Julius (5 rights, 2 wrongs) &#8212; PJ is still a loser, &#8216;cos he has been right on bets with small payoffs</li>
<li>Tom Sulston (4 rights, 4 wrongs)</li>
</ul>
<p>I have started a new series of predictions for CITCON Europe 2010. There are two steps:</p>
<ol>
<li>suggest predictions &amp; vote for the best ones</li>
<li>when predictions have been selected, vote</li>
</ol>
<p>To actually win your beers, you&#8217;ll have to come to CITCON Europe 2010 (still unannounced).<br />
Please check out the <a href="http://bit.ly/2JEjbC">Google Moderator page</a> to propose your own predictions.</p>
<p style="text-align: left;"><a title="Sorting out the bets from 2008 by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3936962407/"><img class="aligncenter" src="http://farm3.static.flickr.com/2637/3936962407_92acc456f3.jpg" alt="Sorting out the bets from 2008" width="333" height="500" /></a>If you want to the gritty details, <a href="http://www.flickr.com/photos/elefevre/3937737658/in/set-72157622419361134/">I have a picture of the full spreadsheet</a>.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/LkHlO89GBJQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/09/28/predictions-for-citcon-europe-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/09/28/predictions-for-citcon-europe-2009/</feedburner:origLink></item>
		<item>
		<title>CITCON Paris 2009, a personal retrospective of the organization</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/Xbq5Uqaln5g/</link>
		<comments>http://ericlefevre.net/wordpress/2009/09/23/citcon-paris-2009-a-personal-retrospective-of-the-organization/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 06:21:36 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=740</guid>
		<description><![CDATA[
As I write this, I have still not fully recovered from CITCON Paris 2009. This conference being one where I have been involved a lot into its organization, I would like to indulge in a bit of personal retrospective.
What worked:
* we had more than 120 participants, which is in line with CITCON&#8217;s goals and the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Closing session by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3937723988/"><img class="aligncenter" src="http://farm3.static.flickr.com/2640/3937723988_95b61ec897.jpg" alt="Closing session" width="500" height="281" /></a></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">As I write this, I have still not fully recovered from CITCON Paris 2009. This conference being one where I have been involved a lot into its organization, I would like to indulge in a bit of personal retrospective.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">What worked:</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* we had more than 120 participants, which is in line with CITCON&#8217;s goals and the highest number ever in 15 events. Also, it is very close to the number we estimated ourselves.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* all the people in the waiting list have eventually been able to join the main registration list; no one was barred from coming</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* costs well were contained, especially thanks to the use of ISEP&#8217;s rooms; in fact, this event contributed hugely to settle debts from the past events</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* sessions were mostly on topics relevant to the conference</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* quality of food was fine (especially for a free event)</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* there were many well-known people, helping make the event a success for other participants</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">What could have worked better:</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* there was not enough food. I think this is partly because the caterer is not a real professional. Even though we had given excellent estimated for the number of participants, I think that, as the person in charge of the student foyer, he was used to students eating on a budget, not professionals used to (relatively) fancy eating. If we use a semi-professional in the future, we would be wise to over-estimate the number of participants for the purpose of food. Just in case.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* even though we did arrange the chairs in the main room in circles, we left the other rooms as they were, theater-style. This didn&#8217;t help having discussions groups (as opposed to presentations).</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">* I am starting to wonder if we have not reach the maximum possible number of participants. One of the things that I really enjoyed last year was the late night drinks with the few that dared stay. This year, we were 30 or 40 at the end. Groups started to split up. Guillaume and I led a few to the Ti Jos bar and to the Caveau des Oubliettes. Although nice, it was a bit sad, as there wasn&#8217;t really a &#8220;closing the closing&#8221; moment. We didn&#8217;t ever get to do new predictions! (and settle last year&#8217;s bets, BTW)</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">On a more personal note, the conference passed a bit as a blur for me. Despite using OpenSpace Technology, I still ended up as the contact person. Also, helping my brother with the filming didn&#8217;t help.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">In the end, I even managed to miss the (now traditional) &#8220;Is Scrum Evil?&#8221; session, which had been a favorite of mine last year.</div>
<p>As I write this, 3 days after the closing, I have still not fully recovered from <a href="http://citconf.com/paris2009/">CITCON Paris 2009</a>. I have been very much involved in organizing this edition, so I would like to indulge in a bit of personal retrospective, mostly on the organization of the conference. This is basically self-reflexion; if that&#8217;s not your thing, you can leave. You won&#8217;t miss much.</p>
<p>Here goes.</p>
<p>What worked at the conference:</p>
<ul>
<li>we had more than 120 participants, which is in line with CITCON&#8217;s goals and the highest number ever in all 11 events. Also, it is very close to the number we had estimated ourselves.</li>
<li>all the people in the waiting list have eventually been invited to join the main registration list; no one was left behind</li>
<li>costs were well under control, especially thanks to the free use of ISEP&#8217;s classrooms</li>
<li>we got significant money from sponsors; in fact, combined with the well-contained expenses, this event contributed hugely to settle debts from the past events</li>
<li>quality of food was alright (especially for a free event)</li>
<li>there were a number of well-known people, helping make this event special for other participants</li>
<li>twittering was big; according to my feed on Google Reader, there were <a href="http://twitter.com/elefevre/statuses/4125558777">more than 300 tweets</a>. Including quite a few from <a href="http://twitter.com/elefevre/statuses/4102258884">people regretting</a> <a href="http://twitter.com/elefevre/statuses/4103238842">not to have come</a>.</li>
</ul>
<p>What could have worked better:</p>
<ul>
<li>there was not enough food. I think this is partly because the caterer is not a real professional. Even though we had given good estimates for the number of participants, I think that, as the person in charge of the student foyer, he was used mostly to students eating on a budget. If we use such a semi-professional in the future (likely, since we want to use more free venues such as universities), we would be wise to over-estimate the number of participants as far as food is concerned. Just in case.</li>
<li>Even though we did arrange the chairs in the main room in circles, we left the other rooms as they were, theater-style. This didn&#8217;t help having involved discussions (as opposed to presentations).</li>
<li>I&#8217;m wondering if we have not reached the maximum possible number of participants. One of the things that I really enjoyed last year was the late night drinks with the few that dared stay. This year, we were 30 or 40 at the end. Groups started to split up. <a href="http://guillaume.tardif.free.fr/">Guillaume</a> and I led a few to the <a href="http://www.restaurant-tijos.com/">Ti Jos bar</a> and to the Caveau des Oubliettes. Although nice, it was a bit sad, as there wasn&#8217;t really a &#8220;closing the closing session&#8221; moment. We didn&#8217;t even get to do new predictions! (and settle last year&#8217;s bets, BTW).</li>
<li>Some rooms were lacking a video projector. I wonder if it would be good investment for the Open Information Foundation to buy one of those small and inexpensive projectors that have appeared recently on the market</li>
</ul>
<p>On a more personal note, the conference passed a bit like a blur for me. Despite using <a href="http://citconf.com/paris2009/openspace.php">OpenSpace Technology</a>, I still ended up as the contact person for many participants, suppliers and sponsors, which was distracting. Also, helping <a href="http://www.shootingducksprod.com/">my brother</a> with the filming didn&#8217;t help. I even managed to miss out on the (now traditional) &#8220;Is Scrum Evil?&#8221; session, which had been a favorite of mine last year.</p>
<p>I still had a great time. Met <a href="http://am.testingreflections.com/">Antony Marcano</a> and <a href="http://andypalmer.com/">Andy Palmer</a> from <a href="http://pairwith.us/">Pair With Us</a> (they are hoping to join us at the <a href="http://xp-france.net/cgi-bin/wiki.pl?DojoDeveloppement">Paris Coding Dojo</a> sometime &#8212; looking forward to it) as well as <a href="http://ericlefevre.net/wordpress/2008/09/11/everything-is-vague-to-a-degree-you-do-not-realise-till-you-have-tried-to-make-it-precise/">Gojko Adzic</a>, whose copies of book was given away to some lucky participants, and Jason Sankey and Daniel Ostermeier from <a href="http://zutubi.com/">Zutubi</a>&#8230; Reconnected with many former colleagues and friends, too. I also attended <a href="http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/">a few</a> <a href="http://ericlefevre.net/wordpress/2009/09/22/faster-tests-at-citcon-paris-2009/">sessions</a> ;-)</p>
<p>Oh, and last but not least, I&#8217;m <a href="http://www.flickr.com/photos/elefevre/3936962407/in/set-72157622419361134/">one of the winners from last year&#8217;s bets</a>! What do I win? Well, beer, in theory. But, even better, I get to call PJ, Jeffrey, Tom, Julian and Yegor LOSERS for a year. Priceless.</p>
<p>Check out</p>
<ul>
<li><a href="http://www.flickr.com/photos/elefevre/sets/72157622419361134/">all my pictures</a> from the conference (pictures by others <a href="http://citconf.com/wiki/index.php?title=Photos#CITCON_Europe_2009_Paris">there</a>)</li>
<li><a href="http://citconf.com/wiki/index.php?title=OnTheWeb#CITCON_Europe_2009_Paris_France">all the blog posts</a> by participants</li>
<li>my notes on the session on <a href="http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/">Mock Objects</a></li>
<li>my notes on the session on <a href="http://ericlefevre.net/wordpress/2009/09/22/faster-tests-at-citcon-paris-2009/">Faster Tests</a></li>
<li>all the <a href="http://citconf.com/wiki/index.php?title=CITCONEurope2009Sessions">notes on the sessions</a></li>
</ul>
<p>See you next year, in one of the five cities in our short list (Zürich, Copenhagen, Belgrade, Dublin, and Prague).</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/Xbq5Uqaln5g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/09/23/citcon-paris-2009-a-personal-retrospective-of-the-organization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/09/23/citcon-paris-2009-a-personal-retrospective-of-the-organization/</feedburner:origLink></item>
		<item>
		<title>Faster tests, at CITCON Paris 2009</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/63_Gpkin2TQ/</link>
		<comments>http://ericlefevre.net/wordpress/2009/09/22/faster-tests-at-citcon-paris-2009/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 08:11:52 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=751</guid>
		<description><![CDATA[
&#8220;Going nowhere fast&#8221; by Nathan
The session on Faster Tests (led by David) was interesting, at least to the extend that it was quite clear that we are not doing too bad indeed (Douglas Squirrel from youDevise is another one that seems to be quite cerebral about tests and builds).
 
By looking that the various options discussed to [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "><a href="http://www.flickr.com/photos/7843389@N02/2300190277"><img style="border: 0px initial initial;" src="http://farm3.static.flickr.com/2036/2300190277_360853ae0d.jpg" alt="&quot;Going nowhere fast&quot;" width="300" height="225" /></a></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "><a href="http://www.flickr.com/photos/7843389@N02/2300190277">&#8220;Going nowhere fast&#8221;</a> by <a href="http://www.flickr.com/people/7843389@N02">Nathan</a></p>
<p>The session on Faster Tests (led by <a href="http://javabien.net/">David</a>) was interesting, at least to the extend that it was quite clear that <a href="http://www.tech4quant.com/">we</a> are not doing too bad indeed (Douglas Squirrel from <a href="http://www.youdevise.com/">youDevise</a> is another one that seems to be quite cerebral about tests and builds).</p>
<p style="text-align: center;"><a title="Faster tests by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3944199578/"><img src="http://farm3.static.flickr.com/2676/3944199578_9c4a90e93e_m.jpg" alt="Faster tests" width="240" height="180" /></a> <a title="Faster tests by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3944199432/"><img src="http://farm3.static.flickr.com/2655/3944199432_fe41e0d716_m.jpg" alt="Faster tests" width="240" height="180" /></a></p>
<p>By looking that the various options discussed to get tests faster, I think it&#8217;s fair to say that the only way to really speed up tests is by compromising their integrity, at least to a level. In a way, to make tests faster, you&#8217;ve got to face reality and move away from their ideal abstraction (very reminiscent of Joel Spolsky&#8217;s <a href="http://ericlefevre.net/wordpress/2009/05/06/maven-it-aint-too-bad/">Law of Leaky Abstractions</a>). The only question is: how confident are you that those (slightly compromised) tests actually test something useful?</p>
<p>This leads to the conclusion that we only keep long integration tests because it is difficult for us to really understand what&#8217;s going on. If we did have an excellent understanding, we would have unit tests instead. And, interestingly, as we progress in our project, we find ways to convert integration tests into unit tests. In other words, we better understand what&#8217;s going on.</p>
<p>Also, check out my notes on the <a href="http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/">session on Mock Objects</a>.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/63_Gpkin2TQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/09/22/faster-tests-at-citcon-paris-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/09/22/faster-tests-at-citcon-paris-2009/</feedburner:origLink></item>
		<item>
		<title>Mock objects at CITCON Paris 2009</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/iHj_o6cBhMU/</link>
		<comments>http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:47:23 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[citcon]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=743</guid>
		<description><![CDATA[
The Mock Turtle by Samantha Carlson
The session on mock objects, mostly lead by Steve Freeman, was a bit messy but interesting. My colleague David got to show some of our code on the screen, which was scary and exciting (he felt the urge to fix some of the tests he had shown immediately after). Also, I think I finally [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "><a href="http://www.flickr.com/photos/21639907@N00/2828758375"><img style="border: 0px initial initial;" src="http://farm4.static.flickr.com/3020/2828758375_70b2d4c027.jpg" alt="The Mock Turtle" width="193" height="300" /></a></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "><a href="http://www.flickr.com/photos/21639907@N00/2828758375">The Mock Turtle</a> by <a href="http://www.flickr.com/people/21639907@N00">Samantha Carlson</a></p>
<p>The <a href="http://citconf.com/wiki/index.php?title=MockObjects">session on mock objects</a>, mostly lead by <a href="http://www.mockobjects.com/">Steve Freeman</a>, was a bit messy but interesting. My colleague <a href="http://javabien.net/">David</a> got to show some of our code on the screen, which was scary and exciting (he felt the urge to fix some of the tests he had shown immediately after). Also, I think I finally understood the relation between mock objects and interfaces that Steve insists on.</p>
<p>See, I always thought that Steve was in favour in adding interfaces directly on top of concrete classes. For example, if you have a FileManager, you would also have a IFileManager.</p>
<p>Steve made more clear that the idea was to use interfaces to represent a role, or (more exactly) just one of the roles that a class has. That makes sense. But, to be honest, I still prefer to have a single role per class. So, no interfaces really needed.</p>
<p>I wish I had more time to talk with Steve. Maybe his <a href="http://www.amazon.com/gp/product/0321503627?ie=UTF8&amp;tag=ericlefevre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321503627">coming book</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=0321503627" border="0" alt="" width="1" height="1" /> will have answers for me.</p>
<p style="text-align: center;"><a title="Mock objects by elefevre7, on Flickr" href="http://www.flickr.com/photos/elefevre/3936909599/"><img class="aligncenter" src="http://farm3.static.flickr.com/2481/3936909599_99d9f73924_m.jpg" alt="Mock objects" width="160" height="240" /></a></p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/iHj_o6cBhMU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/09/21/mock-objects-at-citcon-paris-2009/</feedburner:origLink></item>
		<item>
		<title>Interviewed by François Beauregard</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/7lKzOFliFNo/</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>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/7lKzOFliFNo" height="1" width="1"/>]]></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" />
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/09/10/interviewed-by-francois-beauregard/</feedburner:origLink></item>
		<item>
		<title>[Agile 2009] What’s in the conference for Java developers?</title>
		<link>http://feedproxy.google.com/~r/EricLefevre/~3/8edT3grrJV4/</link>
		<comments>http://ericlefevre.net/wordpress/2009/08/05/agile-2009-whats-in-the-conference-for-java-developers/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 17:26:58 +0000</pubDate>
		<dc:creator>Eric Lefevre-Ardant</dc:creator>
				<category><![CDATA[agile2009]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://ericlefevre.net/wordpress/?p=714</guid>
		<description><![CDATA[Agile 2009 is not just for Agile coaches or project managers. About one in three participants qualify herself as a developer or a technical leader. And the program reflects that.
Amongst the activities that might interest fans of the Java:

the Programming with the Stars contest where pairs of developers wll be demonstrate their programming skills in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/7989285@N07/1794265047"><img class="alignright" style="border: 0px initial initial;" title="quintessence by Demion" src="http://farm3.static.flickr.com/2244/1794265047_4cea389467.jpg" alt="quintessence" width="300" height="200" /></a>Agile 2009 is not just for Agile coaches or project managers. About one in three participants qualify herself as a <em>developer</em> or a <em>technical leader</em>. And the program reflects that.</p>
<p>Amongst the activities that might interest fans of the Java:</p>
<ul>
<li>the <a href="http://agile2009.wordpress.com/2009/07/19/programming-with-the-stars-coders-wanted/">Programming with the Stars contest</a> where pairs of developers wll be demonstrate their programming skills in front of a panel of three wise men. The language is up to the developers.</li>
<li>the <a href="http://agile2009.agilealliance.org/developers">Developer Jam stage</a>, particularly dedicated to programmers</li>
<li>another stage that might be of interest is <a href="http://agile2009.agilealliance.org/tools">Tools For Agility</a></li>
<li>Java developers might also relate to the <a href="http://agile2009.wordpress.com/2009/07/13/meet-david-agile-developer/">Agile developer</a>, <a href="http://agile2009.wordpress.com/2009/07/21/meet-alex-architect/">Architect</a> and <a href="http://agile2009.wordpress.com/2009/08/10/meet-peter-programmer/">Developer</a> personas</li>
</ul>
<p>Here are a few sessions with Java either as the main topic, or as the language used for demonstration:</p>
<ul>
<li><a href="http://agile2009.agilealliance.org/node/1146">Emergent Design &amp; Evolutionary Architecture</a> with none other than Neal Ford</li>
<li><a href="http://agile2009.agilealliance.org/node/1307">Scala: Object-Oriented and Functional Programming for the JVM</a> by Dean Wampler</li>
<li><a href="http://agile2009.agilealliance.org/node/2826">How to make your testing more Groovy</a> by Paul King and Craig Smith</li>
<li><a href="http://agile2009.agilealliance.org/node/1211">Agile AJAX: The Google Web Toolkit Experience</a>, presented by Daniel Wellman and Paul Infield-Harm</li>
<li><a href="http://agile2009.agilealliance.org/node/1335">Creating Habitable Code: Lessons in Longevity from CruiseControl</a>, with Jeffrey Fredrick and Paul Julius</li>
<li><a href="http://agile2009.agilealliance.org/node/166">Java and Ruby Tools for Code Quality</a>, by Steve Hayes</li>
</ul>
<p>For some other sessions, Java is not central, but will be at least mentioned:</p>
<ul>
<li><a href="http://agile2009.agilealliance.org/node/1417">SOA and Color Modeling</a> by Daniel Vacanti and Stephen Palmer</li>
<li><a href="http://agile2009.agilealliance.org/node/402">Coding Dojo: Enhancing Legacy Code</a>, presented by Guillaume Tardif and myself</li>
<li><a href="http://agile2009.agilealliance.org/node/415">Executable requirements: BDD with easyb and JDave</a> (will also mention Groovy), with  John Smart and Lasse Koskela</li>
<li><a href="http://agile2009.agilealliance.org/node/909">Clean Code III: Functions</a>, with Robert Martin</li>
<li><a href="http://agile2009.agilealliance.org/node/1414">BDD clinic &#8211; the doctor is in</a>, by Pat Maddox and Elizabeth Keogh</li>
<li><a href="http://agile2009.agilealliance.org/node/1708">Malleable Code:  How Tests Improve Production Code</a>, by Eric Anderson</li>
<li><a href="http://agile2009.agilealliance.org/node/432">Back to Basics &#8211; Writing Expressive Tests Without All The Wizardry</a>, with Rod Coffin</li>
<li><a href="http://agile2009.agilealliance.org/node/713">Test Driven Development in Java: Live and Uncensored</a>, with Ben Rady</li>
<li><a href="http://agile2009.agilealliance.org/node/1276">Acceptance Testing Java Applications with Cucumber, RSpec, and JRuby</a>, with Dean Wampler and Aslak Hellesøy</li>
<li><a href="http://agile2009.agilealliance.org/node/482">Java Power Tools &#8211; getting it all together</a>, with John Smart</li>
<li><a href="http://http://agile2009.agilealliance.org/node/494">Applying Agile Development Practices to Atypical Technologies</a>, from Scott Dillman</li>
<li><a href="http://agile2009.agilealliance.org/node/3183">Mission Impossible: TDD and JavaScript</a>, by James Suchy</li>
<li><a href="http://agile2009.agilealliance.org/node/434">Leveraging Maven 2 for Agility</a>, with Tim Andersen and Luke Amdor</li>
<li><a href="http://agile2009.agilealliance.org/node/399">Automated deployment with Maven and friends &#8211; going the whole nine yards</a>, from John Smart</li>
<li><a href="http://agile2009.agilealliance.org/node/863">Growing Object-Oriented Software, Guided by Tests</a>, by Steve Freeman</li>
</ul>
<p>Check out the <a href="http://agile2009.agilealliance.org/programOverview">entire program on conference site</a>!</p>
<p>Update (06/08/2009): should have mentioned that the Cast Codeurs podcast pretty much have <a href="http://lescastcodeurs.com/2009/08/les-cast-codeurs-podcast-episode-7-le-dsl-et-ses-amantes/">the same information in French</a>.</p>
<img src="http://feeds.feedburner.com/~r/EricLefevre/~4/8edT3grrJV4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ericlefevre.net/wordpress/2009/08/05/agile-2009-whats-in-the-conference-for-java-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ericlefevre.net/wordpress/2009/08/05/agile-2009-whats-in-the-conference-for-java-developers/</feedburner:origLink></item>
	</channel>
</rss>
