Sunday, May 4, 2008

Ubuntu could not exist without Debian

Matthew Garrett expressed frustration with Debian recently, in a blog post that’s become rather famous.

I’m of the opinion that Ubuntu could not exist without Debian. So it’s absolutely my intention to see that Ubuntu is a constructive part of the broader Debian landscape. It’s vital that Ubuntu help to sustain and grow Debian, because it’s the breadth and strength of Debian which make up the “shoulders of greatness” on which we in the Ubuntu community stand when we reach for the stars. That doesn’t mean I’m naive enough to think this relationship will ever be an easy one, but I would hope that the discussion doesn’t turn into one of “Ubuntu versus Debian”. Because it isn’t the case that one of them will succeed and the other fail. You could only perceive that as an outcome if you assumed that the two have exactly the same goals.

And that’s where I think a lot of tension is created: it’s hard to know what Debian’s goals are. Those goals are technically articulated in some founding documents but I don’t believe the specific, detailed nature of those goals is actually matched by the personal goals of many members of the community, or users. Debian, in many senses, is at that dangerous stage where it’s a victim of its own success. Its infrastructure and developer recruitment model are for many people what define Debian, and they have been so successful that a community has been created of people who, drawn together by the same things, nonetheless have subtly different personal agendas and goals.

Those differences are a cause of tremendous stress.

When a flamewar erupts, the notional topic of the flameage is often less relevant than the underlying tension between people’s true goals. It’s hard to come to agreement on how to address a specific issue, if there’s no agreement on the very high-level goals that everyone is working towards. Arguments go on forever because one person REALLY wants to see Debian get even more stable on the server, and another person wants to see it get even more cutting edge on the desktop. One person wants more translation of stable versions of applications, another wants newer versions which are by definition not as well translated. One person wants fewer architectures, another wants the full power of Debian on a small embedded architecture.

And all of them have every right to BE RIGHT. All of them, ARE right.

The problem comes if anybody believes that one institution, one product, one single leadership team can synthesise all of that into something which is optimal for EVERYBODY. It’s just not possible to deliver one thing which is optimal for two sets of conflicting requirements, let alone those of a thousand or so of the smartest, most passionate, and lets face it most eclectic of the world’s free software developers. Debian has almost unlimited capacity for some things, by virtue of its openness and democratic governance. That is a wonderful thing. At a time when we all must play to our strengths, many organisations out there would love to have a strength as potent as that. But openness and democracy come at a price if you have narrow goals. No one person or institution can bend that democratic forum to its own specific goals, whether they be desktop, server, embedded, global, local or whatever. Debian, like any institution or product, cannot be all things to all people. It can also not be perfect for one group at the expense of another.

To me, this is the real joy of Debian - it can provide a forum for almost every part of the free software world to come together to hammer out differences and find common ground to the extent that common ground exists. It’s a level playing field - independent of company agendas or technical historical baggage. Debian is the Tibetan Plateau of the free software landscape - elevated through the grinding efforts of conflicting passions to the point of forcing those who visit to get along in a somewhat rarified atmosphere. It can be difficult to breathe up there, sometimes :-). It’s a bit like the Linux kernel itself: show up, with code, and take your place at the table. And the results are spectacular - Debian as a community creates what I believe is one of the great digital artistic works of the era, and frankly comes as close as I can think possible to actually delivering something that does meet all those conflicting agendas and goals.

Consider Sid. Yes, it breaks your toys now and then, but by and large it represents an extraordinary achievement - pretty much the latest releases of the upstream communities, packaged and categorised. Nothing else, from Ubuntu or Red Hat or Novell (or Microsoft) comes anywhere close. Debian Developers are at their happiest running and working on Sid - a recent survey found that something like 76% of Debian users run Sid, while only something like 6% of Ubuntu users run the equivalent beta code. And remember, Ubuntu only has an Edgy or an Edgy+1 because of Sid. When I look at the ebb and flow of discussions on the Debian mailing lists, I see that Sid is in fact where the very best of Debian comes forth. It’s forward looking, it’s focused on the next generation, it requires exceptional skill and up to date technical knowledge to participate, and it’s not subject to the same political tradeoffs that are inevitable when dealing with releases, architectures, dates, deliverables, translation, documentation and so on. There are very few flamewars about Sid.

If Debian were a business, now would be the time for a careful review of strengths and weaknesses, and perhaps for a plan to focus the resources of the organisation on the things it does best. There’s nothing wrong with cutting goals. Jane, the COO at Canonical, keeps me on the straight and narrow with a fairly regular pruning of Canonical’s focus points too :-). Every conflicting goal sucks resources from the overall cohesiveness and strength of the group. If there is no consensus in the community, and the leadership don’t think they can get consensus, then it might be better to cut out those conflicting goals altogether. To my mind, the two things that Debian developers absolutely agree on are first, the uncompromising emphasis on free software, and second, the joy of Sid. If I was to try to resolve the bickering and frustration that I see evident in the community, that’s where I would direct the focus of my efforts. Of course, that’s a tough approach, and leaves many other goals for other people and other communities. But it’s where I think Debian, and DD’s, would be most productive and ultimately happiest. There are many things that Debian does brilliantly - celebrate that, focus on it, and trust that others will fill in the gaps.

By contrast with Debian’s Plateau, Ubuntu is a cluster of peaks. By narrowing the focus and allowing the KDE, Gnome and server communities to leverage the base of Debian without treading on one another’s toes, we can create a K2, and a Kangchenjunga and a Lhotse. Ubuntu’s peaks depend on the plateau for their initial start, and their strong base. Ubuntu needs to be humble about its achievements, because much of its elevation comes from Debian. At the same time, Ubuntu can be proud of the way it has lifted beyond the plateau, drawing together people with specific goals to raise the bar and deliver specific releases that meet ambitious, but narrow, goals.

Many people have asked why I decided to build Ubuntu alongside, or on top of, Debian, rather than trying to get Debian to turn into a peak in its own right. The reason is simple - I believe that Debian’s breadth is too precious to compromise just because one person with resources cares a lot about a few specific use cases. We should not narrow the scope of Debian. The breadth of Debian, its diversity of packages and architectures, together with the social equality of all DD’s, is its greatest asset.

So, what’s to be done about the current furore?

A little introspection is healthy, and Debian will benefit from the discussion. Matt is to be credited for his open commentary - a lesser person would simply have disengaged, quietly. I hope that Matt will in fact stay involved in Debian, either directly or through Ubuntu, because his talent and humour are both of enormous benefit to the project. I also hope that Debian developers will make better use of the work we do in Ubuntu, integrating relevant bits of it back into Debian so as to help uplift some of those other peaks - Xandros, Linspire, Maemo, Skolelinux and of course Etch. And most of all, I hope that Debian will start to appreciate its strengths even more, and to play to them, rather than dividing itself along the lines of its weaknesses. Debian/rules, remember?

Ref. Mark Shuttleworth

No comments: