|
|
Subscribe / Log in / New account

Some notes from the Collaboration Summit

By Jonathan Corbet
April 19, 2010
Your editor has just returned from the Linux Foundation's annual Collaboration Summit, held in San Francisco. LFCS is a unique event; despite becoming more developer-heavy over the years, it still pulls together an interesting combination of people from the wider Linux ecosystem. The following article is not intended to be a comprehensive report from the summit; it is, instead, a look at a few of the more interesting thoughts that came from there.

Graybeards

As has seemingly become traditional, your editor moderated a panel of kernel developers (James Bottomley, Christoph Hellwig, Greg Kroah-Hartman, and Andrew Morton, this year). We discussed a wide range of topics, but the subject that caught the attention of the wider world was the "graybeards" question. As a result, we've been treated to a number of lengthy discussions on just why the kernel is no longer attracting energetic young developers.

The only problem is: the kernel doesn't really have that problem. Every three-month development cycle involves well over 1000 developers, a substantial portion of whom are first-time contributors. Nearly 20% of these contributors are working on their own time, because they want to. There does not appear to be a problem attracting developers to the kernel project; indeed, if anything, the problem could be the reverse: the kernel is such an attractive project that it gets an order of magnitude more developers than just about anything else. Your editor has heard it said in the past that Linux as a whole might be better off if some of those developers were to devote a bit more time to user-space projects, most of which would be delighted to have them.

The question the panel discussed, instead, had to do with the graying of the ranks of the kernel's primary subsystem maintainers. Many of those developers wandered into kernel development in the 1990's, when there were opportunities everywhere. A decade or more later, those developers are still there; James Bottomley suggested they may stay in place until they start dying off. Entrenched graybeards at high levels could, someday, start to act as a brake on kernel development as a whole. That does not appear to be a problem now; it's just something to watch out for in the future.

Andrew Morton raised an interesting related issue: as the core developers gain experience and confidence, they are happy to put code of increasing complexity into the kernel. That could indeed make it harder for new developers to come up to speed; it might also not bode well for the long-term maintainability of the kernel in general.

Companies and Linux 1

Dan Frye's keynote reflecting on IBM's 10+ years of experience with Linux was easily one of the best of the day. IBM's experience has certainly not been 100% smooth sailing; there were a lot of mistakes made along the way. As Dan put it, it is relatively easy for a company to form a community around itself, but it's much harder - and more valuable - to join an established community under somebody else's control.

A number of lessons learned were offered, starting with an encouragement to get projects out into the community early and to avoid closed-door communications. IBM discovered the hard way that dumping large blocks of completed code into the kernel community was not going to be successful. The community must be involved earlier than that. To help in that direction, IBM prohibited the use of internal communications for many projects, forcing developers to have their discussions in public forums.

Beyond that, companies need to demonstrate an ongoing commitment to the community - no drive-by submissions. Developers need to remain immersed in the community in order to build the expertise and respect needed to get things done. Companies, Dan says, should manage their developers, but they should not attempt to manage the maintainers those developers are working with. In general, influence in the project should be earned through expertise, skills, and a history of engagement - and not through attempts to control things directly.

One interesting final point is that what matters is results, not whose code gets merged. To that end, IBM has reworked things internally to reward developers who have managed to push things forward, even if somebody else's code gets merged in the end. This is an important attitude which should become more widely adopted; it certainly leads to a more team-oriented and productive kernel community in the long term.

Companies and Linux 2

Chris DiBona's talk on Google and the community was always going to be a bit of a hard sell; Greg Kroah-Hartman's discussion of Android and the community had happened just two days before. Additionally, Chris was scheduled last in the day, immediately after Josh Berkus gave a high-energy version of his how to destroy your community talk. So perhaps Chris cannot be blamed for his decision to dump his own slides and, instead, give a talk to Josh's slides - running backward.

Chris did eventually move on to his real talk. There was discussion of Google's contributions to the community, including 915 projects which have been released so far and something like 200 people creating patches at any given time. There are over 300,000 projects on code.google.com now. Google has also supported the community by providing infrastructure to sites like kernel.org and, of course, the Summer of Code program.

In short: Chris doesn't think that Google has much to apologize for; indeed, the contrary is true. This extends to the Android situation, which, Chris says, he's not really unhappy with. The targeted users for Android are different, and, in any case, it always takes a long time to get a real community going. That said, more of the Android code should indeed get into the mainline, and Google should be doing a better job. Part of the problem, it seems, is finding "masochists" who are willing to do the work of trying to upstream the code.

