Slashdot Mirror


How Open Source Projects Survive Poisonous People

CoolVibe writes "Two Subversion developers talk at Google about how to keep pests and malcontents out of your open source projects. From the abstract: 'Every open source project runs into people who are selfish, uncooperative, and disrespectful. These people can silently poison the atmosphere of a happy developer community. Come learn how to identify these people and peacefully de-fuse them before they derail your project. Told through a series of (often amusing) real-life anecdotes and experiences.'"

18 of 241 comments (clear)

  1. That's easy... by __aaclcg7560 · · Score: 5, Funny

    Lock them out and tell them to become Anonymous Cowards on Slashdot.

  2. With swamp boots by dmayle · · Score: 4, Funny

    ...with swamp boots, just like everybody else, right?

  3. Video link by HTH+NE1 · · Score: 4, Insightful

    Could we please get video and flash links in stories tagged "(video)" or "(flash)" like is done for PDF links? Especially things that will generate audio which might be disruptive in a work environment and when it isn't necessarily apparent in the URL.

    --
    Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    1. Re:Video link by eln · · Score: 4, Insightful

      The issue you faced may or may not have been a design flaw, but that does not excuse your behavior. You asked repeatedly for the logical next step, people gave you the logical next step, and you refused to take it. You seemed to go out of your way to put obstacles in place to prevent people from actually helping you. You COULD have followed the steps provided (can you seriously say you could not have found a single computer anywhere that had a CD burner on it? Give me a break). Just because a step seems needlessly complicated to you doesn't mean it isn't the best step to take.

      Even if the ultimate answer to the problem was "Ubuntu is hopelessly broken," you STILL would not have been justified in acting the way you did. Even if you were paying for the support, that sort of abuse is unnecessary and usually (and definitely in this case) counter-productive.

    2. Re:Video link by Kamots · · Score: 4, Insightful

      Well, that thread made me decide that I'm going to give Linux a try again, and I'll be going with ubuntu when I do so.

      Looking at how much patience and help they showed *you*, I can only imagine at how much they'll help a polite noob!

      What really scares me about you though, is that it's been a year since that conversation, and yet you're still this venomous towards them, and still can't see what you did wrong. :/

  4. Not every "poisonous" person is easy to spot by Rosco+P.+Coltrane · · Score: 5, Interesting

    Every open source project runs into people who are selfish, uncooperative, and disrespectful.

    Those are easy to deal with. The problem is with people who, under the cover of "doing good to the project", make everybody hate everybody else. Those usually spread rumors around, go tell John that Jack, frankly, doesn't work enough, while at the same time telling Jack that John, really, isn't leading the project in the right direction, etc...

    We've had plenty of those at the company. More often than not, those are what we usually called "software diva", people whom management think are indispensable, and therefore should be more or less allowed to do or say anything.

    My way of dealing with these folks was usually simple: single them out at the weekley meeting, sum up the shit they've been spewing around, and tell them they're allowed to run free with whatever they thought was best on a local fork of the project for a week and prove they're right and/or better and/or more efficient than Jack or John. Failing to prove it, they'd be relegated to the line-pisser pool, otherwise they could take my place as team lead. Usually the result was the software diva leaving the meeting all offended, and half of the time resigning after a couple of days. Public shame and the threat of putting their supposed programming skills where their mouth is is a very efficient method of putting these people in their place.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  5. hmm by nomadic · · Score: 5, Funny

    Every open source project runs into people who are selfish, uncooperative, and disrespectful.

    AKA "coders".

  6. I believe they call it... by Billosaur · · Score: 5, Interesting

    ...assassination in the journals. Quick, clean, and ensures they can't just be transferred to another department to create headaches for someone else.

    --
    GetOuttaMySpace - The Anti-Social Network
  7. Re:What I learned working on NetBSD by Anonymous Coward · · Score: 4, Insightful

    You'll find that most of that 'bloat' is actually robustness code, error condition checking, etc., ...the stuff that makes most GNU tools /prefered/ by admins. That incredibly alpha-quality 'BSD gzip' that shipped with NetBSD-2.0-RELEASE was a joke. I can't wait to see what a fiasco a 'BSD rsync' turns out to be.

  8. pick your poison by oohshiny · · Score: 4, Insightful

    People like Stallman, Torvalds, or van Rossum are not the nicest or easiest people to get along with. Nor, for that matter, are commercial software leaders like Jobs or Gates. It takes a certain degree of focus and arrogance to lead big software projects and to make the tough decisions that need to be made.

    On the other hand, malcontents are often malcontent for good reason--look at the dispute over the Xfree86/X.org split. Sometimes,someone who is an effective leader on one project is making a nuisance of himself on another, like when Torvalds was interfering with the Gnome project.

    So, it's OK for open source project leaders to dismiss "malcontents" and focus. On the other hand, those "malcontents" are often going to be right and justified, and they may fork your project and make you irrelevant.

  9. Re:You mean.... by eln · · Score: 4, Interesting

    Eric S Raymond poisons the whole movement, not any particular project. To do that, he would actually have to participate in one of them.

  10. Frankly, I'm getting tired of it. by VanessaE · · Score: 5, Interesting
    In the past I've run into a few coders on different projects, some who are just contributors, others who are the "main" coder on some project. More times than I can count, I've had coders tell me, "Oh, it's your hardware, my code works fine, sod off." That's just plain laziness, when the coder won't entertain the idea that maybe, just *maybe*, their program is buggy. Then, there's the other type I've encountered that says, basically, "I wrote this program for myself. You want Feature X, you code it!" All I have to say is that if the program was written for your own use and you didn't want people filing bug reports, why the hell did you release it to the world? All you're doing then is giving open source a black mark.


    The final type of person, the one that bothers me perhaps the most, is the coder or contributor who simply doesn't answer bug reports or emails (whatever the appropriate method may be) at all, even after several weeks of waiting. Are you guys *trying* to turn your users away!?

    People really do see those buggy programs, folks. They show up in lists of stuff at places like FM and SF. If you think your code is good and you want to release it, great! But if you won't consider bug fixes, keep the damn thing to yourself and/or contribute your code to an already-existing project instead.

    I've been a programmer since 1986 on another platform, but stopped in around 2000 and haven't come back since (outdated platform anyway, so my "skillz" don't exactly translate to modern programming methods), and I have never once considered telling someone off like these examples. What went wrong? When did the F/OSS community start to gain this elitist attitude?

    Mod me down if you want, I don't care. I've got the karma to burn.

  11. Re:You mean.... by Syberghost · · Score: 4, Interesting

    To do that, he would actually have to participate in one of them.

    Can you name a single Linux distribution that doesn't include at least two programs to which Eric S. Raymond has contributed code, EXCLUDING fetchmail?

    698 packages on my Ubuntu system depend on libncurses5, which has Raymond code in it, for example.

  12. Re:Seen it... by slipsuss · · Score: 5, Informative

    I think you misunderstood that part of our talk.

    We didn't boot any person at all, we simply rejected the offered patch. The person wasn't a member of the community, just a drive-by patch contributor.... we didn't "throw him out", because he wasn't "in" to begin with! Patch contributions are great things, but if we can't come to an agreement, then that's the end of things. The person wasn't interested in resubmitting without his name attached to the patch, so we had to reject the patch. Our honest hope was that not only would he contribute his patch properly, but that he'd become a regular committer too. Instead, he was annoyed at us and walked away. C'est la vie, we're not going to change our code submission rules for a single visitor. Twas a shame.

  13. Re:Seen it... by fitz · · Score: 4, Interesting

    Did you really watch the talk? Regarding the date-parser contributor, we talked diplomacy quite a lot, but the simple fact was that adding your name to the source code was not negotiable in our community. We never kicked the guy out--he left on his own accord when he realized that our rules weren't going to change to accommodate him.

    The whole point of that anecdote was to illustrate the importance of not compromising your community ideals for one person, even if they come bearing code. Stand your ground, and if someone is not willing to play by your rules, then they'll leave.

    Oh, and the whole point of the "Poisonous People" title was to a) get your attention and b) address a perceived shortcoming in many open source communities. If we had talked for an hour about "How to have a loving and happy community", everyone would have been asleep ten minutes in. ZZZzzzzzzzzzzzzzzzzzz.

  14. What about usurpers? by Slur · · Score: 4, Insightful

    I have a related problem that I've been trying to understand and cope with. One day while searching for information to further my OSS project TabletMagic I discovered a discussion board where someone had simply modified an older version of my driver to work on TabletPC computers, and he was claiming that he'd "started from scratch" in creating it. I downloaded the binary and examined it, and it was clearly built from a modified version of my source code. It even had my name and original copyright message in it, and printed these to Terminal when started.

    So I challenged this person's disingenuous claim that he'd created it "from scratch" and asked him to make his source code available, as he should do under the GPL.

    Instead he pretended to be indignant, continued to insist he'd "started over," and removed (!) the binary he'd posted (you know, because of his overwhelming indignation). Rather than let him conceal the binary under dispute I reposted it, which caused him to feign even more indignation and call me names. There was some back-and-forth in which I continued to press him for an admission, and in which he continued to stick to his position, and to insult and ridicule me.

    After a few exchanges he posted a new build of the driver with various strings hastily replaced. For example, he replaced the word "Magic" with the string "Khash" (same number of letters... odd since he has the source code) and replaced the copyright message with one of his own (again, same number of letters), and he replaced the CVS-generated "Revision" number with a value (0.31) that CVS could never produce. Anyhow, I kept giving him rope, and he kept hanging himself with it.

    Eventually, I softened my stance and let things lie, and just asked him to share with me either source code or information to help me get my driver working on TabletPC. He didn't provide either one, and instead he deleted all his posts (smart, because they were very embarrassing) and went on to work on other Hackintosh driver issues. Fortunately, I had been saving his posts all along with the hope of writing an article about "FOSS usurpation" on my website.

    I'm happy to say I did manage to get TabletMagic working on TabletPC systems, but even now I could still use some of this madman's insights into ISD-V4 digitizers. Despite his lack of character, this guy is no dummy.

    What still astounds me is the striking similarity between this person and other hackers who have done this sort of thing in the past. You might remember a few years ago a hacker had modified a bunch of Mac shareware binaries and was distributing them under different titles, and more recently "CherryOS" was found to be a rip-off of PearPC. What's striking is that whenever these guys are challenged they display very characteristic behavior, producing indecipherable denials that border on the insane, and insulting those who challenge them. In the end they always end up making themselves look bad, and they always give themselves away by the illogic of their denials and their exaggerated bluster.

    Now in my case I was lucky. This person had modified my code for use on an unsupported platform and as far as I know he was not planning to sell his work. And when I think about it, it doesn't seem he could do much harm to my project. Nevertheless, it alerted me to one of the more annoying aspects of FOSS software, and my powerlessness against it. To his credit, he did push me to add TabletPC support to my driver which otherwise I might not have done so soon. But overall this experience has been very unpleasant.

    Is there really anything an OSS developer can do to combat this kind of annoyance? Are there any smart tools out there for comparing binaries to see if they come from similar source codes? Does the Free Software Foundation or Sourceforge have any kind of policy or resource to help poor saps like me? And in the end, what does it all mean?

    --
    -- thinkyhead software and media
  15. Re:Link is a video by HermMunster · · Score: 4, Insightful

    There are always two sides to a story and I'm sure these guys aren't telling both sides. I think the most important thing is that any open source project needs to be able to take criticism even if sometimes it isn't constructive. If an open source project can't survive criticism then it didn't have the wherewithal to survive anyway.

    Those that may seem to attack open source project in particular without regard to the status of the project are turkeys and probably need to be shunned. On the other had the open source projects that are mavericks that won't listen to user input should also be shunned.

    The most important thing about open source that one sees once they use it are the rough edges and incompleteness of the project. Yes, some of them are exquisitely done, others, and there are a lot of them, are poorly organized and implemented as if a firstimer was managing the project. If I were critical of open source it would be the latter and to see the open source project begin to deride the criticism is very damaging.

    Amarok, which now is a great project, but with a lot of bugs and some very incomplete areas used to be highly buggy and when people went to their site asking for answers on how to overcome these problems even the administrator would denigrate them for asking questions. In one case the administrators actually attempted to publicly humiliate those asking questions. What they should have done is listen and fix the issues. It is only through some criticism that things get fixed. The windows world is unforgiving, extremely unforgiving. If Amarok plans to move to the windows platform they are going to have to come up with some major changes to their philosophy when dealing with people pointing out problems and asking for help.

    An old saying from way back and it is a saying that holds water today is that you never give a programmer a screwdriver because he'll blame everything that's wrong on the computer and try to fix the computer. Another rule is that a programmer should never be charged with testing their own code. Another is that a little observation goes a long way to detecting problems.

    If I were to complain about any solid open source project today it would be about gnome. It has some serious foundational issues that need to be resolved. I've laid some of them out for the developers and let others become aware of them. It has at least one major show-stopper that you don't encounter unless you copy mass files over your intranet from a folder to another on a remote drive.

    One thing about this guy's article. It won't work. If someone is intent on destroying your project they will and to make them angry by appeasing or using other tactics mostly will backfire. To breed resentment of people giving criticism (that may not be well received by the project) is the most negative thing to happen to their software.

    Essentially, you can resolve discontent by listening, fixing the problems, and releasing code that is well tested and relatively bug free. If you want linux on the desktop you need to understand that most programmers in the windows world were forced to improve their quality or die. In open source there's really no competition, especially for those wanting to be just open source projects, so there's little incentive other than personal pride to make a project look and operate beautifully.

    Listen to those criticizing your project and correct what they identify. That's the best way to get rid of those that will publicly attack you till you decide to quit.

    --
    You can lead a man with reason but you can't make him think.
  16. Re:Link is a video by SJS · · Score: 4, Insightful

    So what do you do when the presented ideas are completely useless? Take for example the suggestion I've seen for every project I've ever been involved with where someone will just stop in and demand the whole project be rewritten in their favorite language. What then?

    Why, set up a sourceforge page for $foo-$language-port, and put that person in charge of it, of course.

    Seriously, I think this is a common problem, and unfortunately, sometimes those people actually get something released. There's a large number of people who want everything to be written in Python, and get upset if your project is in Java, TCL, or Perl. And should you be crazy enough to admit you wrote a five-line csh script, you'll suffer the kneejerk reaction of a bunch of idiots who shout "CSH considered harmful".

    On the other hand, the "let's rewrite everything in my favorite language" is a wonderful driving force in a community. It fosters the us-vs-them attitude, and really motivates people to "show up" the despised opponents. So while the behavior may seem silly, counterproductive, and juvenile, it might well have real-world benefits.

    I find it amusing that it's the SVN developers talking about 'poisonous people', as they seem to be one of the most poisonous groups around, as they routinely interrupt conversations about how to do something with CVS with "you shouldn't use that cvs crap, use svn instead".

    What do you do with the person who thinks your text editor needs a video playback system and demands it's immediate inclusion?

    Point 'em at emacs and aalib, and tell 'em there's an obvious alt-meta-mod4-control-mumble key sequence that will do just what they ask, but you can't right now remember.

    What do you do when you just get vague complaints of bugs with absolutely no information about what actually went wrong?

    Ask for steps on how to replicate it. Folks who know enough to tell you exactly what went wrong don't need your help.

    Often, the initial bug report is just to see if someone is there, paying attention. The appropriate response is to ask for information -- you may want a template for this -- and initiate a conversation. "Well, Joe, I don't know enough to answer your question right now, could you tell me some things, like the version of the software, your OS, hardware, and the command-line that failed, along with its output."

    All users lie. They omit steps. They forget critical changes they've made to a system, but remember all the trivial changes. They get sequences of events out of order. They fail to follow instructions properly. They are quick to assign blame. They fail to read error messages. They don't know what's important.

    Remember, they're frustrated far more than you are; YOU have a modicum of control over the system, because you nominally understand it.

    --
    Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)