Log in

29 August 2007 @ 08:38 pm
On the benevolent dictator model  
Recently, Josh Berkus blogged about The Myth of the Benevolent Dictator. In it he complained about people who try to posit that a benevolent dictator was "an unalloyed asset" to their project, and that there were many successful and valid forms project governance other than the singleton project leader. Furthermore, he argues that the best way is to form a community, and then ends by suggesting that people who say "dictatorship good" is really saying "democracy bad", and perhaps the motives of the person using that argument should be questioned.

Given that I was one of the first people (and probably the first person) to use that phrase to describe Linus's governance model, obviously I feet the need to respond to his thoughts on the matter.

First of all, the term "benevolent dictator" comes from an old saying, "the best form of government is the benevolent dictator --- there's only one problem, finding the benevolent dictator"[1]. And in my presentations where I explained the Linux project management model, I was always careful to say that there were other models that were used by other projects, and that it was interesting to study why certain management models worked for some projects but not others.

So by definition, if a project is successful with a single project leader ultimately responsible for making decisions to settle conflicts, then that leader is a "benevolent dictator"; if they aren't successful, then that would be an example of a dictator who wasn't able to be "benevolent", eh? :-)

In all seriousness, though, I agree with Josh when he says that the key part of an open source project being successful is gathering together a healthy community. But let's unpack that a little. In order for a community to be healthy, there needs to be general consensus on the values and cultural norms for that community. So for example, in the case of Debian, which Josh holds up as a successful community, not everyone has the ability to vote; you have to pass a fairly stringent process which tests your technical skills and your willingness to subscribe to Debian's core values as embedded to the Debian Social Contract. People who do not pass the New Membership process do not have the right to vote in Debian, even if they are the most rabid, fanatical users of Debian.

This brings up a key point about governance analogies; they all don't map cleanly into the real world for two closely related and extremely important reasons: (1) No one has a fundamental human right to be a member in some OSS project, and (2) No one is forced to stay in a particular OSS project. These are really two sides of the same coin, and what it means is that, as in Debian, "democracy" does not mean that everyone is entitled to political franchise, or the right to vote, and in a project which has a "benevolent dictator", the powers of the dictator is fundamentally limited by the simple fact that if he is too unreasonable, people are always free to leave or fork the project. These differences are extremely important when trying to reason about "democracy" or "dictatorship" as being good or bad as applied to open source projects.

Democracy is rarely the best way for an open source project to make decisions. For technical issues, you want the right answer, and majority vote isn't necessarily way to resolve a technical issue. As far as policy decisions, if the decision can not be made by consensus, then some percentage of the community will be unhappy with how the decision, and that can cause a huge amount of arguments and dissension. If the community has very clearly expressed values, then the number of times where such votes need to be made will be minimal.

For example, Debian has an explicit declaration of its values and mission in its Debian Social Contract; people who don't agree to the Social Contract aren't allowed to become Debian Developers and thus are not allowed to vote. But, one of the more controversial disputes that have threatened to tear apart Debian is the question of the non-free packages, and that's fundamentally because of an ambiguity in the Social Contract. On the one hand, Debian has declared that it is fundamentally 100% about Free Software, to the extent that it has adopted Richard Stallman's rather petulant request that the Linux operating system be called GNU/Linux (which admittedly is better than Lignux.) On the other hand, the Social Contract also explicitly specifies the existent of the non-free section in the distribution. Over time, this ambiguity have been the source of a lot of highly passionate debate and controversial votes that have satisfied neither the FSF fanatics nor the more Linux-like moderate position tolerating the use of proprietary as well as open source software. I submit that if Debian had either explicitly stated an FSF-centric position, and only accepted members that supported point of view, or explicitly subscribed to a position that users should be able to use whatever software they feel meets their needs, as Ubuntu has, it would avoided many arguments that have threatened to tear apart Debian.

More recently the fact that the Social Contract has been silent about whether or not Debian Developers should be paid or purely be 100% volunteer. This was never an issue in the Linux Kernel community, but for some reason it has been a highly divisive and disruptive issue inside Debian. Democratic votes have not really resolved the conflicts, and in fact some might claim that these votes have if anything hardened various Debian Developers' positions.