The truth of the matter is that Chris's talk failed to satisfy a lot of people; much of it came off as "Google is doing good stuff, we know best, we're successful, and we're going to continue doing things the same way." Starting with his playing with Josh's slides, Chris gave the impression that he wasn't taking the community's concerns entirely seriously.

On the other hand, the announcement at the end of his talk that Google was giving a Nexus One phone to every attendee almost certainly served to mute the criticism somewhat.

Outside of the sessions, your editor had the opportunity to talk with some of Google's Android kernel developers; the folks actually doing the work have a bit of a different take on things. They are working flat-out to create some very nice Linux-based products, and they are being successful at it, but they are in the bind that is familiar to so many embedded systems developers: the product cycles are so short and the deadlines are so tight that there just isn't time to spend on getting code upstream. That said, they are trying and intend to try harder. We are starting to see some results; for example, the NVIDIA Tegra architecture code has just been posted for review and merging.

The Android developers seem to feel that they have been singled out for a level of criticism which few other embedded vendors - including those demonstrating much worse community behavior - have to deal with. It can be a dismaying and demotivating thing. Your editor would like to suggest that, at this point, the Android developers have heard and understood the message that the community has tried to communicate to them. There is a good chance that things will start to get better in the near future. Perhaps it's time to back off a little bit and focus on helping them to get their code merged when they get a chance to submit it.

In summary

As promised, this article has barely scratched the surface of what happened at the 2010 Collaboration Summit. In particular, the large presence of MeeGo (which had a separate, day-long session dedicated to it) has been passed over, though some of that will be made up for in a separate article. In general, it was a good collection of people who do not always get a chance to mingle in the same hallway, all backed by the Linux Foundation's seamless "it all just works" organization. Improved collaboration within our community should indeed be the result of this event.

Index entries for this article
ConferenceCollaboration Summit/2010


to post comments

Android & Linux

