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.'"
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?
Already doing that, but I also think the links themselves should be marked so we won't have to wait for keyword tagging in future.
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
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.
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.
When I ran a very (very) small project I simply assigned these folk to minor sub-projects away from other people. You either discover that they can work (but don't mix well with people) or that they're incapable.
If it's the second then a public demonstration of that fact will take the wind out of their sails. If it's the first you've solved the problem already.
Python coder | PyQt Applications | Writer
...and have serious problems with some of the things they are advocating.
A large part of the video was toned negative. Only the word "poisonous people" is enough to know what they are thinking. Yes, there are mistakes certain people make that can be *called* poisonous, and could indeed destroy your project, but don't label the *person* but the *behaviour*.
Apart from being very undiplomatic, you run the risk of losing good people in your OSS project just because you get anal about someone not 'doing things by the book'.
An example is the "CVS date-parser contributor", where the guy wanted his name on top of the file, but SVN-dev rules stated not to. Instead of talking diplomacy, and getting a solution that satisfies both developer as community - the code was good as they said - they throw out the code *and the person who wrote it*. Maybe this example was bad, and the person was thrown out because of other reasons, but they made it an example in their video so that's the fact right now..
I think I would like a label for OSS projects that handle people this way: cactus-OSS communities - they can grow great software, but press the wrong part and you get hurt so much you don't want anything to do with it.
Seriously, if you're running an OSS project by all means protect it, but try to change the behaviour people portray rather than kick them out. Kicking out a developer should be a last resort, as it on itself could have serious implications for the status of the OSS project imho.
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
That's exactly my point: why does echo have to be that big? What's it doing? Efficiency isn't just for ancient computers, and the lack of efficiency in today's software is driving people to buy ever faster hardware just to run at the same damn speeds they used to get on their old hardware, with their old software.
Hell, WordPerfect 5.0 ran faster on my old 12 MHz 286 than OpenOffice.org 2.x runs on my 2 GHz Sempron - and had pretty much all the functionality I need in a word processor even now.
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
Computer time is more plentiful than human time.
Faster hardware is cheaper than better programmers, and much easier to find, and you know when you got good hardware, but you can think you've got a good programmer and be really wrong.
Just because it CAN be done, doesn't mean it should!
I would like to commend the Subversion community for being the one piece of open source software that I have used in several years that had a support community (between their websites, and the #svn channel) that is not just full of arrogant elitists.
If I ask a question on #svn, I almost always get an answer from someone who can point me to where in the manual to look - and that's pretty valuable, since if you aren't intimiately familiar with the product, you might have no idea how to search for what you're actually looking for.
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
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
That's true to a point, but misses a huge population of contributors: people who release employer projects. I've done this several times. Basically, my boss asks for something, and I can't find anything (even half-finished) that does it. I get a working system up and running and clean it up enough that I'm not embarrassed for my friends to see it, then post it somewhere.
Now, I have no intention whatsoever of maintaining these forever, but that doesn't mean that they don't work, or at least work well enough to be useful. You probably wouldn't want to take my projects and use them as-is, but it might beat starting your own similar project from scratch.
Dewey, what part of this looks like authorities should be involved?
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.
he's right.
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".
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.
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!)