The End of the Poison Trail

I’ll end this poison talk with this final entry. Pylon has been here for 4 years now. Like he said, he’s one of the senior/older developers, so he’s seen a lot of it, too.

I want to clarify that just because infra _does_ control the button does _not_ mean that I think they’re abusive about it. Far from it. The issue is this: trust. Infra’s members have to trust each other. Implicitly. Non-infra developers have to trust infra. Implicitly. Whether we think about it consciously or not, we do place our trust in infra.

But, on to the poison! Another history lesson, this one even more personal than the last (you didn’t even think that was possible, did you?). After I joined, I quickly found my niche in Gentoo (which wasn’t fixing up Gnome packages or cleaning up USE=”-nls” installs). I started off by bug wrangling. That, in turn, gave me a deep handle on where we were understaffed and what our needs were, as a development team. That, in turn, led to recruiting developers to fill those needs. In order to do the recruiting, I had to get to know people, which was basically user-relations. Once recruited, developers (being human) might have issues with others. And that’s where developer relations came in. So, I basically built up this fairly informal structure to handle the flow of developers. My goal was to stay out of developers’ way so that they can concentrate on scratching itches.

And then my ego popped up. All of a sudden, I was the head of devRel, and effectively second in command of Gentoo itself. Power trip? Me? Well, actually, yes. One day, on the -dev mailing list (searching that thing is hard, so if anyone finds the actual post, I’ll be glad to add the link to it), someone asked a question about eclasses or dependencies or something (I don’t even remember). Well, one of the newly recruited developers answered that question. Now, the answer he gave was not completely accurate.

And that day, I turned into the type of manager/boss that I’ve despised. The right thing would have been for me to talk to the newly minted developer in private about the inaccuracy, just to make sure that he knew his facts. In other words, he didn’t do anything wrong. And really, it could have been anything from; not quite knowing some of the subtleties, to not quite expressing himself to convey those subtleties. And as a senior developer, it was for me to gently guide him towards the right knowledge and the right expression of that knowledge.

Instead, yours truly decided to tell him off *on the list.* I not only embarrassed him by doing that, I embarrassed whomever his mentor was, by asking “who mentored you?” And after clicking “Send” I thought “how did this person even make it into Gentoo without knowing this basic stuff??”
UPDATE: Thanks to Bo in the comments, here’s the link to my message. It’s embarrassing to read.

And then reality hit me. This same developer /msg’d me on IRC later to talk with me. Man, he brought my head right out of the clouds. He didn’t fight with me, he just told me the facts. He told me that he’d heard I was a bit of an ass and getting worse. He told me that people were leery to approach me with stuff because of it. He told me that I demotivated him by acting as I did on the list. He didn’t call me stupid, as I had implicitly called him. He didn’t call me dumb, as I had done to him. He just expressed the effect I’d had on him.

I can not even tell you how badly I felt. I mean, my whole life, I’ve always tried to take other people into account. I try not to step on people’s toes or to make anyone feel bad or guilty or dumb or inadequate. I try, above all, to be fair. If someone does something, I try and step into their shoes to try and understand why what happened happened, and to give them the benefit of the doubt. All the early DevRel people probably got sick of hearing me go on about second chances: “everyone,” I used to say, “deserves a second chance.” I think devrel still goes by that these days, actually.

Life’s too short to be a hard ass. Other people’s lives are too short to make them feel like crap. Yeah, you have your standards But they’re your standards. Beating other people with them won’t make anyone jump to adopt your standards. Communicating with them effectively involves showing them why your standards would serve them.

Anyway, I wanted to publicly apologise to Rob for what I did. And to anyone else I’ve made feel that way over the years: my sincerest apologies. I didn’t know it when I did it. If you’d like to vent at me (in public or private), I encourage you to do so. Don’t hold it in (don’t keep that negativity that I caused inside of you: it becomes poisonous); let it out. Give it back to me.

And with this, I’m off my soapbox, people. Thanks for reading along with me. Tomorrow’s entry: an overdue good-bye to the person who brought Gentoo into my life.

This entry was posted in Gentoo. Bookmark the permalink.

