Donnie Berkholz ([info]spyderous) wrote,
@ 2006-08-23 17:04:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:communication, gentoo, leadership

[Gentoo] Democracy: No silver bullet
I started my fourth year as a Gentoo developer in June, and Gentoo's changed a lot since I started back in 2003. We've become a drastically more democratic organization. But the question remains — Is this a good thing? When I think about where Gentoo was when we turned into a democracy years ago, and where Gentoo is now, I don't see much of a difference on the large scale. We lack any global vision for where Gentoo is going, we can't agree on who our audience is, and everyone's just working on pretty much whatever they feel like.

When I joined, Daniel Robbins was in charge, period. Seemant Kulleen and Jon Portnoy were basically his lieutenants. What Daniel said was what happened, and woe to anyone who angered him. This generally worked out pretty well, but as Gentoo grew, it didn't scale. Everything significant still had to go through Daniel for personal approval.

Shortly after I finished training and became an "official" developer, Gentoo gained its first real structure via Gentoo Linux Enhancement Proposal (GLEP) 4 — "Gentoo top-level management structure proposal". The GLEP process itself was quite new then; GLEP 4 was really only the second proposed GLEP (the first two were details related to the GLEP process) and the first one that was accepted. Its goal was to improve communication and coordination as well as increase accountability.

GLEP 4 formalized a hierarchy of so-called "top-level" projects — between 5 and 10 major areas into which everything in Gentoo could be divided. Daniel appointed the original project managers, who served under him.

Democratic elections entered Gentoo when we realized that we needed to create a new top-level project for all the desktop work, because it didn't fit into any existing project. Since managers already voted amongst themselves on GLEPs, it seemed like a natural extension for them to vote on a new manager. The call for nominations is archived online. I'd been a developer for around six months at this point, and by then I was the lead X maintainer. Brandon Hale was active in maintaining window managers and other miscellaneous applets and such. Turns out that the vote tied, so we became co-managers.

I didn't realize it at the time, but that was the beginning of a very slippery slope.

Gentoo used to be a courteous, friendly development community where nobody was afraid to speak his mind for fear of insult and injury. I see a clear correlation between the growth in democracy and the departure of courtesy. Once people are empowered to vote on every decision, rather than just having their discussion taken as input in a decision, they get a lot more vehement, argumentative and forceful about getting their way. Flamewars and loud arguments going on for hundreds of posts have become commonplace, despite the occasional outcry. Here's one such outcry, on March 20, 2006, to the private developers' list:

What I've seen for the last 18 months or more is a general degeneration
in the attitudes of developers for their fellow developers.
When I
joined, the attitude of people was friendly and welcoming. I screwed
up a couple of times. I didn't get my ass handed to me. I got picked
up, and comforted. And taught and tutored. ...

So, we split from the Gentoo Technologies company, to a community owned
Gentoo Foundation. And now everyone was empowered. Everyone has a
voice. Some louder than others. The unfortunate thing is that with
this empowerment came a bit of assholishness.
With rare exception,
we're pretty much all guilty of that. Someone makes a spelling error in
a commit, and that leads to flamefests on irc and mailing lists and blog
entries. And so on, ad nauseum.

Frankly, I'm sick of it. It's burning people out. We're burning
ourselves out by being this way. It's time to stop this shit. To
everyone reading this, you've arrived at the important bit. From now,
please try this little thing. When you're on the mailing lists or the
fora or irc channels or in /query or somehow in the gentoo 'verse,
please try, just try, to be a little bit nicer to the people with whom
you're interacting. That's all. Have a little respect (even if not
deserved!). Listen a little. Hold back the snide comment, the
sarcastic remark. I don't mean to get all Oprah on you all, but I hope
you see my point -- just be nice for a change.


The vocal minority often gets its way, despite 99% of the other developers being happy with any given situation.

The problem got so bad that our Developer Relations team wrote up an etiquette guide. Unsurprisingly, the same vocal minority that generally behaves like an ass and violates said etiquette guide erupted in flames over it, and it ended up fading into an existing but largely irrelevant piece of writing.

Around the same time, more cries of "Democracy!" and "Eliminate the cabal!" forced developer relations (devrel) to come up with a huge, bureaucratic, court-like system for disciplining pretty much the same group of people again. Everyone treated it like a world of extremes of good and evil, where democracy is absolutely good and purity, and anything other than that is evil. This added bureaucracy has essentially rendered this side of devrel powerless, meaningless and useless.

All in all, the vocal minority has done a splendid job of becoming more influential, crippling Gentoo's ability to do anything at all about its members, their flames, their outstanding work at ruining people's fun and enjoyment of Gentoo, and their waste of everyone else's time.

How can we do anything about this? As people such as Mike Auty have pointed out, the problem could be with the increasing barrage of rules, regulations and policies to which we're expected to adhere. Take a look at the FreeBSD committers' rules. Rule one is "Respect other committers," and rule two is "Respect other contributors." Take a look at the importance of courtesy and care to avoid creating long-term disagreements in rule one:

