The Linus Torvalds Bus Factor

About this Document

This is an email exchange, that was converted into a web page. While
originally intended to start a discussion on
the Linux kernel mailing list it is in fact
more general, and illustrates a good point about open source software
development.

The Article Itself

First Email

To make sure that Linus Torvalds hits himself with a bus. I.e.: resigns
from his role as the benevolent dictator of the Linux kernel, at least
temporarily.

To advocate the enactment of a central git repository with several
commiters.

I’ll start with No. 2.

From what I understood, at the moment, only Linus can commit or accept
pulled changes to the repository of the vanilla tree. Other people have their
own personal repositories as well. This system works, but I believe it is
sub-optimal. Here are some examples why:

Subversion. 126 people with a commit bit - some of them inactive, but
still. I recall being present at #svn or #svn-dev on Freenode and seeing the
commits come by from the CIA bot constantly. (Some people apparently never
sleep.)

Pugs. Audrey Tang is extremely liberal about giving people commit access.
She gives it to practically everyone who asks or who has something to
contribute just so she or whoever, won’t be bothered with committing it
themselves. Even I received a commit despite my notorious
perl6-critique
essay. Larry Wall has said that it makes Pugs
“a
happy hivemind. Er, I mean family”.

And Pugs still works pretty well, even if it is slow.

KDE. KDE takes this to extreme. 100s of people with commit access - perhaps
even 1,000s. Commits are handed out liberally. And yet KDE works very well,
has many features, and is mostly bug free. It is so good that even the Linus
uses it, and has advocated.

Just for completeness sake, I should note that it also exists to some
extent with GNOME, but I cannot testify how liberally the commits there are
given. I have a commit bit there, too, but it took me some more time than
with KDE, where I received it as a birthday present for my 24+57/365’s
birthday.

---------------

None of these projects are using git - they are using Subversion now, and some
of them were using CVS to a great degree of the same effectiveness beforehand.
And they are all doing very well, and the integrity of the code is preserved.

Now, if we have the same for the Linux kernel (and I believe git has no problem
allowing it), then it will simplify processses, facilitate commiting some
simple changes, and generally make everyone happier. If Al Viro (for example)
can commit directly to the central repository a patch that re-indents some
code, it will be a better idea than to have him commit it to his own and then
request Linus to pull it from there.

Note that having many commiters does not mean anarchy. When I got a commit bit
to the central Subversion repository, I still submitted most patches for peer
review, because I was not confident enough to apply them myself. The same
happened with the GIMP, where I received a full allowance to do whatever I
pleased with the gimpressionist plug-in, but still was not confident in
commiting my patches directly to the GIMP core without consulting anyone. So I
sent them to peer review on the GIMP bug tracker, and after everyone were happy
with them (which ususally involved several iterations), I was able to commit
them.

What the KDE people do is that they ensure the quality of the SVN snapshots
by monitoring the commits feed, and by testing them extensively. And it works:
KDE is relatively bug free, and works pretty well, despite the fact that
everyone and his sister-in-law has a commit bit.

Note that you don’t have to depend on Linus or whoever to do this. You can
simply take the initiative and give commits to your own repository to people
who trust. You can call it a subversive (pardon the pun with svn) movement.
Linus may disapprove but since Linux is open source, you don’t need to ask
him. If Linus wishes he can eventually pull the relevant changes from the
multi-commit repository.

However, I’m worried about something slightly different. I’m worried about the
fact that Linus Torvalds started the Linux kernel project, and is still
heading it after 14 years, where it evolved from being a toy, to an
“enterprise-grade, industrial strength” kernel that is used anywhere from
8 MB embedded devices to super-computers, not to mention being the second or
third most popular desktop system (and second on IBM PCs) and the second or
first most popular for servers.

I’m not saying Linus is not doing a good job - almost everyone agrees that
he has been doing an exceptional job. However, being the benevolent dictator
( “for life” ) has made him the bottleneck, the poster boy, the scape goat, the
ultimate authority, and lots of other roles that he defaults to play. This is
unhealthy for the project.

