Economic warfare in FOSS

Or, How to destroy a project rather than compete with it.

Whether they are conscious of it or not, many parts of our community have engaged in it, and it’s hurting us all. When a project comes along that some people don’t like, but they can’t (or won’t) compete with it, they will too often revert into a series of attacks that systematically tear that project down.

Those steps, as I have observed them, are recorded below. I do this not to instruct people on how to do it (nobody ever needed it described to them in detail in order to participate in it) but rather in the hope that it will help the rest of us identify it when it starts to happen, and call it our for what it is.

Step 1: Demonize the project

These things always start with an attack on the character of the project itself. The groups that strongly oppose it are, at this point, always too small for their opinion to change anything. But they are almost always vocal enough to be heard, and that’s all that is needed. As post after post, comment after comment, starts to saturate communication channels, they setup the meme that this project is not just technically bad, but morally bad. It shouldn’t exist, the people who built it shouldn’t have built it, and people that use it shouldn’t be using it. They will use emotionally charged language, hyperbole or outright lies to turn people against the very idea of the project existing. They won’t turn everybody, in fact they won’t even turn a majority, but if they can convince enough people that they are right, they can direct this new following towards the next step.

Step 2: Intimidate their supporters

Having raised their quasi-army of opponents through persistent attacks on the project, they will turn them loose on the supporters of that project. They can’t attack them directly, at this point they’re still a relatively small movement and dependent on the acquiescence of the rest of the community to continue in this behavior. Instead they will playfully mock those supporters, making a point to embarrass them or question their intelligence because of their support. The point of this isn’t to change anybody’s mind, it’s to drive those supporters underground, make them hesitant to show their support, and make it look like the project is losing support even if it isn’t. Without a tangible community of users and supporters, the project’s contributors become entirely dependent on each other for the support and recognition that is essential in motivating volunteer contributions.

Step 3: Undermine their contributors

With the loss of a protective support community, and an increasingly emboldened number of attackers, they will at this point begin to attack the people actually contributing to the project itself. By now those involved in the project will have begun to close themselves off from the community, a reaction to try and insulate themselves from what is happening to them. Because of this, there isn’t much the opponents can do to them directly, so instead they begin to corner them in that project by cutting them off from any other project. Calls for boycotts will go out, project contributors will become persona-non-grata in other communities, and it will be at least strongly implied (if not explicitly declared) that any project or community that collaborates with them will suffer the same fate. With no supporters giving them recognition for work on the project, and being increasingly unable to have any of their work recognized and accepted by other projects, contributors will start to drop out, both of the targeted project itself and quite often the entire FOSS community as well.

Step 4: Attack the person

Quite often the previous steps are enough to destroy a project. With supporters not showing support, and contributors stopping their contribution, it would take a very strongly-willed person to carry on. If the project manages to continue with any measure of success, the attacks on the people at the core of it will become intense. Not many projects have survived to this point, so it’s difficult to give general descriptions of what will happen, but things will start to get very ugly, even to threats of violence. If the opposition group hasn’t begun to experience their own negative blow-back from what they’ve been doing, they will be able to continue these attacks until the people driving the project either give up, or are driven completely away from working in the community.


All of this happens only when it’s allowed to happen. It isn’t inevitable, nor is it unstoppable.  It can be stopped at any point along this path, if enough of us decide that it ought to be stopped. I hope I don’t have to write another post convincing anybody that is ought to be stopped.

Prevention starts with identifying that this is happening, which is the reason I detailed it’s progress above. Once we know that it is happening, and how far along it has gotten, we can start to roll it back and undo some of the damage already done.

Defend the person

If it has gotten all the way to the final attack on the head of the project we must, as a community, be outspoken in our defence of them as people and as members of our community. You don’t have to like their project, or even support it, to honestly give support to the person. Ugly attacks, threats of violence, and any other attack on a person or their character should never be tolerated, and we need to make sure everybody knows that it won’t be tolerated.

Support the contributors

When the project’s contributors are under attack, and people are trying to isolate them from the rest of the community, it is important for them to be welcomed by other groups and projects, to continue to give recognition and value to the contributions they make elsewhere. At this point we are in danger of losing them as FOSS contributors, not just to one project but to any project, current of future. Even if you don’t see value in their current work, the lost potential for future contributions should be enough to motivate you to give them your support.

Speak up

If you support a project, don’t be afraid or ashamed to let people know it. When the supporters are being mocked or insulted, they need to hear from each other, or else feel alone in their support. Let them know they are not alone, let them know that you are not afraid to be seen supporting that project. It only takes a few voices, a few brave voices who refuse to be quieted, to make the others feel confident enough to do likewise.

