Slashdot Mirror


On Firing Open Source Community Members

An anonymous reader writes: As open source started booming, more people joined. Opinionated people. People who listened to the "we welcome everyone!" message and felt that their opinion could be their primary contribution. For some, they felt showing up at the gig gave them the right to dictate what the band played. From a leadership perspective, this was a tough spot to be in. On one hand, you want to foster an open, welcoming, and empowered community. You want that diversity of skills, but you also want value and quality. Low-quality contributors don't bring much other than noise: they are a net drain on resources because other good contributors have to take time away to support them.

In addition to this, those entitled, special-snowflakes who felt they deserved to be listened to would invariably start whining on their blogs about what they considered to be poor decisions. This caused heat in a community, heat causes sweating, sweating causes irritability, and irritability causes more angry blog posts. Critical blog posts were not the problem; un-constructive, critical blog posts were the problem. So what's the best way to foster a welcoming environment while still being able to remove the destructive elements?

27 of 255 comments (clear)

  1. Fire them quickly. by Anonymous Coward · · Score: 3, Funny

    Would you rather take a bullet to the head or three to the gut. Fire them as quick as possible, then show them the door.

    1. Re:Fire them quickly. by MrBigInThePants · · Score: 4, Insightful

      Completely agree.
      Better yet introduce trial periods and reviews so that everyone understands that membership is not guaranteed and something to be respected/valued and help reduce feelings of self entitlement.
      And as much as they are not special snowflakes this problem is not either. I mean if you let in candidates unfiltered into your workplace what exactly do you think will happen?
      Be aware that many people are not very good at rating their own abilities or contributions and generally live in a self absorbed bubble which may have a highly variable relationship to the real world. (this can include the hirers/firers.)

      Be warned that introducing any system of "hiring and firing" is VERY hard to get right (research says most people are terrible at it) and can be abused.
      Also, just because someone is a great team member, it does not automatically follow that they will make great recruitment decisions.

      Its tough.

      This is just how the human race is. Deal with it or live in a cave, those are your choices.

      PS: The cave thing was a joke...they will come find you regardless.

    2. Re:Fire them quickly. by pnutjam · · Score: 5, Insightful

      Yeah, some number of that lower 80% or 50% have the ability to become a top performer. If you cut them off, you kill your training pool. Some percent are also contributing in smaller ways that allow your top performers to concentrate on the parts where they are top performers and let others muddle through the parts they don't like.

      It's easy for the "elites" to talk down the regular people and dismiss their contributions, but don't let your shop turn into some sort of uber coder jock circle that's destined to implode.

    3. Re:Fire them quickly. by meta-monkey · · Score: 3, Interesting

      That's part of the six sigma bit. I read Jack Welch's book "Winning" and some parts were definitely sociopathic, but even he didn't call for firing the bottom 80% or 50%. I think it was the bottom 20%.

      And I think he had a pretty fair method that made it look like an act of mercy. There were various rounds of "hey, you're not doing well, what can we do to make this better," but after that you were axed. And it makes sense. Everybody has skills. Something they're actually good at. Not the best in the world! But there's got to be something that you can do better than average. But whatever your career is, if you're in the bottom 20% of people...it's probably not the right career for you. Getting fired from a job you suck at could be an act of mercy, and the impetus you need to go find something where you aren't in the bottom 20%. Maybe even something where you're in the top 20%!

      --
      We don't have a state-run media we have a media-run state.
  2. Anonymous, eh? by Anonymous Coward · · Score: 5, Funny

    You're not fooling anyone, Lennart.

    1. Re:Anonymous, eh? by Anonymous Coward · · Score: 4, Insightful

      Why do these posts always get modded down? Where are these people who actually respect the work of Poettering? This topic is very very much about people like him.
      He causes damage, does nothing of quality or value... And then... and THEN, he has the gall to openly criticize the entire freaking OSS community because they don't want him working on their projects and he's all butthurt because the project maintainers speak their mind.
      It's unrealistic to simply accept everyone who wants to help. Some cannot be worked with in a positive way.

    2. Re:Anonymous, eh? by armanox · · Score: 3, Insightful

      Debian did it because Red Hat did it. And Red Hat did it because, wait for it, it was THEIR employee that created Pulseaudio AND systemd. If we truly needed to replace init, there are other open source projects already that do that (upstart, SMF, and launchd).

      And the GNOME team isn't exactly a favorite of many people either, so don't look to them for being happy community members (and they are known to reject outside patches anyway. Unless you're going to tell me that Linus himself contributes bad patches...)

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    3. Re:Anonymous, eh? by TheRaven64 · · Score: 4, Insightful

      Where are these people who actually respect the work of Poettering?

      As a FreeBSD developer, I have a lot of respect for the work Poettering. Every time he releases a new piece of software, we gain a load more users and developers. I can't wait for his next project.

      --
      I am TheRaven on Soylent News
    4. Re:Anonymous, eh? by Sique · · Score: 5, Insightful
      The problem was that with ever changing hardware due to hotplugging during the runtime of a system, the concept of different runlevels was rendered obsolete. You can't have a runlevel for every hardware configuration that is possible. And if you have mobile devices, you have to take care of different power states, of connectivity, power saving modes and lots of other things that change during runtime. You simply can't solve that with a concept that was developed under the premise that the system gets powered up once and then runs forever without any further changes, until it has to be powered down for hardware maintenance.

      So there was a system required that while running can adapt to different hardware configurations on the fly and automaticly solves the interdependencies for different demons, drivers and configurations.

      While that is in principle possible with a set of scripts, it easily becomes un-maintenable, as every new hardware or state to support might need a hands-on on every script that might directly or indirectly affected by it, and you'll soon get runtime errors because a required service is not started, or a service, that is no longer required, is eating resources that long should have been freed. There was a system necessary for each demon and service and driver to report their requirements, and to calculate the new set of required resources and running processes, and to automaticly stop, reconfigure and start the approbriate things.

      --
      .sig: Sique *sigh*
    5. Re:Anonymous, eh? by Rich0 · · Score: 3, Insightful

      Agree completely. One of the things that really impresses me with systemd is just how event-driven it actually is, and how it separates events from services.

      I can have a service that performs some task. I can trigger it to run when another service runs. I can trigger it to run when a target/"runlevel" is activated (the traditional rc.d approach). I can trigger it to run at certain times. I can trigger it to run when a particular udev rule is satisfied. I can trigger it to run when when a file is modified. I can probably trigger it to run when a filesystem is mounted. I can trigger it to run when somebody connects to a socket. I can even trigger it to run conditionally if one of those things happens and the device is in a particular power state, etc.

      I think the systemd devs have done a pretty good job of building on the richness of the whole dependency/event-based paradigm.

  3. Personal Anecdote by Anonymous Coward · · Score: 5, Interesting

    I was involved in a particular Open Source project for a long time (between five and ten years). I was an early developer on the project, and at least for a while, one of the leading contributors. Over time my contributions lessened as I had to also make a living, but I was still active in the project and its community.

    The leadership got taken over by one developer who was able to work full-time on the project. This developer was overbearing and a subscriber to the idea that being nasty to people made you "as smart as Linus." This developer also ignored input on direction for the project, as it was now "his."

    I served as a gadfly, trying to correct the technical issues, and trying to create a more friendly environment for new programmers to participate. Eventually, though, I was "fired" from the project because I was a "non-contributing whiner."

    It's disappointing to see how much of my work was trashed, and how the project went from being something interesting to one of the also-rans. Still, it primarily highlighted the biggest problem of software: people suck.

    1. Re:Personal Anecdote by Jeremiah+Cornelius · · Score: 3, Funny

      So, how long did it take you to write those Xinerama compatibility functions for Enlightenment?

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
  4. Moderated comments like Slashdot? by PeterM+from+Berkeley · · Score: 4, Interesting

    Maybe have a slashdot-like karma system, where bad comments on the forums are modded down, and you build up good karma.

    Seems like bad people would soon ensure the community would "fire" them.

    --PM

  5. What if the leader/decision maker is incompetent? by bogaboga · · Score: 5, Interesting

    Many would think if this term referring to folk who write code. This is OK for me. My problem though, would be how to address technically competent people who make nonsensical decisions.

    I remember politely fighting GNOME folks over design decisions they took around the `Open File` dialog box, only to be slammed with what was referred to as "Won't Fix" because it is what they called a "Deliberate Design Decision." No wonder GNOME suffered soon after.

  6. Act decisively according to project goals & sk by StandardCell · · Score: 4, Interesting

    I know that many folks in the FOSS community feel more comfortable behind a keyboard than they do in front of others, but none of us live in a vacuum away from others. As such, these are golden opportunities to assert the type of leadership and expand skills necessary for personal as well as professional growth.

    More fundamentally, every project needs to have clearly defined goals as to what they want to accomplish. The schedule of such projects, by the generally voluntary nature of FOSS contribution, may slip, but the cohesion required to achieve these project milestones is only possible in the presence of relatively strong leadership. Strong leadership should also recognize the skill inventory available to the project on a per-contributor basis and encourage those with particular strengths to be used in needed areas modulo personal goals (e.g. growth in coding skills, UI/UX, etc.). Leadership also needs to set down ground rules like mutual respect and positive communication style.

    Therefore, project leaders need to manage the relationships between contributors, recognize political and personal differences, and reconcile them reasonably but quickly for the betterment of the project. If that includes terminating the relationship of one or more contributors to said project, then it needs to be done. But before all that happens, project leadership has to set the base of the building correctly before building subsequent floors, as it were.

    There's an old saying that says "the fish rots from the head down" and it applies here too: if things are getting out of hand with a project, deal with it but make sure all of the rules were set and the relevant parameters understood prior to drastic action such as terminating a relationship.

  7. You can't have both. by ShieldW0lf · · Score: 3, Insightful

    If you want a welcoming, inclusive community, you don't get to decide certain elements don't belong and remove them.

    If you want to do that, you don't really want a welcoming, inclusive community, what you want is a community of elite according to a set of standards.

    So, decide what it is you're choice will be and focus in on it, then everything will become obvious.

    --
    -1 Uncomfortable Truth
  8. Re:What if the leader/decision maker is incompeten by Shados · · Score: 4, Insightful

    What makes things difficult, is that the people who are wrong don't know they're wrong.

    So you have 2 people who think differently and thinking the other is wrong. Which one is? Who knows! Its easy in hindsight of course.

  9. Don't let them in? by Mr.+Freeman · · Score: 5, Insightful

    Why are you blaming people who responded to your invitation for anyone to join? You can't advertise an open bar and then be surprised when a few angry alcoholics show up.

    --
    -1 disagree is not a modifier for a reason. -1 troll, flaimbait, redundant, overrated are NOT acceptable substitutes.
  10. opinions don't count by Swampash · · Score: 4, Insightful

    Commits count.

    Turning up to a gig doesn't give you the right to dictate what the band plays. But if you turn up to the REHEARSALS for the gig armed with recordings and knowledge of the band's previous performances and sheet music containing instructions on how to correctly play something that the band had previously been fucking up without knowing it, then there's a chance that the squiggles and dots you've written might be performed at the next gig.

    If the band chooses to not perform your squiggles and dots then just leave and perform them yourself.

  11. Re:How about... by Immerman · · Score: 5, Insightful

    In fairness - if you're actually the one(s) doing much of the work to create something being used by millions of people with minimal compensation - you *are* a pretty special snowflake. *Especially* compared to the asshat who contributes nothing but vitriolic, non-constructive commentary.

    --
    --- Most topics have many sides worth arguing, allow me to take one opposite you.
  12. Re:That's Easy, Jomo! by Bruce+Perens · · Score: 4, Interesting

    It's just that I object folks who would be good community contributors being lured into being unpaid employees instead.

    Say how do feel about idiots working for corporations contractually enmeshed with the US military-industrial-surveillance complex. Why no spittle-laced hate for them?

    The GNU Radio project was funded in part by a United States intelligence agency. They paid good money and the result is under GPL. What's not to like?

  13. Re:What if the leader/decision maker is incompeten by stephanruby · · Score: 3, Insightful

    What makes things difficult, is that the people who are wrong don't know they're wrong.

    No, that's not the difficult part. That's just a given.

    The difficult part is trying to control something you have no control over.

    Once you're willing to ignore that "destructive" blogger. And once you're willing to accept that you won't be able to change that person's mind, everything will be infinitely easier for you.

  14. Two words by dpidcoe · · Score: 3

    So what's the best way to foster a welcoming environment while still being able to remove the destructive elements?

    Benevolent Dictatorship.

    Make it clear from the start to everyone on the project that while you're going to remain hands off as much as possible and let everyone do their thing, you're still the ultimate authority and you won't hesitate to step in and start cracking heads if people start causing drama and/or forget how to be adults and let their disagreements get out of hand.

  15. Define the rules clearly... by pieterh · · Score: 3, Insightful

    The C4.1 contribution protocol I eventually wrote for ZeroMQ solved this problem. You have to develop rules that catch bad actors (yet not learners) and then educate project managers on how to fire people when needed.

    Our rules for instance ask that you solve one problem with one patch, that you never break existing stable APIs, that you respect style guidelines, and so on. When people break these rules we give them several chances to improve their behavior. If they persist in doing it wrong, we remove them.

    Turns out, when the rules are very explicit and teach people how to make good patches, then it's very rare we have to fire people.

    The rules are at http://rfc.zeromq.org/spec:22

  16. When no one wants you to work for free... by msobkow · · Score: 4, Interesting

    When no one wants you to work for free, it's time to recognize that you have some serious personality and skillset defects.

    I've never worked on an open source project other than my own, but I've spent many a long hour with the "negative contributors" in the business world since around '87. Unfortunately, we never could get rid of those people on the project teams because they were always managers and "key business users" (i.e. The worst employee in a customer department that they wanted to shuffle off onto someone else, such as working on another department's project instead of in their own.)

    The thing is, sometimes those complaining users are a goldmine of information who just have a tough time explaining themselves. One of the shop floor managers at my second "permanent" job with Northern Telecom was a real hard case. He'd pin you with a barrage of questions, berate you for not meeting his needs, and was just generally a real asshole to most of the people he dealt with. But if you were able to answer his questions for a couple weeks and could take care of a couple of the backlogged items on his "need" list, he became an absolute joy to work with.

    You see, the man was just jaded by decades of working with "elite" programmers who wouldn't listen to him about how the shop floor should be running. For years and years and years, the engineers and programmers had done what they thought was right for systems design instead of listening to the people who would be using it. It turns out he had tremendous insight into the way his people were actually doing their work, and how the computer systems could fit into that workflow instead of being a hindrance.

    I've also dealt with people who were just cranky deadweight, contributing nothing of value to any of the projects they were on. Alas, they couldn't be fired without going through channels. Only once did I manage to get someone who was so negative terminated by a company. They reported to me, and were so poisonous to the department that productivity improved 20% after they left -- without hiring a replacement. It turns out they spent so much time complaining in meetings and during "cube visits" that they were slowing everybody in the department down, as well as stressing everyone out with their negativity.

    So, yes, there are people who should be fired -- even if they aren't getting paid in the first place. But before you write someone off as being a belligerent know-nothing, take the time to talk to them and learn if their concerns and issues are legitimate. You could be missing out on some valuable opportunities by writing off someone with poor communication skills as being "just an asshole."

    --
    I do not fail; I succeed at finding out what does not work.
  17. Things I've learned over the decade-plus... by Cinnamon+Beige · · Score: 3, Interesting

    One of the things I learned early on as a tweenager within the FOSS was that if you have a good idea and can communicate well & civilly, nobody actually seems to care terribly much if you possibly are a dog that somehow learned how to type. You don't necessarily have to be good at coding, if what you bring to the table is a good ability to understand the basics and play a living 'rubber duck'--basic sanity checks, to see if what the coders are attempting to do makes sense to somebody who, if nothing else, has at least managed to sleep in the past week. (This isn't meant to be insulting: I've been on the coding side as well: Sometimes I will grab random lusers for the job, and I've learned everybody's happier sometimes when you have a volunteer handy. Less chasing people down in hallways, cornering them in bathrooms, and...I'd certainly have answered a few times the question "Did you sleep in the last week?" with "...Does passing out count?")

    I honestly don't really trust communities that say they're 'welcoming' to be so, in my experience, though. What I want is one which gives me nice, clear, well-defined rules: I can deal with being told that I need to contribute things to the group that they value in order to gain status, and live with the baseline rule that if somebody is kicked out, it will be for violating clearly-defined objective rules ("Fails to brownnose correct people" should never be on the list!) and we will all know this. I'm even okay with it if leniency can be earned: If you somehow can bash your head on a keyboard and still generate code that works perfectly, I can put up with a lot of crazy--and I know how to ignore somebody.

    Really, I think a basic rule of "The community decides the value of your contribution, not you" isn't unwelcoming, as long as it's clearly and openly stated from the start.

  18. First, Stop the Abstract Judging by CAOgdin · · Score: 3, Insightful

    This thread is evidence of the problem: Many commenters here post one-sided, one-size-fits-all solutions in which they believe. But, flexibility is the hallmark of successful people. Your ability to see each contributors' strengths and weaknesses, and help them contribute from strength and evolve from their weaknesses is what successful managers and executives do. The rest are just "wannabes."