JavaCampParis3 is on!

I am very excited to let you know that my colleague Anthony and I are organizing a BarCamp related to Java programming and everything that goes around it. Quite a few people have registered already. A lot of the topics that people are interested in discussing include TDD, tests and build tools, but also alternative languages for the Java platform. Interested in them? or in other? Register today!

Don’t know what a BarCamp is? well, it basically works like an Open Space Conference: the participants (you!) bring topics that they are willing to talk or discuss about. They get sorted at the beginning of the day in an open agenda and people go to topics they are most interested in.

This BarCamp will last the whole day. Sun is kindly letting us use their fancy offices in Paris, near the Champs Elysées, and my employer, Valtech, is paying for the food.

Come and join us! It will be fun.

Posted in conferences, java | Leave a comment

Agile Alliance Meeting in Paris

Hall

As you might know, the AA board is meeting in person a couple of times a year and, for once, they decided to reach out to the crowd. This time, it happened in Paris.

Not much talking that evening; mostly networking, really. I got to talk to a few people that I had seen at Agile 2008, but couldn’t meet, because of the huge crowd. It’s too bad I couldn’t stay for drinks, since I was giving a training the following day.

Check out my pictures.

Posted in agile | Leave a comment

Fixed display errors in French translation to Hudson

I think I have finally fixed (most) errors in the display of the French translation in Hudson. 3 different people reported them to me, which is a sign that Hudson enjoys a strong following in France (I also keep stumbling on French Hudson fans in conferences and my colleague Eric Le Merdy has just released a new Hudson plugin for Nabaztag).

The root of the problem is that I incorrectly thought that properties should be encoded in UTF-8 (in fact, only help pages in HTML should be). In practice, properties files should stay in classic ISO 8859-1.

I didn’t keep trace of which files I had incorrectly converted to UTF-8 and I don’t know of a tool that could check that for me (if you know of one, do let me know). So there is still a chance that some files remain in the incorrect format. If you find any, please create a bug report.

The fix should be available with the next release of Hudson, v.1.269, which should be a matter of days, according to history. My progress on the French translation are listed on the Hudson wiki.

Apologies to all that were inconvenienced by this bug.

Posted in hudson | 3 Comments

Bob Martin on Hudson

Yep, you heard it here first: Uncle Bob loves Hudson!

Not content with the videos on Slim, he has just produced another one showing how to do basic staff with Hudson. And by the sound of his voice, he is sold!

Inteerstingly, he compares the simple startup process of Hudson to the one in Fitnesse: just download and run.

Update (14/12/08): Uncle Bob has actually put online his Hudson install

Posted in fit, hudson | Leave a comment

Data types in Slim

After an initial introduction video, one on comparaison operators, Bob Martin has now a video on Data Types in Slim, his Fit replacement in Fitnesse.

Data types in Slim are simple. They can only be Strings and Lists, though it is entirely possible for fixtures to actually get integers.

A list looks like this:

[1, 2, 0.5]

Note the brackets. Also, note the space between the comas and the following value. This is important, as the comparaison will actually be made between the exact string specified in the table, and the String representation of the List returned by the fixture. Hence, the format in toString() is important.

Posted in fit, tdr | Leave a comment

Comparaison operators in Slim for Fitnesse

Now that the release of Slim is done, Bob Martin is spending time producing tutorial videos. The new one is about comparaisons in Slim.

There are two majors things to learn in it:

  • approximate equals
  • ranges

The ~= sign means “approximately equals to”, and depends on the number of decimals; for example,

~=1.3

in a cell will work for any value between 1.2 and 1.4.

A range allows Slim to accept results between boundaries. For example, put something like

1<_<8

in a cell and all values between 1 and 8 will be considered valid. This is something that some versions of Fit could do, but not all. With Slim, all versions of Slim will support this (since it will be evaluated on the Fitnesse side).

Last thing: Fitnesse contains a rather powerful expression evaluator that is not specific to Slim or Fit.
For example:

!define TIMES {1000}
|${=5*${TIMES}=}|

You can combine this construct with the range, and have something like this in your cell:

${=5*${TIMES}=}<_<${=6*${TIMES}=}

which will appear as

5000<_<6000

when viewing your wiki page.

Finally, you might want to watch out for the coming minor release of Fitnesse.

Posted in fit, tdr | 2 Comments

Bob Martin releases Fitnesse with Slim