Don’t be afraid

The best, and easiest, time to prevent this from happening is at the very start, when that initial opposition tries to turn you against a project. Whenever somebody starts to tell you that a project shouldn’t exist, or that it’s existence is going to be bad for you, be immediately skeptical. When they want to you be angry or afraid of it you should be questioning their intention. Especially when the code is open, it’s nearly impossible that it’s going to be able to cause you any real or lasting harm. Don’t let your emotions be hijacked by those who want to use you for their own purposes. Keep calm, use what works for you, make something better if you don’t like what’s available.

This entry was posted in Community, Economics, OpenSource and tagged , , , . Bookmark the permalink.

14 Responses to Economic warfare in FOSS

  1. Michael,

    Is this by chance in response to recent activities in the great foss ecosystem?

  2. John says:

    I agree with the analysis and prescription here, but it would be even more instructive to have some concrete examples of both failures and successes; projects where these destructive stages occurred and projects where that kind of damage was successfully countered by the project’s supporters or the wider FOSS community.

  3. markc says:

    Points worth taking note of but I’m concerned it overrides the possibility that the people “complaining” may have valid points that are summarily ignored and dismissed.

    • Michael Hall says:

      Complaining is a separate behavior all together, one which I think it healthy and should be encourages so long as it’s constructive. In fact, the attacks I mentioned can be done without complaining about the product itself, and quite often does.

  4. Graham Lucking says:

    Hi Michael,

    You have just validated my response to certain kinds of posts that appear from time to time on Ubuntu Forums. I do not like misrepresentation, hypocrisy or bullying in any area of life.

    The challenge is to refute the falsehood and show up the ignorance without breaking the Code Of Conduct ourselves. And there is a need to refute them because these comments when made online will show up in Internet search results. Only we should be careful that it does not become our “mission in life.” As that will take the fun out of living.


  5. Pingback: Strategy and tactics. Standards and presence.

  6. Stephen Michael Kellat says:

    Having seen the results of the matter being referenced herein ( I can only say that staving off collapse would be a good thing right now. I don’t know if an inflection point has been crossed or not.

  7. Dan Marrable says:

    This philosophy applies to more than just FOSS. Good article.

  8. Mark Clarke says:

    Without beating around the bush lets assume this post is about systemd and what is happening with the disruptions this project is causing in the FOSS community. I find it rather disingenuous the way commentators have reacted, and are reacting, both prior to its adoption by Debian and after it. The picture is painted by some commentators of a project that was adopted without controversy prior to, to paraphrase, the “sudden and inexplicable opposition that has since emerged from a small band of misguided individuals who have no valid reason to oppose the project.”

    This is a complete misrepresentation of the issue(s). When there is a significant part of a community that feels strongly about a divisive issue it is generally a good idea to try and accommodate or engage them to ensure that the community as a whole moves forward. This is known as taking people with you. The mistake that was made by debian was to completely ignore the concerns of the significant minority, the decisions was settled by a deciding vote from the chair after all.

    The debate was highly charged and some of the concerns and explanations now being proffered by commentators on those opposed to systemd where equally relevant then, but it did not support their position at that time to raise them.

    One can recall the hysteria that was drummed up about Canonical that fuelled much of the pro-systemd frenzy. Didn’t see anyone posting about attacks on projects and people back then. Points 1,2,3 and 4 apply equally in that debate.

    What has made systemd so divisive, besides the, valid, technical concerns, is the way there has been a systematic, well organised, lobbying for its adoption. No one claimed then that a small band of individuals where attempting to subvert a project back then but now its fine to invoke this argument to dismiss opposition.

    In my experience significant projects take a while to get a community of support behind them, get mass adoption and then become the de-facto standard. Usually these projects have competed with others in a non-hostile way and then been adopted. There is lots of cross-pollination between the competing projects and devs tends to co-operate between “competing” projects eg KDE/Gnome, Firefox/Chrome, postgresql/mysql etc.

    In the end users are still left with a choice. This is not the case with systemd which has been so rapidly adopted even though its relatively untested that its astounding. Why don’t we see the same around BTRFS? This orchestrated campaign for adoption has fuelled the highly charged nature of this debate. Also as any good software developer knows, its not about technology, its about people and technology. People make technology succeed or fail.

    The tone for the debate was set, in my opinion, with the kuffel over Wayland and Mir. The announcement of Mir was presented as a community versus canonical issue and this was manipulated by commentators and others to suit there needs. A lot of points raised then around Mir apply equally to systemd now and vice-versa but no one seems to notice.

    I agree that a lot of the participants in this debate are reacting based on uninformed opinions. This is something that broader society has to deal with too in many of today’s issues. The internet has made this a lot worse. It’s not purely a good thing. Its horrendous how the internet’s “anonynimty” has stipped civility from social interaction and create a dark whirlpool of hate.

    I would say the current ruptions in the community, at least to some extend, are being caused by commercial vendors who have a vested interest in Linux going in a certain direction and this influence needs to be addressed. The community needs to be aware that there are many interests at work and open source projects are one of the theatres that they compete and how they influence Linux distros to go in a direction they desire.
    To summarise:

    1) Opposition to systemd is not uniformed nor misguided. If you are of this opinion then you part of the problem,
    2) The two groups should work together to find a compromise that can accommodate concerns as much as possible,
    3) To portray this issue as purely a technical one is misguided. Its about people and process as much as technology,
    4) Debates in the foss community are increasing being influenced by commercial interests in both good and bad ways. How do we work with these interest and make their influence explicit? Not even sure that’s possible.
    5) The internet has created the ability to whip up the mob into a frenzy to support a position. This may look like a good idea in the short term but long term it hurts everyone. Just read up on Rome.
    6) Please do not try present a false picture of the current situation and pretend there was no down-in-the-trenches mud-slinging going on before hand. These seeds were sown months ago. I know it might keep you from dissonance in your world view but its better to try and understand what is really happening or happened.

    • Jason Ekstrand says:

      I’d like to reply to a couple of the points you made. I’d like to start by saying that my opinion of systemd has very little to do with this comment. I use systemd (I’m a Fedora user) and I think systemd can do some really cool things. But I also know that it may not be the perfect solution and that there are some substantial technical issues that it may not be getting right. (A month or so ago on of my machines didn’t upgrade cleanly and ended up in a udev problem that prevented it from booting.) Regardless of what I think about systemd, death threats, ostricisation, and emotively driving people off the debian TC are not a good solution.

      I want to key in on a phrase you mentioned at the top of your comment: “The picture is painted by some commentators…” A big part of the problem that Michael is pointing out is that attacks that do such substantial damage to the community aren’t coming from technical arguments but from the way commentators are painting things. It’s one thing to say that systemd fails in certain aspects that people care about or that it’s too invasive and we don’t want to commit to its ecosystem. Choosing an init system should be a technical decision and those are technical arguments. It’s another thing entirely to write long ranting non-technical blog posts about how it isn’t the “unix way”, how Lenoart is a jerk, and why we should all boycot the project.

      It’s worth noting that most users wouldn’t even no about systemd and wouldn’t have an opinion if it weren’t for the debate. The reason why so many people feel the need to get mildly educated and form strong opinions is because a debate is on. This isn’t to say that everyone who has a strong opinion doesn’t know what they’re talking about or that the opinions of the mildly educated should be completely ignored. However, one of the things that the open source community tends to be terrible at is knowing when to stay out of the debate and leave it for the people that it really affects. I say this as someone who is constantly working on this; I like to have opinions, but sometimes my opinions don’t really help anything.

      Since you already brought it up, allow me to finish with your example of the Mir vs. Wayland explosion a year ago. I’m using this example partly because you already brought it up and partly because I’m a lot closer to the Wayland project than to systemd. At first, Cannonical’s official position was that they were going to be moving to Wayland some time in the near future. Then, they suddenly announced that they had decided to roll their own compositor framework they called Mir. Along with the press release came a slightly inaccurate wiki page. The wiki page contained a number justifications for the choice of Mir over Wayland some of which were based on a misrepresentation or misunderstanding of the Wayland project. Whether those misunderstandings were on the part of the people making the technical decisions or on the part of the PR person who wrote the web page is, to this day, a bit unclear to me. They also talked a lot about the wonderful work of the engineers at Cannonical without giving proper credit to the groundwork that other people in the community had done. All that being said, Shuttleworth and Cannonical did their best to make it right. The wiki page was fixed within a couple of days and Shuttleworth publicly appologized on his blog for not giving appropreate credit to the people like Kristian who had laid all of the graphics ecosystem groundwork to make Wayland and Mir possible. There were also a few choice words exchanged between developers through blog posts, IRC, and more private mediums but that’s to be expected and not particularly harmful.

      What was more harmful was the division it caused in the community. Some of that was in terms of developer effort. It would have been nice (from Wayland’s perspective) if Cannonical had decided to put development effort into making Wayland better rather than rolling their own. I don’t want to focus on that because Cannonical is a company and they had valid-looking buiseness reasons for wanting a solution they controlled and they could focus towards their mobile/desktop hybrid concept.

      The bigger issue is all of the commentators. As soon as the announcement hit the internet, people started to take sides. The Phoronix forums were buzzing with arguments over input redirection and server allocated buffers. The #wayland channel on freenode jumped from it’s usual 150-200 users to over 400 within hours and we (the developers) spent a huge ammount of time patiently answering questions. Most of the questions probably came from people who were genuinely interested in the answers even if the didn’t understand them. If all that happend was the Wayland and Mir developers helping to educate the populus on the inner details of compositing frameworks, that would have been great.

      Unfortunately, it didn’t end with questions on IRC. The half dozen erroneous criticisms about Wayland on the Ubuntu wiki continue to be debated to this day in spite of having been corrected within 48 hours. There started to be debates about whether KDE or GNOME would run on Mir and what would happen to those Ubuntu spins. The KDE and GNOME people were already going to have to do a huge ammount of work to get up and going on Wayland and neither community was particularly excited about having to do it all over again for Mir. But the ammount of work it takes the developers to port didn’t seem to bother the users who got enraged about how everyone was siding with Wayland and wasn’t willing to let users have their “choice” of compositing frameworks. “Why can’t we just have Mir and Wayland side-by-side and let everyone choose?” they asked. People like Martin Gräßlin got a lot of rotten tomatoes thrown at they by the community for taking sides when all they were really doing was saying, “I’m just one guy, I can’t support 3 different windowing systems”.

      Fortunately, the Mir vs. Wayland debates never resulted in death threats or the like and things have simmered down. Both projects go on; Cannonical hasn’t given up on Mir and Red Hat, a few mobile companies, and the community keep working on Wayland. Hopefully we’ll eventually get to back-burner X on most desktop linux distributions and the GNOME and KDE will get to implement the securuty features they always wanted. However, the point I’m trying to make here is that most of the people who made a big stink and threw digital rotten tomatoes shouldn’t have cared about compositor frameworks in the first place. From the user’s perspective, Mir and Wayland should be indistinguisable; they both support GTK, Qt, and SDL2; They both have X backwards compatability; they both provide the features required to get a closer-to-glitch-free desktop than we could under X.

      We, in the open source community, need to learn how to debate pollitely and when to step out of a debate. Yes, emotions run high; mine as much as anyone else’s. However, we do need to work together to keep things from getting out of hand. This includes dealing with lies, misconceptions, and slander even when the person who needs correction is “on your side”. We need to make the FOSS community a healthy place where friendly technical competition can occur without it getting messy. Getting there requires people to be patient and kind, not just right.

  9. freedom_999 says:

    I don’t think this is a bad thing. It’s a self-healing mechanism of the community to repel and reject unhealthy, ulcerous projects.

  10. NN says:

    Dear Michael,

    as you directly draw the connection to systemd in your blog post, and explicitly use the term “economic” in the headline, one question: Have you ever considered, that the economic interest on one party is not necessarily compatible with the other?

    Let’s try to be specific: Companies like Canonical, or Red Hat, the latter not maybe not purely accidentally sponsoring the entire systemd core developer team, are based on a business model where expert knowledge is directly linked to corporate profit. Systemd is creating a new market:

    The entire system is less programmable (sounds like a step back in history, but makes a perfect business case: every functional change that is not envisaged by the static set of options in the config-files needs consultancy to the experts and finally mercy of the repository gatekeepers). In the “old-fashioned” system, where config files are actually simple scripts, average joe could easily add functionality, and advanced users could even achieve true miracles.

    So there is definitely an economic background of the entire systemd debacle, but not on the community side. Monopolizing knowledge is never advancing the free and open ecosystem.

  11. Pingback: The linkspam will continue until the morale improves (30 November 2014) | Geek Feminism Blog

  12. quixote says:

    It’s interesting that systemd gets pulled in. It’s a good current example. I’m a long time Linux user, one of those without enough knowledge to understand the tech details of what all the fuss is about. Initially (and even now) I was very put off by the corporate agenda aspect. But I was even more put off by the anti-systemd-ers. Death threats? Really? Are they nuts? Apparently, yes.

    So I agree with the OP: it’s important to preserve what used to be called the decencies of debate.

    It’s also vital to the survival of FOSS for us to be (more) unified. My non-geek friends are completely intimidated by the multitude of distros. The last thing we need is more forks. I think some basic politeness — also on the part of snooty devs! (such as the ones at Sun used to be such big examples of) — could go far toward that goal.

Comments are closed.