On quality, beauty and elegance. Parting words of a fellow Xebian

This week we said goodbye to a long-time colleague, Luuk Dijkhuis, senior consultant with a history in multiple Xebia units. He agreed to let me share his parting speech with you, here goes:


My dear Xebians, thank you for your kind words. Now, I could say, “thank you, it’s been six nice years, bye bye”, but you deserve more than that. I want to talk a bit about one of our key values. I will keep it short, don’t worry.

So. Quality without compromise. What kind of nonsense is that? Quality is always a compromise, or you will never get anything live, will you. So what ARE we on about?
Read more →

Fully Distributed Scrum @ Agile2009

Agile2009 is the yearly conference of the Agile Alliance. This year we are in the windy city, Chicago. With over 1350 participants, 300 presentations and over 1500 initial submissions, this conference really is the cream of the crop on Agile software development.

This year I had the honor of presenting a case study on Fully Distributed Scrum together with Jeff Sutherland, co-founder of Scrum.

We presented about a Xebia client located in San Francisco working with our office in new Delhi using a single hyperproductive distributed Scrum team! Thats right, hardcore Agile results across all timezones, culture, language etc.
Read more →

Agile Distributed Development done right – QCon London 2009

Working distributed is all about handling distance. Geography, culture, methods & tools, timezones, languages are all adding to that distance. Not measured in miles but in people.

How to get a focus on individuals and interactions when your people are distributed across the globe? What is the secret sauce to use to get it running smoothly?

The classical route of bringing this ‘gap’ under control involves adding process and handovers. It actually forces you to go into a waterfall-like model and therefor widens the Gap instead of bridging it. All waste is institutionalized. Sounds like a horror to you? It does to me.
Read more →

Presented at Agile 2008 – The secret sauce of Fully Distributed Scrum

The secret sauce

Agile 2008

At Agile2008 in Toronto Jeff Sutherland and myself presented our article outlining how to achieve hyperproductivity in distributed Scrum when working in an offshore situation. InfoQ recorded our presentation and will publish it online in November as the end of a series of Agile2008 talks.

Download article    Download presentation

Also see this InfoQ article

Agile and Offshoring, oil and water?

If you are reading the Xebia blog chances are that you are already familiar with the benefits of Agile development. Practicing Agile (in our case Scrum combined with XP) delivers hyperproductivity combined with very high quality. The promise of offshoring in the modern IT industry is also clear: more available talent, scaling up and down without local layoffs or knowledge drain, and of course cost reduction. Together they make a killer combo!

However, Agile and offshoring seem like oil and water, they don’t seem to mix. How to get a focus on individuals and interactions when your people are distributed across the globe? What is the secret sauce to use to get it running smoothly?
Read more →

Impression of Agile NCR conference, March 8th, Gurgaon, India

It has been a hectic week at Xebia India. The Agile NCR conference (first Agile conference in Northern India) was in full preparation. The Ansal Institute of Technology (AIT) graciously hosted the conference on the university grounds and Xebia was the main organizer in cooperation with ASCI.

Just a few highlights of a day filled with high quality talks:

Pete 19 points A gripping keynote was delivered by Pete Deemer to kick off the day. Basically Pete warned us for the hardships of Agile adoption by discussing his top 19 lessons of Agile adoption at Yahoo! and other companies. While some companies experience a delight when implementing Agile others have a very hard and frustrating time and don’t reap the full benefits. His 19 lessons were geared towards making sure you fall into the positive category.

Read more →

Javapolis 2005

Javapolis 2005

Last week all of us at Inspiring visited the JavaPolis conference in Antwerp. JavaPolis is a five-day event organized by the Belgian JUG consisting of two university session days followed by three normal conference days. The university sessions were three-hour in-depth technical presentations. The fifty-minute conference sessions were less intensive but sometimes also less boring 🙂

We attended just two days, the last university day on Tuesday and the first conference day on Wednesday.

On Tuesday a couple of us visited the ‘Spring Business Tier’ session by Juergen Hoeller and Rob Harrop, who presented some new features of Spring 2.0.