You are probably familiar with Fitnesse, a wiki site that wraps Fit. It is basically an environment that helps attaching tests to specifications. Some call this a Test-Driven Requirements (TDR) tool. It has been originally written by Robert C Martin (aka Uncle Bob), Micah Martin and Michael Feathers.

Well, Uncle Bob is coming back with Slim, an extension of Fitnesse he has been working on since August 2008, as his followers on Twitter know. It has been released in the latest version of Fitnesse a few days ago.

Simply put, Slim (Simple List Invocation Method) is an alternative to Fit, quite simpler to implement and to use, and integrated with Fitnesse.

The big thing with Slim, for us mere users, is that it calls POJOs. No need to inherit from Fit-specific classes anymore! (something that GreenPepper has had for a long time) You will just have to implement some methods with particular names, depending on the type of fixture you use.

The fixtures that are available are familiar ones:

  • Decision Table, the equivalent of Column Fixture, with input columns and output columns
  • Query Table, the equivalent of Row Fixture; interestingly, its method query() now returns a List of Lists of Lists (!) instead of an Object[]  table
  • Script Table, the equivalent of Do Fixture in FitLibrary; it also shares many caracteristics with ActionFixture
  • finally, Table Table is the way for you to write any arbitrary fixture

Other enhancements include:

  • variables in fixtures can stay private; no need for them to be public anymore; setter methods are required instead. Not a big deal in my view, but something that beginners were often complaining about
  • error messages are clearer in Fitnesse, typically when classes or methods cannot be found in the fixtures
  • as a side effect of an evolution of Fitnesse made necessary by Slim, it is now possible to run tests in differents JVMs
  • Slim is much simpler to implement than Fit is; this is supposed to make ports of it to other languages much easier, more stable, and more consistent (some implementations of Fit do not have the exact same features as others)
  • it should also be possible to write tests without tables (with updates of Slim), which was very difficult with Fit, because of all these implementations; I want to see things like the plain text tests in TextTest !

Convinced? Then the next step for you is to look at the tutorial video Bob Martin did yesterday.

Me, I think this is a great enhancement, and one of the biggest news in the TDR Tools world this year. With Bob Martin’s influence, there is no doubt it will pick up steam quickly.

Posted in fit, tdr | 5 Comments

Back from Open Source eXchange

Conference SignInteresting day at Open Source eXchange, a conference organized by Xebia and SkillsMatter.

It was fun meeting Wendy Devolder (now CEO of SkillsMatter) formerly from Valtech (I worked with her at Valtech London back in 2001-2002) and Michael Isvy (with SpringSource) also ex-former. Also had nice chats with Guillaume Laforge, Alexis Moussine-Pouchkine, Antonio Goncalvez and many others, including 2 more Valtech alumni.

Aside from the presenters, most of the participants seemed to be tech guys working for blue chips.

Overview of the presentations

Michael Isvy from SpringSource did a valuable demonstration of DM Server. I find it surprising that it bets on OSGi (I cannot get myself to like it). But it seems mostly to become a good server, further strengthened by the recent addition of Groovy to their portfolio (post in French).

Spring DM Server seems to be mainly Tomcat + Spring Framework + OSGi. Supposed to be 100% OSS, but it is not easy to guess when looking at their website

Tugdual Grall did an entertaining presentation of eXo Platform. The WebOS part is impressive (but run from the local machine, so presumably much slower when used over the net). But I can’t imagine it winning most hearts. My money is currently on using separate apps such as Google Docs.

Guillaume Laforge, formely from G2One and now with SpringSource, did his classic Groovy/Grails presentation. Not much to add to what he has said at Paris JUG in September.

Oh yes, one thing: he hopes that Groovy will be used to script deployment under Spring DM Server. I totally agree.

Antonio Goncalvez presented JEE6, due for release in 2009 Q2. My feeling is that it is just getting too complex, in the sense that it is getting impossible to know about all its various standards and API (reminding me of the whole SOAP fiasco). The JEE6 team knows about this and has a plan where only subsets would be used. As for me, I think most developers will just stick with Spring or some other simpler options (though I guess Spring is getting less and less simple…).

Another thing: it seems EclipseLink is used as the reference implementation for JPA by GlassFish. EclipseLink is in fact TopLink, only Open Source. Interesting comeback, for a tool considered as dead after the Hibernate landslide.

Alexis Moussine-Pouchkine talked about GlassFish as a full-fledged JEE Server, open source, much faster and still as powerful than Weblogic and WebSphere. Strangely, few references to JBoss, except to mention that it (GlassFish) seems to have more downloads.