Being able to work together long term is this project's greatest asset, one far more important than any set of changes to the code, and turning arguments about code into issues that affect our long-term ability to work harmoniously together is just not worth the trade-off by any conceivable stretch of the imagination. ...

First calm down, then think about how to communicate in the most effective fashion for convincing the other person(s) that your side of the argument is correct, do not just blow off some steam so you can feel better in the short term at the cost of a long-term flame war. Not only is this very bad “energy economics”, but repeated displays of public aggression which impair our ability to work well together will be dealt with severely by the project leadership and may result in suspension or termination of your commit privileges.


Or how about the Ubuntu Code of Conduct? The first two rules are "Be considerate" and "Be respectful." Again, note that these rules are actually enforced. As has been pointed out on the Gentoo development list, you can have respect without courtesy. But Gentoo needs both! One just isn't good enough.

But what about Gentoo? We don't have any overriding principles like this from which all of the standards for behavior derive. Instead, we have a large document explaining specifically and in detail what's allowed and what isn't, and even that is ignored. Because of the bureaucracy and the lack of respect for devrel's role, we're effectively powerless to do anything when people behave in a way for which the FreeBSD project's leadership would kick them to the curb.

I'm not the only one to suggest that a democracy isn't the most productive way to run Gentoo. When people wanted to change in how Gentoo was run, democracy was the only option considered, rather than simply changing the leaders. There's an ongoing assumption that if problems exist, it must be somewhere in the structure rather than in the people.

If I could go back in time a couple of years and prevent this democracy from ever happening, I would. If I could fix these problems myself, I would. But it requires buy-in from the entire Gentoo community if we're to do anything about it.



(Post a new comment)


[info]gravityboy
2006-08-24 12:58 am UTC (link)
You know, when Gentoo was getting hot initially and a lot of people moved to it from Debian, we heard a lot about how much friendlier Gentoo was. Debian used to be like that too, but then we got huge (even well before I joined). I knew that Gentoo, being set up in a very similar manner to Debian, would end up dealing with the exact same issues. It's a huge problem that we're working on solving piece by piece. We're making progress on small fronts, but it's proven *really* hard to get anywhere.

Debian is still successful because we're a meritocracy, but we suffer from the same problems with lack of direction that you guys are having now. We don't have a solution to it yet though. We aren't so much a democracy as a meritocracy, which has kept the package quality high, but it still suffers from the problems of no direction, which is one reason why Ubuntu has managed to eclipse us in many people's minds so fast.

While we have a draft for a community guidelines like Ubuntu, we aren't really using it. In practice, it's turning out that calmly telling someone, especially off-list, that they need to calm down because the person they're flaming is an actual human being works pretty well. Our debconf conference seems to help enormously in making the huge developer community seem more friendly by putting faces and voices to the names on the screen. There are still some serious issues, but we're seeing that it's usually the same troublemakers causing flamewars to reach epic hights. We're moving more towards actively removing people from individual mailing lists, teams, and the Debian project itself as a means of dealing with these people. It's pretty organic, but it's working better every day. If all else fails, we go to the beaurocracy, which works but it's a last option. It sounds like you guys have a little too much of the beaurocracy going too fast.

Anyway, I could go on about this forever. It's been a major topic in Debian for years (I can't believe you guys use the term "cabal" too) and it's still the focus of pretty much all our non-coding/packaging attention. We've gone through a lot of growing pains too, and hopefully you guys can pull stuff from us to avoid them yourselves. Our constitution is actually quite well written and may be worth a look because it strikes a good balance.

(Reply to this) (Thread)


[info]spyderous
2006-08-24 01:16 am UTC (link)
> We're moving more towards actively removing people from individual mailing
> lists, teams, and the Debian project itself as a means of dealing with these
> people.

Yeah. The problem here is, our "devrel" group supposedly has the mandate to do stuff like this. But it's tied up in miles of red tape to actually do anything, so we're stuck on this front too.

(Reply to this) (Parent)(Thread)


[info]gravityboy
2006-08-24 04:45 am UTC (link)
Yeah, we just have different assigned positions for this sort of thing. Each one is a potential point of failure which is an issue in practice, but it does manage to avoid the red tape.

(Reply to this) (Parent)


[info]spyderous
2006-08-24 01:18 am UTC (link)
> We aren't so much a democracy as a meritocracy

What do you mean by this? I understand the difference in theory, but how do you run it differently in reality?

(Reply to this) (Parent)(Thread)


[info]gravityboy
2006-08-24 04:42 am UTC (link)
It's pretty simple. We have a sorta-democracy in that we do vote on some things like who becomes the Debian Project Leader. But in terms of a package, the maintainer gets the final say on pretty much anything technical. They're trusted with this because they've shown their merit by doing good work in the past. We don't really vote on overriding a maintainer's decision, so the day to day business isn't democratic.