Going back to Josh's final point, "Next time you hear the words 'benevolent dictator' you probably want to think about the motives of the person saying it. Because the corollary to 'dictator good' is 'democracy bad', and is that a place you really want to go?", I am quite proud to stand by my convictions that for Open Source Projects, pure democracy is a bad idea. If a projects wants to be technically successful, it needs to be a meritocracy, and chose the best technical decisions; Linus does not decide by abiding with majority vote whether or not a patch should be accepted, and that's as it should be.

Even Debian's "raw democracy" doesn't let any random luser get to vote on who should be the Debian Project Leader. Decisions need to be made by people who are competent to make a valid choice. Even in real life, one could argue that the choice made by Americans, over of which 70% believed that Saddam Hussein was "very likely" or "somewhat likely" to be personally involved with the 9/11 attacks even though there has been absolutely no evidence to support this "gut feeling", made a rather disastrous choice in voting to re-elect George Bush to the presidency. Democracy without sufficient education, literacy, and intellectual curiosity to learn about what is happening in the world can result in truly disastrous choices being made. So certainly, democracy is not a panacea. In the real world, it may be the best choice of many bad choices, given how much people have suffered under military dictatorships. However, in the Open Source world, things are different because people are always free to leave one project and affiliate with another --- not an alternative most people living in dictatorships have historically had. Given these key differences, I think it is clear that for open source projects, democracy is indeed often a bad idea, and that if you if a project has a single person with a strong technical vision and good interpersonal skills, the benevolent dictator model can indeed be a very viable and successful.

Does that mean that other forms of governance can't work? Of course not! The rotating dictatorship used by Perl[2], the core-team-with-strongarm leader used by OpenBSD, the corporate dominated scheme of MySQL, the self-selecting core team model of Samba, all are successful models. I just have to strongly disagree with Josh's claim the single strong leader approach is somehow inferior to "democracy" as if democracy was somehow a magic bullet.

[1] For am early example of this quote, nine years ago, please see this message, where I'm pretty sure I authored the colon prefixed quote, and I know I was using the term "benevolent dictator" much earlier than 1998.

[2] In the early days of Perl, it also used the benevolent dictator model. Larry Wall is a great exemplar of how someone who has a strong vision of what he wanted to accomplish, and was humble and easy to work with, both on-line and in person, can make all the difference in the world for an up-and-coming open source project.
(Anonymous) on August 30th, 2007 06:56 am (UTC)

Actually, I believe that most historical dictators have been benevolent, i.e. intending the best for their peoples and believing that they were actually doing so.

So I don't agree that finding the benevolent dictator is hard. But it doesn't work even if we do.

This comment has nothing to do with management of Linux or BSD, of course.

Jon Kåre Hellan

zwolzwol on August 30th, 2007 08:10 am (UTC)
I don't disagree with your own points, but I am extremely dubious about the description of Debian as a successful community. It's a successful distribution — I will use nothing else — but I firmly believe that this is in spite of its community structure and norms, which are among the worst I have ever seen in a free software project.
zwolzwol on August 30th, 2007 08:13 am (UTC)
I should add that the problems I see with Debian's community have very little to do with ambiguities in the social contract, the DFSG, or whatever. They are, to first order, about specific people who do not play well with others and are permitted to continue not playing well with others despite being in positions where others have to play with them to get anything done. If you see what I mean?
Ted Tsotytso on August 30th, 2007 11:07 am (UTC)
I agree that one of the major problems with Debian is the cultural expectation that if you are good enough technically, it excuses a lack of social skills. Unfortunately, this can lead to people who will put on the social airs of being a diva, even though their technical skills don't really justify it. What they don't see is there are some people who are incredibly smart and technically very sharp, and yet are very gracious, kind, and very pleasant to be around. An example of one such person, which which I am proud to call friend and have always enjoyed working with, is Stephen Tweedie.