Christophe Laprun from JBoss had a session on JBoss Portal. I didn’t follow all of it (did work for Valtech instead). Portals and portlets are not that interesting to me. I’m glad other people work on them.

Hughes le Bars & Oktay Istanbullu from Yahoo! presented Hadoop, a solution to do grid computing for storage of very large data sets (in the order of PetaBytes). I couldn’t quite understand all the presentation, but the whole thing seems terribly interesting. It is used for web search and ads matching by Yahoo!

Oh, Hughes also mentioned PIG, apparently an equivalent of SQL, just better (!).

Drinks were paid after the conference, and a good time was had by all.

Check out my pictures of the conference on flickr.

Posted in conferences, groovy, java, spring | 1 Comment

CITCON Amsterdam Continuous Integration Cage Fight on YouTube

Julian has just posted on YouTube videos he took during the CI Showdown at CITCON Amsterdam last October. Sound quality is not very good, so make sure you are in a quiet environment.

Posted in citcon, continuous integration, hudson | 4 Comments

Hudson can now update itself

Finally! I have been waiting for this for a while. From v1.259, Hudson is now able to update itself automatically (as long as you have installed Hudson as a Windows Service — granted, this might not be the general case).

Another enhancement in v1.259 is that a Hudson distribution can be bundled with plugins. Hudson will extract them properly at first run (which it didn’t do before). Cool, too.

Posted in hudson | 1 Comment

30,000 ScrumMasters and 1,500,000 members of Scrum Teams?!

A look on the ScrumAlliance list of Certified ScrumMasters shows that they have 618 pages each containing 50 names of ScrumMaster. This means more than 30,000 CSMs as of Novembre, 3rd, 2008.

According to an interview of Jeff Sutherland, for every CSM, there are 10 Scrum teams that have not had training.  That is, 300,000 Scrum teams.

Finally, Scrum defines that a team is made of 7 people, give or take 2. Taking the conservative value of 5, this means that we have 1,500,000 people doing Scrum.

One and a half million?! Is it really possible? That said, even taking more conservative numbers, there is no doubt that many people are using (trying to use?) Scrum. The annual Agile Survey showed that more than 60% of agile projects are using Scrum, or Scrum combined with XP.

To be honest, this is probably off the mark but maybe not by an order of magnitude. Some estimates put the number of developers worldwide to something between 8 to 13 millions. I’d be surprised that even 5% of developers worldwide are using Scrum (400,000 to 650,000 individuals), but the 1,500,000 figure contains all people in a scrum team, including some that probably do not qualify as developers, such as business analysts, testers, graphical designers, etc. So it could work.

At least it would explain why many people now start to think that Scrum Is Evil.

Posted in scrum | Leave a comment

Valtech Days: twitter feed gave live updates

At Agile 2008 Conference in Toronto, Brian Marick told us that he wanted a way to give every participant a feel of what was being discussed, some kind of live temperature reading. Brian especially refered to Twitter as a way to do this, coupled with a screen that would display it (he seems to be a big fan of twitter).

Twitter avec l'auteur du client TwitterI am a fresh Twitter user, but I thought this was a good idea and I arranged it for the Valtech Days Paris conference, which took place last week. I got approval from the Great Organizer, a spare laptop from the sysadmins, and my colleague Sadek agreed to implement the client.

Here are some implementation details.

Material used:

  • an internet connection in the conference, preferably through wifi, as cables take a lot of space
  • a spare laptop; make sure that you can affort to waste it, as it might easily get stolen (ours didn’t); also, it needs to be able to run a decent browser with the appropriate plugin and should have a wifi card
  • a video projector
  • participants that use Twitter (no need to have their Twitter IDs)
  • a web client able to display an RSS Feed reasonably cleanly and refresh it frequently — you will probably might need to code this client yourself; in our case, it was implemented in SilverLight (an added bonus) by Sadek in a day or so; another option is to use RSS screen saver, but none I found suited my needs (tried NuParadigm RSS Screensaver -too much space wasted-, rsssaver -can only display one post at a time-, and RSS More -ugly and there is no way to avoid duplicating the post title in the content-)
  • to get around a strange behavior, we had to pipe the RSS feed through FeedBurner