Posted Apr 19, 2010 21:38 UTC (Mon) by pj (subscriber, #4506) [Link] (8 responses)

I think the Android guys probably do draw more fire than they really deserve, but at least part of that is the price you pay for being high profile. Personally, I see it as more of 'tough love'; the kernel guys are saying "C'mon, we know you can do better! Live up to your potential! We *want* you to succeed, and you're not going to do that if you keep on as you are!"

Android & Linux

Posted Apr 20, 2010 20:27 UTC (Tue) by vonbrand (subscriber, #4458) [Link]

Yep, it's hard being the most visible part of the pack... and so you attract most of the flames.

Android & Linux

Posted Apr 20, 2010 22:21 UTC (Tue) by man_ls (guest, #15091) [Link]

Well said. Google has the money, the talent and the goodwill to make it work; they should be the ones setting the way and serving as an example to others, not be caught dragging their collective feet.

Android & Linux

Posted Apr 21, 2010 12:20 UTC (Wed) by AndreE (guest, #60148) [Link] (5 responses)

Yet, in a meritocracy, the level of your profile shouldn't matter. Surely open source is all about meritoracy ("show me your code"), and to single one vendor out on the basis of their media profile (slamming Google always draws a crowd) if there truly are a large number of worse vendors seems to be against that spirit

Android & Linux

Posted Apr 21, 2010 22:51 UTC (Wed) by nevyn (guest, #33129) [Link] (3 responses)

> Yet, in a meritocracy, the level of your profile shouldn't matter.

Sure, if you assume all people are robots and won't be affected by other people/company actions. But that's not true. One problem is that if the biggest/richest/etc. embedded developer says "sorry, we're too busy working to bother upstreaming" then it sends a giant red flag up for all the managers at the smaller embedded developers who will start asking "wtf are we wasting time on upstreaming, when google don't".

You _really_ want those questions to be asked the other way around, so you have to do whatever it takes to make the largest "DTRT" ... so that you don't have to have the same battle with 666 small companies.

Speaking as a non-kernel developer who bought an unlocked Nexus One, and is currently happy with Chris's comments that they just need to hire more people to get it done, and are in the process of doing that.

Android & Linux

Posted Apr 22, 2010 11:06 UTC (Thu) by AndreE (guest, #60148) [Link] (1 responses)

Those companies wouldn't know too much about Google's contribution if it wasn't constantly brought up. And if the attitude was slightly less biased against Google, it certainly shouldn't have been as news-worthy as it was. At the very least, the depth of the of discussion about Google in particular rather than non-compliance or non-conformity IN GENERAL seemed quite unbalanced. We picked a vendor a day, provide some analysis of their contributions, and easily come up with similar pros and cons of their interaction with the community.

Anyway, if other vendors' compliance is basically only motivated by their competitors adherence to open source philosophies, well, then the whole thing is just a house of cards isn't it?

Android & Linux - people

Posted Apr 23, 2010 12:58 UTC (Fri) by ndye (guest, #9947) [Link]

<blockquote><i>We pick [sic] a vendor a day, provide some analysis of their contributions, and easily come up with similar pros and cons of their interaction with the community.</i></blockquote>
<p>A useful exercise indeed.</p>
<blockquote><i>Anyway, if other vendors' compliance is basically only motivated by their competitors adherence to open source philosophies, well, then the whole thing is just a house of cards isn't it?</i></blockquote>
<p>The FLOSS "house of cards" is, IMHO, the dependency on people getting along well enough to achieve a shared objective:</p>
<ul>
<li>Someone has to articulate a worth shared objective.</li>
<li>Someone has to point the way for the team to achieve it.</li>
<li>Someone has to point out how the team can do better.</li>
<li>Someone has to encourage people to do right.</li>
<li>Someone has to discourage people from doing wrong.</li>
<li>There's more, and that's an understatement.</li>
</ul>
</p>The hard work of "herding cats" is even more difficult for us who excel at studying things instead of people: &nbsp; People don't appreciate being the object of being debugged (being poked repeatedly), and the process fails because people don't react reliably.</p>
<p>I'd think that hardware engineers should be better at it than software engineers: &nbsp; I'm recalling an old Dr. Dobb's letter to the editor that described a (KGB-stolen or West-rejected?) computer that didn't always get 4 when adding 2 and 2, yet a Soviet computer engineer stuck with the job was able to tease out the circumstances that led to its failure modes and code up a program that reliably provided correct output. &nbsp; Sounds just as difficult as debugging people.</p>
<p>And let's recall why Linus started his Minix replacement, via <a href="http://groups.google.com/group/comp.os.minix/msg/b5fb8c03..."><b>Google</b></a> (fancy that):</p>
<blockquote><i>[Linux] uses every conceivable feature
of the 386 I could find, as it was also a project to teach me about the
386.</i></blockquote>

Android & Linux

Posted Apr 25, 2010 2:05 UTC (Sun) by martinfick (subscriber, #4455) [Link]

Google is not really an embedded developer, that is not whom they should be compared to. And if they were compared to embedded developers, they haven't done that bad, they have released their hardware specific drivers and even attempted to get them upstreamed.

But, they should actually be compared to a new distribution with a radically different approach to system design than other distributions. So, in this sense, if they do not upstream, they should be held accountable just like any other distribution. After all, Ubuntu got their share of complaints for this same reason not too long ago. And, at this, google has failed, they built new kernel infrastructure without community involvement and they expect this infrastructure to be used in newer roll outs. This is not a case of simply dumping support for a low volume device.

Being a large and a high profile company may not be a very strong reason to expect them to lead. But, since their "distribution" is high profile, and they are attempting to lead with this distribution, it surely seems justifiable to expect them to upstream the infrastructure required by this distribution or receive flack for not doing so.

Android & Linux

Posted Apr 23, 2010 4:33 UTC (Fri) by njs (subscriber, #40338) [Link]

I'm not sure what they're being high-profile has to do with anything... it seems to me that they should be especially pressured to push stuff upstream because, 1) they have gajillions of dollars and huge kernel experience, they know better and have no excuse, and 2) unlike most embedded systems, we're not just talking about a few hacked-together drivers for a one-off device, we're talking about a widely distributed fork of the kernel and its userspace ABI.

Some notes from the Collaboration Summit

Posted Apr 19, 2010 21:58 UTC (Mon) by smoogen (subscriber, #97) [Link]

Maybe Google needs to start a "Summer of Code Management projects". Students work on getting various code bits into upstream projects and learn the love/hate that code submissions have.

Some notes from the Collaboration Summit

Posted Apr 19, 2010 22:30 UTC (Mon) by swetland (guest, #63414) [Link] (2 responses)

I'd like to say thank you to Jonathan and the other "mainline Linux" folks we (the Android Systems Team) chatted with last week at the Collaboration Summit. It was good getting a bunch of people together face to face, discuss various things, make some headway on figuring out how to work together, and hopefully we'll do this again at future Linux conferences. Also a big thank you to Ted T'so who worked to organize the meeting.

- Brian

Some notes from the Collaboration Summit

Posted Apr 20, 2010 15:04 UTC (Tue) by Trelane (subscriber, #56877) [Link]

Glad to hear you got together in meatspace. The problem with online discussions is that it's far too easy to misread something written online, and it's far too easy to hate on someone if you don't have to be physically near them.

Hooray for understanding! :)

Some notes from the Collaboration Summit

Posted Apr 20, 2010 15:18 UTC (Tue) by mjg59 (subscriber, #23239) [Link]

And thanks to the people from Google for taking the time out to do this!

Some notes from the Collaboration Summit

Posted Apr 20, 2010 14:05 UTC (Tue) by lmb (subscriber, #39048) [Link] (2 responses)

There's absolutely no question that Android developers are doing great things, and Chris is also right that "building a community" always takes some time.

Yet, one wonders how much of this is a "I can't sharpen my axe, I'm too busy felling trees" argument. If no resources are spent on making Android more accessible and easier to accept contributions from the community (note: I am _not_ talking about upstreaming their own work!), the gulf widens all the time, and if the community would be able to contribute even only 5% of the work on bug fixes and features (a not very aggressive estimate), this is now work the Android core team has to do themselves or it doesn't get done. So, the platform loses out and the spiral works downwards.

This is Google. It's not as if they'd be hard pressed to put a team of 1-5 engineers on it to work on improving community interactions, accepting contributions (and perhaps help them get it right), and improving the bi-directional code flow.

And it might be a good way to identify and recruit new talent. This seems to be something Google is willing to invest quite a bit on, so maybe spin it like this? ;-)

Some notes from the Collaboration Summit

Posted Apr 20, 2010 15:05 UTC (Tue) by Trelane (subscriber, #56877) [Link]

Plus you probably want to get your intended bi-directional flow going *before* development systems have ossified.

Ax-sharpening

Posted Apr 22, 2010 7:28 UTC (Thu) by ncm (guest, #165) [Link]

The additional information exposed here (thank you LWN!) demonstrates that the upstreaming problem really is a management problem. If Google management were to set aside a meaningful fraction of time in the schedule to negotiate upstream inclusion, the development team would be doing it. Google should also be letting contracts with upstream developers to help them absorb the influx. This isn't just for the kernel; Chrome notoriously forks the libraries it depends on, too.

The ax-sharpening metaphor is excellent.

Lack of young people involved in kernel development?

Posted Apr 20, 2010 22:30 UTC (Tue) by chantecode (subscriber, #54535) [Link]

In this article arises the question of the loss of young people involved in the kernel development. Ok the problem has been half broken already in the arguments, as you noticed: in fact these people are there already.

Being one of them, I pay attention to such folks. Even if the age doesn't appear to their email headers, you just figure it out :)
They are here in different ways, knocking for time to time, hesitating or being radically involved, depending on the degree of their shyness and experience. And they are here everywhere: arch/, kernel/, drivers/, mm/, etc...

And there are very promising people among them. In fact the real problem is not "how to attract fresh blood", it's rather "how to keep them" and how the community should behave in this regard.

Some notes from the Collaboration Summit

Posted Apr 27, 2010 5:28 UTC (Tue) by neilbrown (subscriber, #359) [Link]

> Andrew Morton raised an interesting related issue: as the core developers gain experience and confidence, they are happy to put code of increasing complexity into the kernel. That could indeed make it harder for new developers to come up to speed; it might also not bode well for the long-term maintainability of the kernel in general.

I think this is a real issue. We may be more confident, but I don't think we are more intelligent and there is a risk of over-reaching ourselves.
It reminds me of the well known quote:

> Everyone knows that debugging is twice as hard as writing a program in the first place. So if you are as clever as you can be when you write it, how will you ever debug it? ~Brian Kernighan

Fortunately we seem to be growing a useful collection of tools to help with debugging, but I think there is a real need to make things simpler too. Not necessarily less functional, but more elegant and transparent.

IBM: Rewards for pushing things along

Posted Apr 29, 2010 18:52 UTC (Thu) by Sho (subscriber, #8956) [Link]

> To that end, IBM has reworked things internally to reward developers who have managed to push things forward, even if somebody else's code gets merged in the end.

That sounds nifty. Is there any more information on how exactly IBM does this? How do they quantify "pushing things along", other than looking at signed-off-by and reviewed-by tags?


Copyright © 2010, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds