Oct
14

The XP Day Program. pt. 2

How do others do it?

We’re always looking for sessions that present case studies. People want to hear how other people like them have tried agile and have succeeded. Most companies don’t want to be the first kids on the block trying agile. But when they hear that other companies are doing it and succeeding, they will take action.

Presenters are sometimes reluctant to present a case study when “things haven’t gone perfectly”. We, and the audience, don’t expect perfect stories. They’re so boring! We won’t take home any lessons from it because we fear that we won’t be able to replicate that perfect situation. A story is much better if the plucky hero(ine) has had to struggle to overcome problems and if the result is not nirvana, just a better place to be than before.

We have 4 case studies in the XP Day Program, two per day:

  • Test-driven development on a large scale project by Jan Van Reusel describes how Ardatis implemented test-driven development on a very large J2EE project. It’s very easy to start, but can you keep it up? Can you keep the test runs fast enough to give quick feedback? Can you keep the complexity of the codebase under control? Jan will tell about the issues his team faced and what they did about it. I like this session because it deals with the issues you’ll encounter in real life, once you go beyond the toy problems of typical TDD descriptions and demonstrations.
  • Agile on the biggest J2EE project in the Benelux by Johan Lybaert presents how Ardatis used agile development techniques (SCRUM and XP) on what is probably the largest J2EE project in the Benelux. Scaling agile practices to such a large team and large application serving several customers is a challenge. Johan presents how his team did it, why they did it and how they overcame obstacles. I’ve seen this presentation twice. The presentation is very clear, humourous and explains very well how Ardatis did it, why they did it and what the results are. Ardatis and the people working there seem very happy with agile software development.
  • Introducing unit tests to a large evolving application by Dirk Maegh and Olivier Costa presents the story of their team starting to add unit tests to a large, existing application. Not an easy task, as anyone who has tried it can tell you. It’s not just the technical problems. How do you convince a large team of developers to keep on spending time to write unit tests, even under pressure of deadlines? What skills do they need? How do you convince management to invest in improving the quality of the application? I like this session because, like the other unit testing case study, it deals with issues you’re likely to face when you want to retrofit unit tests to an existing application and organisation.
  • Off-shore, fixed price and still agile by Marco Jansen describes how Thoughtworks India has used agile techniques on a fixed project that was run with two teams, one in the UK, the other in India. I think this session is interesting because we hear how agile was used in a setting where most people think agile is inapplicable: off-shore AND fixed-price. One of those is enough for most people to disqualify agile methods.

Do it yourself!

We have two sessions where you can apply all the agile techniques on some real code. Sometimes, the best way to learn is to just do it. A session like this creates a safe environment where you can experiment with different techniques, without endangering your real project.

I’m always a bit wary of including this type of session in the program. It can take a lot of effort to set up the environment. If the participants have to install stuff on their machines, we can waste a lot of time getting the session going. By necessity, these are quite long sessions, so you must dedicate half a day to one session.

In these cases, there’s less to worry about. Kathleen, Jan, Lasse and Markus have all run these sessions before. They know what they’re doing and the sessions will be well prepared and fun.

In the “Coding Tournament” session, Finnish agilists Lasse Koskela and Markus Hjort let participants write poker-playing bots, which then have to compete against each other. Lasse and Markus will bring the necessary libraries for java or ruby development. In this session you can experiment with different agile development techniques like test-driven design, automated test, refactoring, feedback from iterations and pair programming under time-pressure. The time-pressure and element of competition make this a fun game. In this session you will explore strategies for poker AND strategies for software development. Lasse and Markus have already played this game in their company Reaktor Innovations and at the XP2006 conference. Bring your laptop. May the games begin!

The “Agile Development Workshop” by Kathleen Cornelis and Jan Van Reusel is an intense session, where you can experience what it means to work in an agile team. The session features a scrum standup, programming in pairs, iterations, visualizing progress in a burndown chart and a retrospective. Kathleen and Jan have run this session before to let job applicants to Ardatis experience what it’s like to work for there. I like this use of a hands-on session during recruitment: it tells both parties a lot more than just an interview.

So, if you like to experience what agile development is and have fun, come to one of these sessions!