The first part of their presentation was quite interesting, which covered the new XML namespace features. Instead of using the default DTD, in Spring 2.0 you can use XML schema’s in your configuration. By using schema’s it’s possible to add more ‘typing’ to your configuration, which reduces the chance of making mistakes. Besides that, I think it makes your configuration much more readable. Spring itself will have 4 default schema’s you can use, JNDI, AOP, UTIL and TX (Transactions) .

At the top of your configuration you can now declare your schema’s:

And if you want to lookup a datasource through JNDI for example you can use a much more powerful and intuitive definition:

The whole idea behind this schema usage was to make the use of AOP through Spring much easier and the first step was to simplify the configuration.

This explanation lead to their second subject, improved integration with AspectJ. Spring 2.0 now uses the AspectJ syntax to specify pointcuts, even if you don’t use AspectJ as the AOP implementation. This makes working with AOP a lot more powerful. You can also use the same Aspects in Spring and in AspectJ without making any changes to your aspects. By using standard annotations (again…) your aspects will be compatible with both Spring and the AspectJ compiler. I personally have some doubts about annotations, if you don’t use them well they can really pollute your code.

After a short break the subject moved to the CommonJ WorkManager. The CommonJ WorkManager is very specific for Websphere and Weblogic users. I think I will keep using Quartz when it comes to scheduling instead of this WorkManager, it seemed a little complicated for simple problems.

The last part of their presentation covered JMS and Message-Driven POJO’s. This sounded very interesting because in one of our current projects where we have to deal with JMS in the near future. But it sounded more interesting than it really was, Juergen Hoeller kept talking about the differences between the two JMS specifications without really explaining the Message-Driven POJO concept.

In the afternoon there was a session about the Java In Action session by Dion Almear and Ben Galbraith. This session was very good. It was technical and very practical also. They started with a very familiar example of Ajax: form completion. Every step of setting up a form supported by Ajax was covered and, best of all, everything was coded live on stage.

After the introduction, they shifted to the most famous Ajax business case, Google Maps. The first surprise was that GoogleMaps isn’t really Ajax at all. It is just a very sophisticated usage of Javascript and HTML <div> elements. Then they proceeded to reimplement the whole Google Maps functionality, including drag-and-drop and zooming, live on stage in a few simple steps. This was all very impressive.

At the end they showed some frameworks that can make using Ajax a lot easier for developers. I personally prefer DWR. This framework lets you make use of Ajax in very (Java) natural way without having to make lots of changes in your classic web tier.

The next day, the first conference day, some of us went to the keynote by Jeff Jackson vice-president of the Sun Developer program. His talk was a little bit boring, but T-shirt launcher was nice. Every time when there was Duke on a slide a T-shirt signed by James Gosling was launched into the audience.
Always fun to see a bunch of geeks getting excited by a free T-shirt.

Later on I visited a session about JMX. In some way JMX always draws my attention. Although I never used in a real project it still stays a promising technique for managing some part of your configuration. I say promising cause I see and hear a lot of people talking about JMX, but just a few people really used it around projects.

For the last session that day I went to a session about ‘Continuous Integration’. The title itself wasn’t really exciting but it’s always fun to see someone tell story and try to convince a large audience about the advantages of using Continuous Integration during your projects. To have a continuous and quick feedback loop is so powerful and really increases the quality of your codebase. As an example that a continuous build server also can be fun, he showed usage of two lava lamps, red and green, which are connected to the build server.

If a build failed, the green lamp was turned off and the red one turned on. Even a manager can now see there’s problem. The fun thing was, before a lava lamp really gets warmed up this will take some minutes. Their sport was to fix the build before the red lamp was really on and if lava lamp is turned off before it’s warmed up, you’ll have some nice figures in the pasta in the lamp. Now they tried to keep this figures as long as possible and the only thing you can arrange this, is not to break the build. I know you must be a really big nerd to like this, but I think it’s a very nice and simple way to show that your project tries improve it’s quality. For the people who like the idea, on the site of pragmatic programmers there’s a list of components and instructions how to build your lava lamp enabled build server.

All the Javapolis presentations will become available in the next couple of months on various Java comnuity sites like TheServerSide and the JavaLobby.