So yes, Debian seems to culturally believe that technical excellence excuses boorish behavior, and yes, that isn't something which is explicitly spelled out in the Social Contract, but rather something where people who act in a certain way aren't called out and censured. There is a belief that people who act out on mailing lists shouldn't be called out since that would be somehow infringing on their free speech rights, and that is somehow more important than the health of the community. Attempts to add a code of conduct ala what Ubuntu has have been roundly mocked by some Debian Developers, and interestingly, some people think it is self-evident that technical excellence is the only thing that matters, and being able to play well with others is irrelevant.

In many ways, this reminds me very much of the early NetBSD community, and it's one of the reasons why I never had any interested in joining with that community, even though I knew a number of the NetBSD core team members, either through my time with the IETF or because they were part of Cambridge/MIT social circles.

This tendency certainly makes Debian sometimes a very unpleasant and not very fun place to participate in, but it's not the cause of the conflicts. It just means that Debian has a terrible time trying to resolve the conflicts. But still, once a community reaches a certain size, it really is best if it has a very clearly set of beliefs and values, and which that there is not only agreement on those beliefs, but also agrement about what's not important that people in that community believe in. For example, if you have a group where fundamentally if you want to join, you had better believe that Linux is good, and Vista and Windows Genuine Advantage is horrible, that's a good thing. The group might also say that while individual members might have strong, passionate beliefs about "emacs vs vi", it's not fundamentally important to members of the group working together to achieve the group's stated aims.

But if you don't have this clarify into beliefs, then if you get some people who think that some position A is extremely important, and other people think that NOT A is extremely important, and more people wondering why people are wasting their time arguing about A or NOT A, and then you combine it with a dysfunctional social culture, you can have a very bad situation indeed.

So I agree with you, and I agree that's an important part of forming a healthy community. I was focusing more on the fact that certain things aren't decided democratically, but rather are inherent in whether or not an individual chooses to affiliate with a group. So in that sense, whether it is an individual strong leader saying, "This is my vision, and if you don't like it, the door is over there", or Debian saying, "If you don't buy into the Social Contract, get lost", it's really both the same thing, and that this is indeed a healthy thing for an Open Source Project to do.
gravityboygravityboy on August 30th, 2007 02:08 pm (UTC)
The community exists entirely to produce the distribution though, so if the community is wildly successful in achieving that goal then I'd say it's a successful community. Yes, the structure and norms of the community could be better, and my very strong sense is that it's been changing for the better over the last two or three years, but that's a totally separate issue from success.
Ted Tsotytso on August 30th, 2007 02:47 pm (UTC)
Given the extremely long release cycles which has caused people to tend to refer to Debian Stable as "Debian Obsolete", there is some question whether or not the community is "wildly successful". For people who are running file servers, who don't need up-to-date spam and/or anti-virus packages, maybe Debian is "wildly successful", but I don't know if others would agree with that characterization.
Mark Brownbroonie on August 31st, 2007 10:55 am (UTC)
volatile pretty much deals with the anti-virus/spam problem, though we'll have to wait until Lenny for it to be supported by d-i unfortunately. Hopefully the kernel/X update for etch 1.5 will come off too.

As far as "obsolete" goes I think we're not doing too badly in that most of the users who are really upset about that are people who are able to run testing or unstable. There is something there for them, even though it's not ideal.
zwolzwol on August 30th, 2007 07:14 pm (UTC)
The community exists entirely to produce the distribution though, so if the community is wildly successful in achieving that goal then I'd say it's a successful community.

This is the sentiment I am disagreeing with when I say Debian is a successful distribution in spite of its community. In my opinion the successes of Debian depend first on a lot of good technical work which continues to be done by individual and small groups of DDs without significant help from the larger community, and second on good technical decisions made semi-collectively a long time ago when the community was less dysfunctional (i.e. the original Policy manual). The best the larger community is capable of doing right now is staying out of the way.

I agree that the nadir was two or three years ago and that things have improved, but I still think the present state is far and away worse than any other free software development effort I am familiar with.