An important step is to figure out the proper keywords that people will use during the conference. In the case of Valtech Days, it was “valtechdays” and “valtech days”. If they are not discriminating enough, then you might have to figure one out and tell participants about it. A convention seems to be to use tags preceded by a pound sign, for example “#valtechdays”. However, it is simpler for conference participants if they don’t have to remember the pound sign.
Once you have your keywords, test them with Twitter Search. Then, keep a copy the URL to the RSS feed provided by Twitter. You should end up with something like http://search.twitter.com/search.atom?q=valtechdays+OR+%22valtech+days%22 (make sure that the URL you get contains %22 in place of the double-quotes).

I am fairly pleased with the result. Posts seemed to take 10-15 mins to be picked up by our client; not great but acceptable. My main concern is that few people actually posted on Twitter at all (with 300 participants, I am personally responsible for more than half the posts during the conference). That said, there was always a couple of people watching the feed — a bit like watching TV. I also noticed that the cameraman, who was there to make a ‘special live report’ on the conference, actually spent quite some time filming the twitter feed ;-)

In my case, I used Twitter to 1) tell about sessions I was following, 2) give interesting information to conference participants, 3) provide additional information on sessions I presented.

Last note: if you cannot get a special client for your feed, you could use Google Reader, as it can at least refresh itself automatically. Of course, this is a very temporary solution, as you probably do not want to stay logged on a machine that can swiftly be stolen.

Flux Twitter

Posted in conferences, twitter, valtech | 4 Comments

More about Coding Dojo at CITCON Amsterdam

As a nice followup to my earlier post, Willem did a great write up of our Coding Dojo session at CITCON Europe, in early October. His post is supplemented with pictures by Marc.

Posted in citcon, tdd | Leave a comment

Valtech Days are tomorrow!

Valtech Days are starting tomorrow! We are all very excited.

I will be presenting 3 things:

  • Retrospectives: the key to continuous improvement, together with Laurent Bossavit
  • A 15-mins demonstration of Hudson
  • Introduction to the Open Space part of the conference
If you will be attending this conference, please come and say hi!
Posted in conferences, hudson, openspace, valtech | Leave a comment

Valtech Days: bio & abstract for Jeff McKenna

Jeff McKenna will be opening the Valtech Days conference on October 21th with a keynote on Agile. We got his bio in English, as well as the abstract for his talk. We duly translated into French, but could not take immediate advantage of the English version.

I thought it would be a good idea to reproduce that version here. The French version is on the conference website.

Talk: Agile: Crossing the Chasm

Description: Agile Software Development is moving to a new level of acceptance in the industry. Geoffrey Moore has famously called this transition Crossing the Chasm. As this occurs, a number of significant changes in the rate and manner of acceptance of Agile are happening. These changes are often accompanied by legends, myths and other points of view. Some of them support the new point of view while others discount it. The keynote will explore many of the legends and myths that surround Agile and describe techniques for adoption Agile into the modern enterprise.

Jeff McKenna has been involved in software development for over 45 years and has been actively participating in the creation and delivery of agile software development since 1987. He has been involved in all areas of software product development from programming, system design and architecture to project management, testing, sales and marketing. Since the late 1980s Jeff has focused on the process side of development and along with Jeff Sutherland and John Scumniotales at Easel corporation in 1993 created the Scrum methodology of agile software development and started the very first Scrum team.

Jeff has worked extensively with object-oriented programming systems, languages and applications and was the Chair of OOPSLA in 1994 which helped to incubate and increase adoption of several related disciplines including agile software development. Working with IBM, Cigna, ObjectShare, Easel Corp, Millennium Pharmaceutical and the US Air force, Jeff provided expertise in architecture, design and implementation for their first Smalltalk based object-oriented projects.

As an Architect at Rational Software (now IBM), Jeff made various contributions to Rational’s industry leading Rose product. These included extensions to the Unified Modeling Language (UML) to support a UML model of testing. Jeff also worked with industry pioneers, including Grady Booch, to extend the Rational Rose product to natively support Design Patterns.

Jeff is a Certified Scrum Coach and Scrum Master, he has taught, coached and mentored agile teams using Scrum and Extreme Programming practices for many companies, including Oracle, PayPal, Borland, Vanguard, Microsoft, Google, Lockheed Martin, Tumbleweed Communications, V-Mark and Net Objectives.

Jeff is currently an Agile evangelist for Serena Software helping to build Serena Agile On Demand and working with customers and partners aiding the adoption of agile methods and practices in engineering organizations.

Posted in agile, conferences, valtech | 1 Comment