(Reply to this) (Parent)(Thread)


[info]spyderous
2006-08-24 05:00 am UTC (link)
Yes, sure, but there's a lot more to a distribution than maintaining packages. And that's what I'm talking about.

(Reply to this) (Parent)(Thread)


[info]fooishbar
2006-08-24 07:43 am UTC (link)
That's where it kind of falls down. People are wary of decision-by-fiat after the Bruce Perens fiasco, so mailing list discussions tend to end up in people attempting to shout louder. A lot of people are just bypassing that, getting a small group of people together, getting the work done quietly, and then announcing it post facto.

(Reply to this) (Parent)(Thread)


(Anonymous)
2006-08-24 07:45 pm UTC (link)
This is what I'd like to see more of. Instead of having the community debate project specs, please prepare a working example ahead of time (within your small group of interested individuals), iron out all the kinks and then propose it to the community. People then could perform hands on testing, review the design and suggest improvements. It would also lessen the amount of "my solution is better than your solution" as it's hard to challenge real-code with vap-o-ware. This is Open Source and we are developers after all, we shouldn't neglect the "source" part of our work.

(Reply to this) (Parent)


[info]gravityboy
2006-08-24 09:27 pm UTC (link)
It seems to be working surprisingly well. I personally am becoming less and less interested in the project as a whole, beyond the release. It's just too overwhelming (re: python transition hell). Focusing on a couple small teams is way more fun and productive.

(Reply to this) (Parent)


[info]wouterverhelst
2006-08-24 04:13 pm UTC (link)
The meritocracy stuff goes beyond maintaining packages, too. The "if you do the work, you get to decide" goes for anything.

As an example, the first person doing MIA work (for identifying, and eventually disabling accounts of, developers who no longer seem to work on Debian) just started sending out some mails to inactive developers. When his work seemed to be successful, he got a mail alias set up, and some database was set up on a project machine by the system administrators. By the time he handed this responsibility over to others (I believe it's a team now), an entire infrastructure and procedure had been set up.

This was never challenged or anything, even though disabling accounts of supposedly inactive people is a rather sensitive subject.

Usually, this is how things work in Debian.

(Reply to this) (Parent)

Sadly this is the current state of reality for Gentoo
(Anonymous)
2006-08-28 03:09 pm UTC (link)
You are right my friend, I myself have found that on topics about this very sort of nature, I asked why no one was considering this guy's posting about the problems with Gentoo he is having.

The difference is, unlike some, he didn't just complain he had actual solutions that would work (he had a tremendous wealth of experience with Linux) and all I read was a flame war.

They basically told him to take a number, shut up and sit down. He kept honestly trying to reach out, but it got worse for him.

I asked a few questions and backed him up, saying much of what you said in this blog. I found myself in middle of the flame war, caught in the crossfire, un-expectedly.

They treated me the same, with complete dis-regard and dis-respect. And they said things like "It's easier to blame your problems on others, isn't it?" and the like, when all I was attempting to do much like this guy was doing to reach out.

Who knew I'd be reaching into a black pit filled with asps & scorpions. It is like a lot of threads, flame war --> topic locked.

Most people who do this let their ego blind them into thinking they have a problem to begin with, when they couldn't be more hypocritical.

Sadly this is the state of Gentoo currently.

(Reply to this) (Parent)


[info]insektmute
2006-08-24 08:11 am UTC (link)
I think the main problem is that democracy can't be instituted in place of manners and maturity. Structure can be a hinderance or a help, but in either case, you'll have to deal with individuals who can't act like rational, considerate people.

For example, i'd read over some of the posts about Sunrise, including at least one dev who left over the issue. On the blogs, I see devs calling each other out to debate issues stemming from list discussions. Even as a user, I can point out at least one or two devs who I personally believe should be removed. In fact, i'm going to use an example.

| > | Respect is something that should be applied unconditionally, in
| > | my opinion. The "you don't so I won't" attitude gets us nowhere.
| >
| > But if respect is unearned and undeserved, it's meaningless.
| > What's the point of being respected if every incompetent jackass
| > is respected?
|
| In a similar vein, what's the point in the meaningless replies, when
| all you're going to do is be disrespectful?

Perhaps you should look up 'respect' in a dictionary sometime. It does
not mean the same thing as 'courtesy'.

| If you can't say anything constructive, why not just keep it zipped?

Now that *is* irony.



People are arguing about respect and courtesy, but in a large project like Gentoo, you can't treat them as optional traits that vary from person to person. Everyone involved deserves to be heard, whether everyone likes what they have to say or not, and if you don't? Bite your tongue and write your replies in a way that objectifies the issue at hand instead of using other people as a focal point. You don't get away with snide remarks and smug arrogance in the average workplace, so why should Gentoo be any different?

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…