9 Responses to The End of the Poison Trail

  1. cshields says:

    Shit, I can’t leave a post of yours uncommented these days. :P

    I think you’ve pointed out a lot of the problems with Gentoo in the last few posts, and linking them together shows a lot of issues as well (say, reading today how bad you felt for telling someone off in public just 2 days after you felt good doing it to someone else).

    I believe this shows another deeper issue, and this ties into the trust you mentioned. That issue is comradery. The comradery that can be found in Gentoo is usually found in cliques. Each team has its friends and its problems with other groups. Trust would not be brought up as an issue were this not the case.

    Morfic brought up a good point[1] about pride and the people who do have pride in what they do. If you bring that pride up a level, from the person to the project, the working environment would change. No longer pride in what dev X does, but pride in what Gentoo is becoming. If everyone shared that same pride, it would not be an issue of “you fucked up the tree again!” but “how can I help you correct your ways so that Gentoo, something we all have pride in, can be better?”… “What can I do to help build bridges with Infra?”

    Everyones time is valuable and everyone has talents that could be used to making Gentoo better. Sure, there will be mistakes and broken trees, but it is not the end of the world. Too much of the developer time is being wasted trying to get people to play nice with each other, airing dirty (and very old) laundry, etc..

    So, how do you get people to ditch their personal pride for pride in the project and build comradery as an entire team? I have no clue. But I see this specific thing as an “all or nothing” solution.. We’ve seen how much damage a single person can do to the morale (and size) of the rest of the team. Plus, this is not something that can be forced on to people. So, I guess with a team of hundreds this is only a pipe dream. -shrug-

    [1] – http://planet.gentoo.org/developers/seemant/2007/03/06/a_parade_of_poisons#c18799

  2. Corey,

    Well, I’m happy to be having this conversation with you. I feel like you and I should have talked this stuff through a long time ago. Certainly on my end, it was a pride/ego thing (I’d dismissed you as a klieber-fanboy, and that was that).

    Obviously, that was a wrong thing to do, on my part. Even the laundry that you say I’ve aired. Yeah, I’ve been angry about certain things that happened (that I believed, and still do, kurt catalysed). I thought about pulling yesterday’s blog even as I hit the “Publish” button, to be honest, because of the possibility of the perception that I was laying Gentoo’s doom right at his feet. I can even see how it comes off that way.

    A certain momentum had built up in 2003 and well, Gentoo was sort of locked into these rails. I definitely found that frustrating. But I don’t think I could’ve done anything to change the outcome — gentoo was headed towards being headless, like it or not.

    One of the reasons I decided to leave my post up, was that at least it would get people talking. Like I said in this post, that anger was a poison to me, and so it had to come out. Did it maybe not come out in the best way? Sure. But it’s out now. And just talking with you and Lance over the matter has helped me see things a little more from the other perspective.

    I’d like to note that even when our discussion on these comments got heated, we’re even now on a place where we’re still talking. And that’s where bridges start.

    As for building pride in the project, that’s a very interesting thing to ponder.

    Just to clear something up, by the way. Not once in the past few days have I felt good about anything I’ve written. This last post was the only one I wrote that made me feel positive. The first was out of frustration for the recent (and ongoing) poisonous personality.

    My contribution to the mailing list was not expressed in the best way, I’m sad to say. I certainly made my mistakes (and continue to do so). I would argue that the difference between my attack at Rob a few years ago and my attack at Ciaran a few days ago were different circumstances. The one to Rob was shameful and unprovoked. The one to Ciaran was out of frustration with him.

    The post about Ciaran was a final straw type thing. I’m basically sick of the way he keeps attacking people and then running behind the “but I’m just wanting to have a technical discussion” defense. There’s been a lot of hypocrisy coming from him, and a lot of poison (which I’m sure you’ll agree), and I think I’d hit my tipping point.

    Jeez, Corey, you inspire longer comments than blog posts :P

  3. I guess my point in all this (taking all three posts): it’s easy to point out someone else’s flaws, it’s easy to hold on to others’ flaws (for years, sometimes), but not so easy to admit to your own. That’s a pretty universal human trait. I’m trying my hardest to rise above that stuff, and to let stuff go.

    And I’ve been fairly successful at it. It’s certainly conceivable that if Kurt and I had met in person for a chat over beer in the past couple of years that we would have straightened things out between us, and the second blog post might have been much shorter. Towards, Zach I hold nothing against, to be honest. He actually helped trim Gentoo down in the end. (The whole “zydiot” thing is just funny, but it’s at his expense, so I shouldn’t do that any more).

    So anyway, what I’m trying to say is this: over the past few years a lot has happened that’s good and a lot that’s bad. And really the only thing that sticks out as a sore point for me was the Kurt-half of the second blog post. Apart from that, I don’t have anything against anyone (not even Ciaran, because I don’t dislike him, I just get frustrated watching him at times).

    I hope that you and I are able to get past our differences as well, I think we’ve made progress, certainly. Perhaps there’s a shared round of drinks in order for us, in the near future.

  4. cshields says:

    The headless thing is a problem and could be seen as the root of it all. I wouldn’t consider Kurt to even be a major factor in that. Daniel was going through a lot near the end of his stay with Gentoo and didn’t have much time to be actively leading the project, and so it was seemingly headless for a time before it actually was anyway. (that can be argued, but it was definitely perceived that way which is good as true when you consider leadership in any organization).

    In hindsight, any leader is better than no leader. Sure, when there was a leader there were a lot of people who aspired to “lead” Gentoo in the early days (like you have mentioned, yourself, Kurt, etc) and in some ways that aspiration helped to fuel a lot of good work in their respective areas.

    Leadership structure is also why I see a lot of potential in Ubuntu. The BDFL model works, and when you have a smart person as the BDFL it works VERY well. But that is not going to happen with Gentoo. A rotating leader might work (ala debian) but has its problems as well. It gets too political in that people end up campaigning, ass kissing, and putting others down to earn a vote. And then, as mentioned in comments as well, there is the group of developers who really don’t care to spend time worrying about that.

    Again, read lencioni’s five dysfunctions of a team and it paints a good picture for how an organization can operate in a way that fuels innovation and drive.

    So, how would I do it? Next comment, as I need to grab a drink.

  5. cshields says:

    How would I do it? The disclaimer here is that my ideas are not perfect, nor would any idea ever get 100% approval from everyone (hell, some people are happy with the way things currently run)

    Ok, so a bit of organization is already in place for sub-teams with “managers” in each team. When Daniel was around that was a perfect model, except he did not put enough trust into those managers nor did he delegate enough responsibility to them (they go hand in hand) and Daniel suffered a lot of burnout. Keep the management idea if it is still in place for Gentoo, but they need to work differently (I’ll explain later). Appoint a leader. Make it a 1yr appointment. No overlap between Foundation and operational leadership.. It spreads people too thin. This is another HUGE problem with Gentoo, people take on too much in too many places and then stuff does not see its completion.

    Write a code of conduct, but additionally (and maybe in the same doc), a business organization plan. This plan includes how the structure works (leader -> manager -> dev), leadership meetings, guidelines for communication to prevent the all too common beef of miscommunication, etc. Additionally, write a mission statement (yes, covey style). This mission statement is what every group focuses on and everything that happens should point back to that. Infra, Releng, Devrel, you name it.

    The project leader focuses on that mission and works with the managers to set goals for each team that will add value to Gentoo and progress it in the direction of the mission. The managers then take that to their teams and implement it. Managers work with each other to meet various needs, keeping an eye on the mission of the entire organization (rather than “doing this for me”).

    If people are consistently falling out of line and becoming a problem for the entire team, the manager deals with them. If they are breaking the code of conduct, boot them out (it’s not hard to be nice. If people have a problem with this then they have an agenda that is not in line with the mission of the entire team, also go back to the pride discussion). But, we’re dealing with people who volunteer their time here, and there will be mistakes and arguments and such. The important thing is to let it all go and keep moving forward. If someone breaks the tree once and that ends your trust of them (esp to the point where you consistently flame them), then that is a problem with the person who has the lack of trust. If it is a technical issue that persists then move them somewhere where their strong talents can be used to push the mission forward.

    As for the Foundation, they are there to protect and promote the trademark and IP of Gentoo, as well as handle financial needs. I would also put them in charge of organizing developer meets (most other OSS foundations do this as it is the biggest cost for their organizations). Face time is priceless. But, before that happens you need a board of trustees who 1) is not busy with other stuff, 2) does not get burned out by the other stuff before getting the Foundation built. As I’ve recommended before, buying administrative services here is a must, as geeks != [CPAs legal].

    Imagine a team where Infra is proactively looking for ways to ease the development process for ebuild maintainers.. Imagine where devrel is proactively working on team building rather than fire extinguishing. Imagine a team where, as morfic said, decides “let’s have Dell sell us preinstalled because we are the best” and know that the plan will not fail due to poisonous people.

    Yeah, I’d love to come back and participate in a team that worked like that.. Can it happen? Unfortunately I have my doubts.

  6. Bj says:

    Hi Seemant, Hi Corey,
    I following the catharsis happening on planet gentoo for some time now. Im a gentoo user since 2002 and also remember the “golden age”. First of all, thank you, Seemant for taking all this stuff into the open. Distrust and backstabbing create a climate killing any ambition and while we nerds (and gentoo is rather nerdy) dont like to talk about feelings it seems that gentoo needs a lot of that now. Morfic’s comment about pride was right on target. However, pride requires identification. Identification is hard in a 300 people project spread around the world, if not impossible. Especially if the devs are working on totaly disconnected goals (like getting the newest game into the tree and having the most stable LAMP stack out there).

    Corey, you proposed a hierachical structure Lead -> Man -> Dev. This is the introduction of middlemanagement. While it is needed for coordination, it should be restricted as much as possible as a power channel – see Dilbert. Actually, I dont think gentoo has a structual problem, because its current means should be sufficient. See Christels post “My gentoo” for reference: She is in DevRel, she sees the situation is critical, yet she writes “I have no idea what to do, or what to suggest.”. I read this as an indicator that there isnt a problem with the “power structure” in gentoo – otherwise DevRel would be there shouting “Give us the power and we will solve this.”. They dont do that, instead you read “I have been a Gentoo developer I have had the pleasure of meeting close to 100 other Gentoo devs in person. That’s like.. nearly a third of our developer base. And out of all those I’ve met? Not a single one was an ass.”

    This – and other things like the reaction to your “A Parade of Poisons”-post – shows its an communication problem. Gentoo-dev is not a tribe anymore, its too big for that. Not every dev knows about the motivations of the other devs – or even some factlets about their personal life and personality.

    So – what needs to be done? Im not sure. But i think optimizing the organisational structure wont be the solution. At least not alone. I just read “Agile Project Management” by Jim Highsmith so I might be biased, but there are some really good ideas it that book. Highsmith is promoting in-team-communication and facetime above almost everything else. Well, facetime is hard to implement in a project like gentoo. But I think you need to establish more communication thoughout gentoo. How is that to be done? Here are some ideas:

    - “Lend a dev” Exchange devs between herd (one at a time), so they see the problems others face. Respect is only earned by seeing the work. (This is inspired a bit by TQM)

    - Create “big ideas”. This was once the domain of the forums, where users and devs stomped out great ideas and worked on a shared goal (see identifaction above). But the forums are to big now and GLEPs are too formal. Something inbetween is needed – maybe a “gentoo strategy wiki”? Dont be afaid to think big. See https://launchpad.net/ubuntu/+bug/1

    - Document what gentoo has done and is doing. The GWN is almost dead and thats no good. Make it a rule that every herd needs to send at least five sentences about what they are currently working on to the GWN. It doesnt need to be a “We unmasked a new xorg-x11″ every week – even “we are still stabilizing xorg-x11, dont expect it before XX” is interesting. Actually, take a look at the blogentries on planet gentoo, and its easy to write a summary (still writing a summary is the job of the herd, not of the GWN team)

    Best regards,

    Bj

  7. Bj says:

    Corey,
    “Part of the reason I left was because it became obvious that the structure did not allow for things to be done efficiently.”

    Well, what tools would enable you to handle these “things efficiently”? We are heading right to the basic problems of a free society. Actually I cant think of any way of excluding poisonous people by force without betraying the cause: a free and open environment that promotes free thought and innovation. The cold war and who won it is a testament to that (yes, Im getting generic and almost offtopic here, but bear with me a bit). In addition, gentoo exists in virtual space – it has no location – which makes hard to kill, but even harder to entrench. The most important thing to do in an open society is preventing destructive conflict without endangering the framework that ensures the freedom. After that the only effective longterm weapon in virtual space is ignorance, which has an high toll on the effectiveness.

    So again, what tools did you want to use to handle the situation more efficiently?

    Best Regards,

    Bj