Saturday, January 23, 2010

Anatomy of a developer sprint

Two weeks ago I was at the annual KDE PIM meeting at Osnabrück. It was the eighth time that this meeting took place, and it was a blast, once again. This is amazing, so I'm taking the opportunity to reflect a bit on what makes this meeting so successful, how it evolved over time, and what we all can learn for running great developer sprints.

It all started in 2003. KDE PIM as a group didn't really exist yet, the kdepim module in CVS contained only a small collection of apps, mainly KAddressbook and KOrganizer, and some prototypes for what would become Kontact. The work on the Kolab server and clients had just started, and Intevation who was doing the project management for the Kolab project invited key people of the community and those who were working on Kolab to Osnabrück for some serious discussions, hacking, and community building. It was the first weekend in January and this date should stick as the traditional date for the KDE PIM meeting for coming years.

For many of us it was the first time we met each other in person. It's always amazing how much of a difference this makes. Of course we knew each other via mailing lists, IRC discussions or working together on code, but meeting face to face added another dimension. The astonishing thing was that it felt like meeting old friends. This is an experience I made again and again when meeting KDE people in person for the first time, and I know that many others have made the same experience. What a motivation!

One result of the first meeting was that KMail was moved from kdenetwork to kdepim. This was the birth of the KDE PIM community as we know it today. Even if it were mainly technical details which motivated this move, it had a big effect on how we felt as a group. The second big topic was the integration of the work which had been done on the Kolab client and how to combine that with the efforts going into a brand new application called Kaplan, which would later be known as Kontact as the central application of KDE PIM. So bringing all these people and different code streams together formed a new part of the KDE community, which had an unprecedented focus on creating great PIM solutions.

You see that already one meeting of the right people in the right atmosphere can make a big difference. But for KDE PIM it should quickly evolve into a tradition and constant source of energy to have these developer sprints. Over the next years we kept the annual meeting in January at Osnabrück and Intevation continued to kindly act as a host. This made organization of the meetings very easy and thanks to the support of KDE e.V., which provided us with financial support for travel and accommodation, we were able to get together most of the central people each year. In addition to the annual meeting some spin-offs started to happen, meetings at Akademy and the wonderful KDE PIM meeting in the Netherlands, and as we consciously always invited new people to the meetings they also became a source of fresh talent and energy.

While we developed some routine in having these meeting, in 2006 something special happened. Till came up with the idea for a new backend for storing PIM data. As we all felt the pain of the limitations of current solutions, this sparked a lot of interest, and over the time of the meeting we put together our combined experience in laying the foundation for this new framework.
We intend to design an extensible cross-desktop storage service for PIM data and meta data providing concurrent read, write, and query access. It will provide unique desktop wide object identification and retrieval.
Akonadi was born.

With Akonadi a whole new world was opened and the nature of the meetings changed a bit. They had grown in size and scope and while the early meetings were dominated by ferocious hacking, other activities like coordination, learning from each other, and strategical discussions became more important and took a bigger share of the meetings. So as a complement to the annual Osnabrück meetings we introduced a new set of Akonadi sprints as very focused small events dedicated to writing as much code as possible, taking advantage of having the central developers in the same room for an intensive weekend.

So where are we today? We just had the eighth Osnabrück meeting, the Akonadi port of all of the KDE PIM apps is landing in trunk for the KDE 4.5 release. Kontact as the central product of the KDE PIM community is running on an impressive bunch of different platforms, including of course Linux, but also Windows, MacOS and in the future also mobile platforms. The Kolab consortium is running commercial development based on KDE PIM for as long as the KDE PIM meetings exist. We have come a long way. This wouldn't have been possible without all the developer meetings.

Finally I would like to reveal one of the secret ingredients which makes our developer sprints so successful. It is having fun. Be it the snow ball fight before the group photo, the game of go after dinner, or meeting friends, having inspiring discussions, or the occasional grand hack. When you bring together passionate people with a common vision, who enjoy working on outstanding free software, great things happen. That's what we have our developer sprints for.

Governance on demand

I have talked about the Spectrum of Open Source Governance Models  before. After rereading Nadia Eghbal's excellent post Governance with...