It is known that Solon said
he was leaving Athens for a trip around the world, in the midst of his reform
for several years. But he in fact moved to a nearby Island where he observed
by proxy how they managed without him. Without being an insider of the Linux
kernel mailing list, I believe Linus voluntarily leaving will have a positive
effect.

At the moment everyone defaults to Linus, but if he “hit himself with a bus”,
they’ll have to manage without him. This will eventually lead to a better
internal organisation, and a much more robust solution. There might be a
different benevolent dictator. There might be a central git repository with
many committers. There might be something else. But it will be better than it is
today.

I hate the term “benevolent dictator for life”, because it assumes the
person cannot be overthrown or that there cannot be a mutiny (my term for coup)
against him. A benevolent dictator in the free software world must not be for
life because he may not be the best solution for ever.

Now that I think of it, I find it sad that people think of the Linux kernel
project as “Linus Torvalds’ baby”. Compare it to KDE which is a large amorphous
meta-project, with no-one known in particular, to Subversion, which while
having many prominent contributors has no poster child. And then there’s Perl,
which while Larry Wall is its undoubted demi-god, has many other prominent
figures.

Of course, like I said, you can do a mutiny without asking Linus, by starting
out a central repository for the kernel with many commiters. If this works,
then this repository may eventually become the de-facto kernel (and Linus
would no longer be the benevolent dictator). If it won’t work, then we’re not
better off, but very little time was wasted.

Linus *can* resign willingly, which may be even more desirable. However, the
Linux kernel is a FOSS project after all, and if you don’t like something, you
can always fork it, or at least create your own branch, patchset, etc. in the
version control repository.

David Miller’s Response

Please nobody reply to his posting, I’m shit-canning this thread from
the start as it’s nothing but flame fodder.

My Response to David Miller

I sent the following response to David Miller after a while. It never
arrived at LKML for some reason.

Hi Mr. Miller!

Must resist urge.... people are human... they perform logical fallacies...

Oh! What the heck!

Please nobody reply to his posting.

Fair enough.

I’m shit-canning this thread from the start as it’s nothing but flame fodder.

“Nothing but flame fodder”. How many logical fallacies are in these 4
words:

Labeling. You’ve labeled my message as “flame fodder” so
“it Must be the Truth”. But any assertion requires a burden of proof:

Show me the Reasoning!!!

( Who’s your m*****-f****ing Jewboy brother, David? )

Lack of proof - see above.

All or nothing thinking and over-generalisation. You’ve said it’s
“nothing but flame fodder”, so you’ve told us that assuming it is indeed flame fodder
(which may be the case) than it is *nothing but* that.

Evasion - you’ve not replied to any of my suggestions or reasoning.
Instead, you just implied “You suck”.

Now I’m not saying what I said is indeed a good idea. It may or may not be.
But this is not the mature and philosophically valid way to deal with it.

I purposely said “Let the flames begin” at the end to be whimsical and to let
people think twice before they do it. I could consider what you wrote as
a flame as well. (Although possibly a “fight fire with fire” one).

I wrote this message in the course of about two hours, and then consulted
people on the IRC on it. I cited several URLs and references. I have made a
lot of contribution to free software in the past, but
even if I did not, I believe my suggestion should have been dealt with by
explaining to me why what I suggested was a bad idea, in your opinion.

Best regards,

-- Shlomi Fish (who happens to have a natural obsession with Applied Logic.
It’s a curse, but often is also a blessing)

Coverage and Comments

Someone I talked with about this incident (without showing him the actual
letter) said that preventing flame wars by killing inflammable, but pertinent,
topics was similar to preventing rape by killing all the women.

If you like what you see here, or have any comments, suggestions or
corrections, feel free to E-mail me about it. I’d love to hear from you. If
you have found what I did helpful or entertaining, please consider
helping.