Jiri Lundak

Archive for February, 2007|Monthly archive page

A Different Team Event

In Agile Development, Team on February 11, 2007 at 3:02 am

Sometimes you make a move out of desperation…and it makes a whole lot of difference.
No not in the spectacular way, as to save the world or make enemies become friends. But I think it still can make a difference by altering the collective and individual perception a bit.

Well you do not understand what I am talking about? So I have to begin from the start. Here is the story:

About six weeks ago a colleague of mine and myself were quite depressed. It seamed as if we – as a development team (togther with our other 20 or so developers and testers) – did not make any progress, when it comes to the quality of our code. Sometimes we just do not get it as developers. We write code, without thinking too much about it. Or we concentrate so much on the solution to our software problem at hand, that we forget about good design, refactoring, test-first development and any other good coding practice.

Even organizing inhouse workshops with well-known patterns guru’s as Peter Sommerland (of Pattern-Oriented Software Architecture: A System of Patterns fame), did not contribute to more awareness about bad code and how to avoid it. Instead in these workshops (although organized as interactively as possible), some people always were passive, maybe even thinking: “What a waste of time! I need to do some important work and we are wasting it here…”.

So as already said, we were heavily depressed. While contemplating the situation an idea sprang to my mind: We would make everybody do something. As many of us as possible should become involved. We decided to organize an event: Done by us developers, for us developers.

Löpa Häck Näit Flyer

Invited were all developers and testers (people having to do directly with our code) to participate in what we declared to be the first ‘Löpa Häck Näit’ (in Swiss-German meaning the first Löpa Hack Night, Löpa being the short name of our small sofware company Löwenfels Partner AG in Lucerne, Switzerland).

We would start at 6 pm with a snack and then hack away until 4 am in the morning. We had 16 people participate. We formed four teams, all in one ‘War Room‘ and would do a coding competition. At 22 pm we would have dinner (one of our colleagues and his wife cared for), then we would see a geeky film together, before continue coding. In the end one additional discipline was to participate in a game competition with the new WII console until 5 am in the morning. On a side-track we organized some music and two girls from the nearby Lucerne School of Arts and Design to paint a big wall sized Löpa Häck Näit Grafitto on an office wall incorporating ideas of many of the team members.

First I was quite sceptic about the outcome of the event. I expected some people to rebell against the idea. But having some of the more critic people on the organizing comitee helped a lot. From what I can say now, two days after the event, it was a full success. And something has build up I would call team spirit. We had made teams with people that did not know themselves this well, because they usually (in daily life) worked in different teams. But the teams were quite balanced and so the competition was really working out.

It was the first time we worked really in an Agile way, all people working together on the same problem at once. We worked on two problems we had in our real projects: How to write unit tests to check for equality of PDF documents and how to optimize PDF rendering speed at least by a factor of two.

Incredibly enough we were able to do better than we expected. Although the first problem – testing for equality of PDF documents – to prevent alterations, when refactoring for speed, proved to be more difficult to resolve, we all learned a lot about the PDF-format than we ever imagined to know. Interesting in this part of the competition was also to observe, that many team-members were happy to exchange ideas even with the competing teams. In the end we managed to find an approach (with the help of our PDF expert Beat) to write repeatable tests.

The second problem – optimizing the existing code for speed – proved also interesting. All four teams managed not only to double rendering speed, but all managed to increase it by at least 60 percent. The best team topped at 65 percent. When I think that we need to render about 100’000 documents a night, I would say we did very well (and all in about two and a half hours!).

I just heard that evening one voice say, that this was not the most efficient way to use our resources. But I thing that person was wrong. We should work like that all day long. What was our net profit of this night? I would say for myself:

  • Better teamwork
  • Better understanding of a forgein domain for many team members
  • Knowledge transfer between people with different skills
  • Solutions to two hairy problems, we were grappling with
  • Code that was tested and worked (with only some minor rework the other day)
  • Self-organization
  • Reaching of a common goal

…and besides all this: Lots of fun!

I am looking forward to the next Löpa Häck Näit!