For context, I've been tracking unstable for my personal use since 1998 and reading various Debian mailing lists almost as long. I've never been a DD, though I guess my name is on a package now.
Mark Brownbroonie on August 31st, 2007 11:19 am (UTC)
FWIW a lot of the functional Debian community stuff happens on IRC rather than e-mail these days - things are actually a lot better than they seem from the mailing lists for people there. This does end up excluding people and inhibiting some kinds of discussion, unfortunately - it's good to see the mailing lists getting better.
Karl Rammkcr on August 30th, 2007 12:40 pm (UTC)
I would submit that if Debian had either explicitly stated an FSF-centric position, and only accepted members that supported point of view, or explicitly subscribed to a position that users should be able to use whatever software they feel meets their needs, as Ubuntu has, it would avoided many arguments that have threatened to tear apart Debian.

Sure, and there would be a lot fewer people running it. I think the pragmatic approach that, say, allows my laptop to have working wireless ultimately produces the better/more popular distribution. I doesn't matter if everyone's holding hands and singing if no one's using the product.

blue shark of friendliness: cpuckd on August 30th, 2007 02:52 pm (UTC)
I think the key is that the ability to freely join and leave projects is, in effect, democracy. Josh even recognizes this in a sense with his "projects with bad dictatorial leaders tend to fail or at least labor in obscurity"; he doesn't seem to connect that through to the idea that the result is really "democratically chosen benevolent dictators".

Perhaps "benevolent dictators by consensus", since there are no formal votes; even if you consider the membership of a project as a set of votes, each is not of equal value because some contributors will be more effective than others (as coders, evangelists, designers, documentors...).
hartmans on August 30th, 2007 03:02 pm (UTC)
If you're going to use Debian as an example, I think you should
probably mention that even in Debian, there is a fairly strong
consensus that technical decisions should be decided through
mechanisms other than democracy. While the process does allow a
technical decision to be decided by democracy, I think you would find
very strong pushback if you took that approach for most technical decisions that do not ultimately boil down to some value question.
(Anonymous) on August 30th, 2007 05:07 pm (UTC)
Benevolent Dictators
The problem with a benevolent dictator is not in finding one, many will start off as being benevolent, but it is the issue of ensuring that they remain benevolent. Power corrupts and too many leaders that begin as benevolent eventually become corrupted by that power.

I agree with you that saying that benevolent dictator is good is not to say that democracy is bad. My personal view, and I enjoy the freedoms that are part of a representative democracy that is Canada, is that although a benevolent dictator is the most efficient form of government a democracy is the most effective in the long term.

A benevolent dictator requires less time to make a decision and it is done on merit rather than on perception. A benevolent dictator looks after the wellbeing of the whole, something that is frequently lost as the dictator becomes less benevolent, and so everyone prospers as a result.
(Anonymous) on August 30th, 2007 10:10 pm (UTC)
Democracy and franchise
Certainly, it's pretty easy to point out that democracy can be bad: Placing the fate of Ubuntu in the hands of the ubuntu-forum users is disasterous (see Automatix).

But I've never been a fan of Debian's structure. The new developer process is obtuse and selects for only one kind of expertise. We sometimes complain about the lack of Free artwork and artists, but Debian has only thrown barriers to the endeavor. There's also the educational materials -- it's too hard to find useful information on creating .debs from debian.org, and little in the way of instructive tutorials.

I actually like Ubuntu's approach with the MOTU, even though it was motivated primarily out of a need to canvass the Debian upstream with fewer developers. MOTUs are a bridge for novice developers to cross. It's done Ubuntu a great favor by providing a way to combine enfranchisement with education, rather than the antagonistic filtering process of becoming a DD. I hope that the process has also lead to more people becoming Debian Developers.

I don't know if it's a matter of community standards, but Ubuntu has had very few votes during its existence. Mostly just approval votes for the Community Council. There's also the Technical Board, but I don't know as much about how that operates (its composition seems to rely on the judgement of sabdfl).
(Anonymous) on September 5th, 2007 04:24 pm (UTC)
Ironically, PostgreSQL is not a Democracy
"I just have to strongly disagree with Josh's claim the single strong leader approach is somehow inferior to "democracy" as if democracy was somehow a magic bullet."

I found the whole post from Josh confusing on this point alone, since PostgreSQL is not run as a democracy. More posted on this at http://people.planetpostgresql.org/xzilla/index.php?/archives/317-PostgreSQL-is-Not-a-Democracy.html