Today I’d like to share a success story of a picture perfect project collaboration as it only happens in the open source world without any commercial, political or geographical borders. It all started back in 2009 after a short interview about Roundcube was published on a techworld.com blog. Short time after we got an email from Georg Greve, founder of the FSFE and member of the Kolab Groupware project. At that time, Kolab already made its name as a free competitor to Microsoft Exchange and Outlook and they were just about to found a new company to push Kolab to the next level. One thing Kolab definitely needed was a better web client to access all the groupware data from anywhere. And this is where Roundcube seemed to fit in perfectly. Although Roundcube was “just” an email client, the Kolab guys saw great potential in our codebase and the vital community around it. And now, more than three years after, we can all witness the great success of this decision.
Lots of lessons learned
After some first meetings and discussions about a possible collaboration between Kolab and Roundcube, we agreed on a general interest from both sides. For the newly founded company Kolab Systems who (as opposed to the Roundcube project) directly hits customers with real needs and urgent bugs to be fixed, it was important to get direct and reliable access to Roundcube developers in order to be agile enough to establish professional services around the open source software stack that is Kolab.
This is also where we started to learn how to run an open source project in a more professional and sustainable way. They taught us the importance of having release branches with long-term support, a clear road map and well documented changesets. Kolab also helped us to better understand the whole licensing topic and with them getting us some legal consultancy from the FTF we finally made the transition to GPLv3 with the added exceptions for skins and plugins. Escpecially the latter one opened the doors for Roundcube to become more accepted in commercial environments which previously had their concerns about the strict terms of the GPL.
Great boost of development
But let’s also have a look at the product side of the story. All users of Roundcube have been on the receiving end of technical and other benefits starting from the 0.7 release. To give you some background about myself:
When Georg and I were talking for the first time, my day-job left me very little time to work on Roundcube. I hadn’t contributed much code in a while, and was even considering to step back from the project altogether because I fell short of my own expectations. Of course it’s impossible to say what would have happened in an alternate universe, but fact is that Kolab Systems enabled me to get back to work on Roundcube. And because Kolab is fully open source, everything has become available to all who use Roundcube.
Here are just some of the features and plugins we added to Roundcube as part of the Kolab integration work:
- ACL plugin
- Calendar plugin
- Tasks plugin
- Advanced contact search
- Savable contact search queries
- Personal spell check dictionaries
- ODF document viewer plugin
- Inline PDF viewer plugin
And these are only the “visible” additions to our software which have primarily been initiated and forced by Kolab. Lots of improvements on the stability and quality of the underlying codebase, namely the IMAP and LDAP libraries, are referable to reports coming from the Kolab community.
The work on the various plugins used to bring full-stack groupware functionality to Roundcube also resulted in several upstream patches to other open source projects such a jQuery UI and the jQuery fullcalendar. And that’s what makes free software development truly awesome!
Another very positive aspect of the collaboration with a mature OSS project such as Kolab with a competitive company in the background is the quality assurance and testing we get from them. While we get a lot of bug reports from our own community that help stabilizing our code, there’s no real QA process set up for Roundcube, mainly due lack of resources. Because Kolab Systems takes responsibility (and money) for the installations of the Kolab Groupware, they have a strong interest in quality assurance. And with Roundcube now being an important component of their suite, we can just ride on the wave of QA management and processing. The only price we pay is to fix bugs within a reasonable time. And again, the results of this are accessible for everybody who regularly updates their Roundcube installation.
On an operative and decision-making level, Kolab Systems and the Kolab project itself strive to be “good citizens” in the open source world the same way as we do. Without having to ask for it, it was made clear that Roundcube would remain its own fully independent and emerging project run by the community. Whenever there is a question of whether a certain feature is in Roundcube’s general interest, whether it should go into Roundcube core, or into the Kolab specific modules, or perhaps even approach differently altogether, that decision is always ours to make with no interference from Kolab.
So we kept Roundcube as the lean, focussed web mailer that I believe it should be, and moved all other functions into their separate modules. From the perspective of Roundcube, this has led to improvements on all aspects that matter: adoption, code, quality, community and allowing both Alec and myself to spend lots of time that benefits all users of Roundcube.
Summarizing all these facts and stories, this “K”ollaboration finally IS nothing but a success story. Two great open source projects came together to become even greater.