my blog

Tuesday 25 January 2011

Results of the App Installer meeting, and some thoughts on cross-distro collaboration

Results of the App Installer meeting

The App Installer meeting is over since Friday, and I must say I've been very pleased with the results of this meeting. During three days (rather two days and a half), we managed to explore the topic, investigate some pre-existing technologies, define an architecture to handle the creation and the communication of the metadata, write a plan to move forward, etc. And we managed to all agree on this!

The first part of our plan is of course to communicate the results. And we've started right ahead by doing an informal presentation about our work at the SUSE offices. The good news is that it was recorded and you can see it online (thanks Christopher for this!). I guess I'm awful, but you'll all be able to watch Enrico and Richard save the day. Richard also drawed a nice diagram to summarize the overall architecture, so if you want to simply take a quick glance at what we produced, this is where you should go.

I've had positive feedback about the meeting, but it's important to keep in mind that it's only a beginning: we'll now work on implementing all the cool stuff. This means we have a long road ahead of us, and we need to be careful to not get too much distracted. With all the other tasks and responsabilities we all have, it is indeed very easy to put that at the back of our mind. That's partly why we defined a relatively aggressive schedule, targetting the end of the year to have something usable and shipped in distributions.

Thanks again to Novell for hosting the event, and to Canonical, Debian, Novell and Red Hat for enabling the attendees to participate in this meeting!

Some thoughts on cross-distro collaboration

While working on the organization at the end of last year, I've heard people saying that a cross-distro meeting on an important topic like this can hardly succeed -- if you manage to make it happen, that is. I've also heard very enthusiastic voices, like Stefano and several of the people who later attended the meeting. I got to think a lot about cross-distro collaboration.

The fact is that it's still much easier to work on things in a corner. The funny thing is that people are generally not opposed to work together, far from it. When discussing low-level bits related to packaging systems, many would expect dpkg/apt developers and rpm/zypp developers to have some heated discussion just because we always hear confrontational stories here and there. The truth is that those stories are generally from users, and developers are generally happy to accept differences.

For collaboration to really happen, gathering the right people from different distributions is an essential step. However finding the right people can be the hardest part, and I believe this is generally where we fail. I happen to know people from many distributions because of my work on GNOME, and while I obviously don't know who might be the appropriate people for a specific area for all distributions, I can at least ask some friends who should be contacted. While I love to think I'm unique and all that, I'm sure many contributors in distributions do know people from other distributions, so I wonder why there's no more communication going on. Maybe we're just all too busy.

Another point that is important for collaboration is to correctly define the scope and goals of the topic being discussed. Especially for a meeting: like for all meetings, this helps ensure everyone is aligned towards a common set of goals. And like for all meetings, it's important to keep everyone focused: it's extremely easy to start diverging away from the topic of a session, and to realize at the end that the original topic was not really covered. Defining how to measure the success of the collaboration keeps you on track. Yes, it sounds obvious, but we often forget that step.

In the specific case of this App Installer meeting, I believe there is another key point that helped us. We generally all had a similar vision of where we wanted to go, even before the event. So this meeting was used to iron out the big lines and to start defining the details: we didn't have people trying to push a solution over another one. This helped us move much faster, and that's why we were able to agree on so many different things in such a short timeframe, without any prior meeting. We were lucky here :-)

To be honest, since I started working on openSUSE, I've kept wondering why all distributions duplicate so much work. Sometimes, there is a good reason, like a radically different technical approach. But sometimes, it looks like we're going different ways just for the sake of doing something ourselves. We should fix this. Cross-distro collaboration is not the way we usually do things, and I believe we're wrong most of the time. Cross-distro collaboration is a cultural shift for us. But it's very well needed.

Tuesday 18 January 2011

Cross-distribution meeting on application installer

Back in October, at the openSUSE Conference, many people were interested in the whole app store/market place/software center topic for openSUSE: we had a session about that, and several hallway discussion. There is no big surprise here, since it's a hot topic for various OS distributors, and not just our free distributions. Of course, being lazy people, we discussed what we could re-use to minimize our work; the software center used in Ubuntu and the app-install work that Richard did a while ago came to our minds.

And then we thought: Hrm, why do this in our corner? Everybody is doing this in a corner. Let's see if we can work together!

Obvious idea, right? But on the other hand, everybody is generally all for collaboration, but when it comes to do the work, it's easier to hack in a corner. So we didn't exactly know what to expect: is this something that can really happen, or is this just a blue-sky dream? I decided to give it a try.

In the past couple of months, I chatted with people from various distributions to organize a cross-distribution meeting. I first talked to Michael (Ubuntu), and Richard (Fedora) who were both enthusiastic about the idea. I met Stefano (Debian) at an event in Toulouse, and we had a great chat about many topics; that lead me to ask him if we could help find some Debian people interested in this. I discussed with Michael (Mageia) to find out the relevant people in Mageia, and a few people were interested in the topic. And of course, I knew the right openSUSE people ;-) So after a few weeks, it turned out there was great interest from Debian, Fedora, Mageia, openSUSE and Ubuntu, with people willing to attend such a meeting. I then sent out a mail to distributions@fd.o, to open this up to other distributions.

Fast-forward a bit, and here we are today: I'm flying to Nuremberg in a few hours to attend this cross-distro meeting on application installer, that will occur in the next three days with a group of 14 people. The goals are to see where and how we can work together on the end-user experience as well as on the application metadata that we want to provide. It might all sound easy, but the fact is that with all distributions building its own packages, on its own infrastructure, with different metadata and different users who could create more metadata, we're currently not set to share anything, which is a shame. This meeting will help us decide where we can mutualize our efforts to provide the best end-user experience possible for everyone.

Three days is a short time for a topic like this, and we obviously won't do everything we'd love to. But I'm optimistic about the result :-)

Thanks to Novell for hosting and sponsoring a few attendees, to Canonical and Red Hat for sending people on their own budget, to Debian for helping sponsoring a last-minute attendee, and also to some attendees who didn't need sponsorship at all!

by Vincent