The Rogue Emperor, And What To Do About Them

The chances are if you know someone who is a former Apple employee, you’ll have heard their Steve Jobs anecdote, and that it was rather unflattering to the Apple co-founder. I’ve certainly heard a few myself, and quick web search will reveal plenty more. There are enough of them that it’s very easy to conclude the guy was not a very pleasant person at all.

At the same time, he was a person whose public persona transcended reality, and his fan base treated him with an almost Messianic awe. For them everything he touched turned to gold, every new feature on an Apple product was his personal invention, every one of his actions even the not-so-clever ones were evidence of his genius, and anyone who hadn’t drunk the Apple Kool-Aid was anathema.  You’ll still see echoes of this today in Apple fanboys, even though the shine on the company is perhaps now a little tarnished.

It’s easy to spot parallels to this story in some of today’s tech moguls who have gathered similar devotion, but it’s a phenomenon by no means limited to tech founders. Anywhere there is an organisation or group that is centred around an individual, from the smallest organisation upwards, it’s possible for it to enter an almost cult-like state in which the leader both accumulates too much power, and loses track of some of the responsibilities which go with it. If it’s a tech company or a bowls club we can shrug our shoulders and move to something else, but when it occurs in an open source project and a benevolent dictator figure goes rogue it has landed directly on our own doorstep as the open-source community. It’s happened several times that I can immediately think of and there are doubtless more cases I am unaware of, and every time I am left feeling that our community lacks an adequate mechanism to come through it unscathed.

In theory, the advantage of open-source software is that it provides choice. If something offends you about a project you can switch to an alternative, or if you are a software developer you can simply fork it or write your own competitor. Both of those points you’ll still see trotted out by open source developers when they face criticism, yet both of them are increasingly fantastical. The scale of many large pieces of software means that there is an inevitable progression towards a single dominant project, and the days when all users of open source software were capable of writing it are long gone if they ever existed at all. In many cases the reality of large open source projects is one of lock-in just as much as in the proprietary world; if you’ve put a lot of effort into adopting something then you’re along for the ride as the cost of changing your path are too significant to ignore.

So how can we as the open source community deal with a rogue emperor in a project we rely on? In some cases the momentum can eventually gather enough to generate an alternative path, you will probably come up with the same examples I’m thinking of as I write this. But all too often either a loyal Praetorian Guard of developers protect their leader, or a firm grip on the non-open-source IP surrounding the ecosystem keeps the problematic figure in place despite all attempts to move forward. Perhaps it’s time not to consider the problem after it happens, but before.

A central plank of the open source community lies in the licence. It sets down the framework under which the software can be used and shared, and there are a huge number of choices to reflect the varying ideals of software developers. It’s a great system in what it sets out to do, but I feel there’s an aspect of open source software it fails to address. Perhaps as well as considering how the IP is regulated, a licence should also commit the project to a system of governance, much in the manner that a country will have a constitution. If this constitution is written to maintain good governance and combat the threat of a rogue emperor it could only make for more stability, and since any code contributions would be made under its terms it would be very difficult for someone intent on breaking that governance structure to remove.

One thing is for sure, it’s becoming wearisome to find afresh every few months that a piece of software you use every day is associated with problematic people or behaviours. Something needs to be done, even if it’s not quite my suggestion here. What do you think? Tell us in the comments.

135 thoughts on “The Rogue Emperor, And What To Do About Them

    1. AI (not Williams) can only look back, not forward, because it reads what has been already been written. There is no creativity, no vision, no curiosity, for it to take the lead.

      1. If only people could look back. Learn from history.
        Of course, any output from AI is a forward output based on what was prompted to do. That it can look at history is only a positive.

      2. That is true for the generative models of today. Which, contrary to current hype, are not all of AI. Even something as mundane as a chess engine is only looking into the future.

        Either we discover that our biological intelligence is much less special than we arrogantly think. Or we will find another way of building artificial ones and then things my look very different.

  1. Code of conduct for ALL potential contributors…not just the dictators…would go a long way.

    Often the view that a dev is a dictator or gatekeeper has been created by the same people who caused the situation. Constant harassment by “contributors” along with a steady stream of subpar merge requests frequently leads to this behavior. (based on my observations)

    Sometimes the contributions are not as important as thought, are impossible to merge without breaking a long chain of projects (usually the “dictator” or “dictators” are the only ones who know what will break or do testing), or more frequently…the contribution is just terrible.

    From my experience…the ones with the worst contributions are the first to go out and flame a project on as many forums as they can. Bonus points when they don’t allow comments and refuse to remove the posts when they are proven incorrect.

    Sometimes you don’t know you are talking to a person with 40 years of coding experience that is retired and doing the work for free. They are not “obligated” to do anything…their work is a gift. It is often contributors who are inexperienced (or still in school) are angry that a dev won’t take their merge. Sometimes the dev is tired of explaining things and had a bad day…they may not have time to say anything more than “your code sucks…go read our terms for contributors and rewrite it”.

    And yes…all opensource should be viewed as a gift…not an obligation. If you don’t like it…make a fork. That is not an unreasonable ask. After all…they could have just patented it or made it closed.

    To state that “Capable dictators need to be kicked because users are incapable of making a fork” is a take that I personally would not get behind. Especially when the view of “dictator” is typically not shared by the entire user base. It will only degrade the code.

    It is easy to talk trash online…it is more difficult to maintain a project and be sure it works for all users.

    Don’t forget…core devs are people too.

      1. My experience is mostly observation. I do not code.

        The experience/observations are mostly from being involved in QA/Hardware production of Smoothieboards…as well as being heavily active in RepRap since 2011.

        I have seen our devs get trashed…and I have seen them trash others. But without knowing them personally it is hard to know stuff like “his dog just died that day and his temper was short”. Especially when dealing with the amount of misinformation or nonsense that flows in daily.

        I hope my statements are read from a factual standpoint…not emotional. I really did attempt to convey the opinions I have in a way which is understood rationally…but without talking to me in person all emotion and body language can be “assumed”.

        As a question for all reading this: When was the last time you messaged a dev directly and thanked them for their work?
        I attempt to do this every now and again…just be sure it is a heartfelt and not for personal gain.
        Often…core devs don’t get any “real thank you” unless they are directly solving an issue or about to be asked to do so. Almost every dev I have thanked has asked “What do you need?” which to me is a symptom of a larger problem.

        There is a lot less reward for doing opensource work than most assume.

        1. Having been on the other side in some arguments in the Smoothieboard community a decade ago, I do feel a bit apologetic. It simply didn’t do the things I expected it to do, and having bought a (somewhat) expensive board I was disappointed. But this blinded me to the people for who Smoothieboard did do what they wanted, and the balance that the maintainers of such projects need to make.

          1. It is a complex project with a lot of machines dependent on it. Very hard to relay that to the newer devs that a small change for “your machine” may break thousands of other machines.

            In all fairness…quite a bit of the things that are requested are not well documented and without being able to speak directly to the core dev (often the only person who knows) limits the ability to get setup.
            For example…the feed hold or pause delay. I finally got an answer on that…it isn’t the queue size…it is turning on delta segments. If you set that to 1mm it stops after that distance.
            Why isn’t this on by default? In some situations it can cause issues with the “lookahead”.
            This is another writeup which deserves a wiki page all to itself along with some videos…it is in the planning phase.

            The most major flaw of opensource is funding. It is largely on the backs of volunteers.
            The reason Smoothieboards cost more than the clones is that sales of boards is where the majority of the money to develop Smoothieware came from. Clones do not have this ethical obligation.
            A disproportionate amount of support went to supporting issues with use of clone boards as the majority of hardware issues and strange glitches were due to poor QA/design/parts procurement. Not only was this work for free…but it could be argued that it was paid for by the Smoothieware project.

          2. It makes me happy to see people openly admit their past mistakes, so thank you for being honest with yourself and with us. The internet – and the world – would be better if we all said “Oops – my bad” more habitually.

        2. I very much appreciate your responses, because they very much mirror my own when it comes to contributing to MAME.

          At no point has there ever been a leader of the MAME team who has made everyone happy, but the present leader – “Vas” Crabb – is unfairly portrayed as the sort of “rogue emperor” to whom this article refers.

          When he took the project’s reins, things were in something of a sorry state. A general ambivalence towards code quality had created a mountain’s worth of technical debt that is still being sorted through today, nearly a decade later.

          His insistence on raising the quality bar for external – and even internal, from core devs with direct commit access – contributors has been met with no small amount of angry shrieking from the bleachers, usually from people from whom he has absolutely bent over backwards to try to accommodate, yet who steadfastly refuse to seem to learn a damn thing.

          I agree with your overall assessment of that sort of situation: There is only so much anger, so much abuse, from people who write abysmal code and expect FLOSS leadership to react with obsequious praise, as if we’re talking about a toddler’s crayon drawing and not something ostensibly made by a walking, talking, breathing, thinking human, before one’s tone starts to get a bit snippy. You can’t repeatedly hand someone a plate of dog vomit and insist it’s a sandwich until they get tired of it and slap the plate from your hand.

          I can’t pretend that Vas is a saint, either. This is what initially drew me into your comment – the upfront suggestion of a UNIFORM, evenly-applied, code of conduct would go a long way.

          I’ve done my best to try to work in the background, documenting code standards when they were previously known only by word-of-mouth, in order to serve as a sort of area denial for potential invective: If an external contributor is doggedly insistent on offering lackluster contributions, don’t get into a protracted pissing match, just tap the sign.

          All the same, software developers are not exactly renowned for their ability to hold a project of millions of lines of code in their head, while also deftly navigating social situations or other communication-heavy interactions. While Jobs is an apt example of people going too far, I have contempt for this strained parallel when it comes to FLOSS.

          Why is it project leadership that has an obligation to eternal civility, when the contributors themselves have none?

          At the end of the day, it takes two to tango. If your contributions to a project are consistently rejected, and a level of frustration or hostility from the project’s leaders seem to eternally mount with it, go look in a mirror. Quit hand-wringing, and BE BETTER.

          1. Don’t know about MAME but your assessment is valid. In software development you often need either a culture (that motivates you to be tidy and/or makes you stupid if you’re not) or a dictator – preferably a benevolent one. I had trouble getting the simplest of stuff across to developers – “don’t duplicate code”, and am still finding if-else constructs where for both cases the code is 80% the same… Andy Piper (Mastodon) recently said on the FLOSS podcast, and I quote: “humans are incredibly lazy” :).

          1. “I don’t code” does not mean “no contributions”. Docs, UI, testing, QA, advocacy, infrastructure, communications, funding! A good open project needs so much more than just code.

            I also didn’t see where anyone said “I know what’s best”, just talk about experiences good and bad.

            The thinking expressed in your comment is literally part of the problem.

        3. No.

          FOSS is about the project, not whatever arbitrary opinion/view you put in a CoC. So you have now shifted the focus from the project to something that isn’t the project.

          And yes I have contributed code, features, and bug fixes to quite a few very popular projects in the RF space.

        4. I often send “Thank You”s to open source devs and despite being on a very limited income, send them some coffee/beer money. Mind you, that often includes a request for a new feature, but you’ll catch more flies with honey…

    1. yes…all opensource should be viewed as a gift…not an obligation

      Which is why it generally sucks. You can’t criticize a gift, which removes the feedback between users and developers, which leads to development in the dark and huffing your own farts.

      With proprietary software, if the result doesn’t please the audience then you’re quickly an ex-developer. If the software does not serve its point then it soon will not exist – whereas with open source you get people noodling forever around half-assed and mis-understood attempts with a handful of die-hard users who have adapted to the software instead of the other way around (systems attract people who are fit to the system), who will scream loudly whenever someone tries to point out that they’re doing things the stupid way.

      1. You are free to criticize all you want…but at some point you may be required to “do something” yourself.

        Criticism is only helpful if it is constructive…
        Difference between a critic and a troll is “doing”.

        1. There’s the old saying that you don’t need to be a chef to tell a turd sandwich.

          Even if you can’t or won’t do it doesn’t mean you can’t point out that something is wrong, and knowing that something is wrong puts the impetus on the actual developers to fix it. If they ignore or deny an obvious problem, who’s at fault then?

          1. More to the point, users are not developers and should not be expected to provide “solutions”. That would be unhelpful, as they’re largely incompetent to do so and would only mess up the process.

            So then, would you ignore your users entirely because they cannot help you directly? It’s your users who are receiving the software as a “gift”, since they are unable to contribute entirely, so should they be unable to criticize it as well? Should you only listen to your developers who are already working on the project and stuck in the ways they’re progressing in it?

          2. “Don’t judge a man until you have walked a day in his shoes”

            I’m not judging the man, I’m judging the shoes. I’m saying the character of open source projects lends to people doing silly things because they don’t have to mind the people – the users – that the software is really made for.

            If you forget this, it’s like setting off across the desert in high heel stilettos and then complaining that your calves hurt after a mile. Foresight is also a thing.

          3. True, but if you’re not providing a better sandwich, all you’re doing is yelling your opinion to to the world. Those who hear you can have no presumption of value from your words, either.

            Someone who provides a sandwich (no matter how bad), has at least provided a sandwich.

            Someone who says “that’s a bad sandwich” may be adding value, or might be trolling.

            And there are always going to be people who find that your idea of what constitutes a “turd sandwich” is also their idea of “a really good solution to my packaged-fertilizer needs”. So, even if it legitimately is a turd sandwidch to you, it may have significant value to others.

          4. but if you’re not providing a better sandwich, all you’re doing is yelling your opinion to to the world.

            If I were to barge behind the counter of the deli and start making my own sandwich, I would get the police called on me.

            If you can’t contribute and you can’t complain, then what can you do? Just eat the turd sandwich?

        2. For non-coders like me, sometimes “doing something” looks like explaining to devs the problem you’re having, and taking the time to write a detailed explanation of what’s not working for you and why you think something different would be better.

          I think Open Source developers do what the do largely because they enjoy the coding and the creativity. But I also think a lot of them want – within limits – to please the communities they serve and to produce the best software possible for the greatest number of users. Polite, constructive user feedback and requests can make a developer’s job more satisfying in that regard.

          1. This is well put. Typically, it isn’t the reasonable well thought out issues that are rejected…and if they are there is often more to it than can be explained in a short message.

            I personally have had many things I suggested which were responded with a flat “No”…but often times they end up being added later once a dev is working on the area of code which changes things. Even more often there is no “public announcement” of the mod aside from git commit comments.

            I also do not code. So like you I tend to attempt to contribute other ways (reporting issues, testing experimental firmware, etc).
            Common issue is lack of proper docs and walkthroughs. Just being the person willing to do that is a huge help. In this day and age in order to convey information it apparently also needs a youtube video so that is another area that most “devs” just don’t have the time (and/or knowhow) to produce videos.

            Helping opensource isn’t just about code.

          2. Typically, it isn’t the reasonable well thought out issues that are rejected

            There’s two kinds of users: those who have learned to use the software exactly as you designed it, and those who come from “outside” who have seen other options and ideas, and can tell the difference.

            The former tend to shout down the latter, saying the method of the developers is perfect and that the “outsider” is wrong. When the developers look at the discussion, they tend to side with the majority of the community who they already agree with and reject the outsider notion of how things should be done, regardless of its merits.

            Since the developers are not looking to serve the wider audience to gain more users, but simply to serve themselves or their “community” and their wishes, they tend to only listen to their closest associates no matter how small a niche they’re serving. They’re mistaking the support of the people with brown noses as a confirmation that they’re doing things right – when in reality more people would agree if they did things some other way.

        3. Most food critics are great eaters not great chefs.
          Most film critics havent a single film to their name.
          Most art critics arent artists themselves.
          The difference between a critic and a troll is not “doing”
          Its merely the impact their criticism has, which is generally larger when their authority, influence, and knowledge is more widely accepted than the thumbs up or thumbs down from other denizens of the particular internet forum they vent to.

          1. You just mentioned a lot of people that I could do without.

            I see little benefit in those “professionals” and I place no stock in their opinions. Now regular people that have been to those places and comment based on their opinion can form the basis of an overall consensus which I will take into account.

            Heck look at how many movies are “bad” according to the “critics” but the audience loves, or vice versa. Constantine is one example.

          2. @Sword
            Your use for a critics opinion is inconsequential and irrelevant to the matter at hand

            CCecil said “Criticism is only helpful if it is constructive…
            Difference between a critic and a troll is “doing””

            If you would like to weigh in on the difference between a critic and a troll feel free to weigh in. You seem to have a strong understanding of at least one of them.

          3. Criticism is information. It’s up to you to do something with it, or ignore it.

            If someone says “This light bulb only lasts a month in use”, do you demand them to design a better light bulb, or do you just not buy that bulb, knowing that it’s a waste of money?

        1. It doesn’t have to be any different. It’s just that you can get stuck in that sort of a bubble because you refuse to listen to outside criticism and oust everyone who disagrees from your community.

          You can serve the ten people who already agree with you and pretend that this is the entire world, but the world doesn’t have to agree.

          1. If “the world” isn’t counting those ten, what matters it? You are at least providing useful value to ten people, which is more than most people can say.

            Other people can serve other subsets of the universal set if they want to. The “bubble”, as long as it’s providing value to somebody, is doing its job.

            It’s rarely actually that beneficial to try to create universal solutions, or solutions to problems you have no interest in or experience with.

            Don’t code something you can’t test, and don’t ship something you can’t validate. If others can, leave it to them. That’s a reasonable division of labor…

      2. How to show you don’t understand what a open source is and just put proprietary development on a pedestal.

        Corporate development is usually faster that open source in certain respects, but it is not better. Certain aspects improve more slowly, professional designers, often find it hard to contribute. People do not get further for incompetence usually in corporate environments unless there are legal liabilities, pretending otherwise implies you’ve never worked in this space or maybe you were the smartest one in the room.

    2. No.

      For the simple reason that FOSS is and SHOULD be about the code. Making it about a code of conduct means it isn’t about the code, but rather an arbitrary opinion/concept completely unrelated to the code.

      and before you ask yes, I have contributed features and code to more than a few FOSS code bases.

    3. Code of conduct for ALL potential contributors…not just the dictators…would go a long way.

      Cancer of the worst kind along with “a licence should also commit the project to a system of governance”.

      Might as well go code for a corporation if you can’t handle the working with people and demand a human resources department.
      Never forget:
      Freedom isn’t free and there’s always people trying to take it from you.

      1. Freedom isn’t free if you received it as a gift. If it was given to you, it can be taken from you. Anything you cannot do yourself, you must trust others to do for you (and they’re under no obligation to do so).

        Long before Ken Thompson’s Trusting Trust paper, it’s been a viable and known risk that it’s not safe to accept external resources that you’re not competent to vet. And this actually cust both ways. The XZ project attack is only one aspect of this. It’s just as easy to attack the community as the code. And it’s just as easy to attack the faith in the people who vet the code. Attacking people’s trust is often as simple as using sockpuppets to lob bullshit from all sides, then wait for the trust to collapse. And, from the pov of users of the code who are not competent to do it all themselves, the risk of destruction of a project or community represents a real cost to them.

        But on the other hand, such risk is the user’s choice to make. If someone chooses to make use of the materials provided by some cult-like project community, and evaluates that, for them personally, the risks are outweighed by the benefits, that’s their right.

        Freedom isn’t free. I’ll agree with you there. But, at the same time, it’s not ACTUALLY freedom if you have no right to choose to surrender it. Maybe that’s not a wise choice, hopefully that’s not a choice that many will make, but the right to make it is a mandatory part of what defines freedom.

        Otherwise, it’s not freedom, it’s “freedom to agree with me”, and that’s no kind of freedom at all.

  2. A central plank of the open source community lies in the licence. It sets down the framework under which the software can be used and shared, and there are a huge number of choices to reflect the varying ideals of software developers. It’s a great system in what it sets out to do, but I feel there’s an aspect of open source software it fails to address. Perhaps as well as considering how the IP is regulated, a licence should also commit the project to a system of governance, much in the manner that a country will have a constitution.

    When I read that I thought this was a mistake, and that the constitution should be a separate document from the license, so that each could be chosen more freely, and so there wouldn’t be even more difficulty in cases where relicensing is actually wanted. But then I read on…

    If this constitution is written to maintain good governance and combat the threat of a rogue emperor it could only make for more stability, and since any code contributions would be made under its terms it would be very difficult for someone intent on breaking that governance structure to remove.

    …and that’s a very good point. There does need to be a way to keep the constitution from being changed too easily, and including it in the license could be a way to do it—and a way that could, if properly written, make it legally enforceable by contributors. I do wonder, though, if there’s a good way to do it with two separate documents that are still linked together somehow.

    1. You want that in a project you start, lead, and put countless hours of your life into? Go for it. Make sure and let us know when you get the boot for not keeping up with the insane demands that’re completely unrelated to the project itself so we can laugh in your face.

    2. You start getting people involved in legal contracts for what they are doing out of interest/hobby and they wont do it anymore, or won’t put it out for public usage. I certainly wouldn’t.

  3. I thought about this recently, not how the problem pertains to software but to our own government. I believe that we need to switch to AI there, and we would then vote one the open source code it runs and the rules it follows. It of course would adhere to the US Constitution and violating it would be as verboten as dividing by zero. Humans cannot be trusted, I firmly believe if you take the Terminator movies to their logical conclusion there will be a group of in control of Skynet that the characters in the movies had no idea even existed.

    So I think there should be some kind of voting mechanism to determine the direction of the code when it comes to open source software, a Constitution it cannot violate, and I suppose some checks and balances to deter the inevitable human corruption.

    1. We build a few advanced chatbots and you want to turn over navigation of the collective will of mankind to them. No. This Mandarin clerk belief that ideal government is merely a crude loyalty towards procedural rules and rituals.. it’s baseless. Great moments in history happen because of the vision and fortune of great men, and to fecklessly whittle that away because it’s not “safe” will lead to mushy decay back into primitive life. Mankind votes for a person they want to lead, bug life votes for revisions to the open source government algorithm

      1. Very true! At the same time, I regret to be the one who brings this up, but this also implies that “I” should never trust “we”. Which might actually be true, but it’s not very helpful.

        Pragmatic solutions are a thing for a reason. We routinely solve problems using Newtonian models, despite knowing that they’re inaccurate, because they’re “good enough for the purpose”, and we know how to measure to identify when this stops being true.

        In many cases, it’s not a matter of “trust”. It’s a matter of “trust, knowing that you can verify.” (And if you can’t verify, all you’ve got to fall back on is “trust”, anyway…)

  4. I’ve seen this before on an open source / open hardware project, specifically OpenPilot from almost two decades ago now. The biggest problem was that the Malevolent Dictator for Life wrote nearly none of the code, but held some of the critical non-code IP. It was impressive and so sad to see such an advanced and awesome project with a bunch of intelligent and awesome people be completely destroyed by one person who contributed so very little to the project.

    That project ended up forking a few times and, as enthusiasm waned with each fork, eventually dying out.

  5. Something needs to be done, even if it’s not quite my suggestion here.

    What needs to be done is to change yourself. You cannot control what other people do or believe. What you can do is to separate the art from the artist in your own mind.
    It’s not your job to deal with the rogue emperor. It’s not your job to police software. It’s not your job, and it’s not your fault if the people involved choose to continue on with it. They have agency, and they are allowed to choose.

    1. It’s like they completely don’t have no self-awareness or moral compass. Someone says or does something you don’t like and you start talking about how to take away what is indisputably theirs by right? Yeah, you are the bad guys in this situation not the person you don’t like.

  6. Does this article have a point?

    Tell us what you’re going to tell us.

    Tell us.

    Tell us what you told us.

    I’m getting locked door with a whiff of bleach here.

      1. My best guess is its related Linus tossing the Russian maintainers recently citing US export controls/sanctions, and not backing down or providing a reasonable explanation.

        But not wanting to publicly name him.

    1. Yup, the point is How To Steal Someone’s Project If You Don’t Like Them Personally. It’s obviously a virtuous and noble endeavor because of who’s doing it though. If you or I did it, it would be terrible and evil and 46 different kind of -ists.

          1. You not paying attention? They’re crusading against the infidels and excusing any atrocity because of their divine mandate. I thought it was a little too on-the-nose even.

      1. Rogue Emperors are a thing, and so are Rogue Communities. In both cases, anything that has real value also justifies and rewards the effort needed to fork it. And even such a license as this one won’t prevent a fork. And rewriting the code enough to make this legal is a great way to build (or recover) the experiential knowledge embodied in the project, anyway.

        And doing so, properly, cannot be theft… no matter whether you’re escaping a Rogue Emperor or a Rogue Committee of Morality Police.

        Another point is that material you wrote remains yours and you can release it under other licenses at will, even if the project you contributed it to doesn’t approve. (Legally binding copyright or ownership assignments are a slightly different beast, but rewriting is good practice and presents opportunities for improvement; if you wrote it once, you can do it again. If you didn’t write, it wasn’t yours to start with, and you should take the time to learn how to do it yourself.)

        1. This is not a problem in need of solving, it is a crusade against infidels plain and simple. If a project leader truly goes off the rails, devs will leave and it will make a fork easy. If he’s just thinking and saying things you don’t like and the devs don’t care, you are the one who is off the rails and no change is needed.

  7. So … the article seems to suggest it was written in response to something that happened with some open-source software.

    Would it be possible to name that software, for us who don´t know about it ( yet ) .

  8. It’s interesting that some of the same qualities that make a person a strong leader can also make them a big asshole. When that person also has a good amount of talent or intelligence, then people are often willing to overlook the asshole side. This is a mistake, in my opinion. I believe it’s lead to the normalization (and praise) of asshole behavior.

    1. Saying mean things or stealing someone’s life’s work? The gulf in the two behaviors is so wide there’s not even a realistic comparison to be had. And if you can’t see that, you really need to take a deep, hard look at yourself.

      1. I think “Stealing someone’s life’s work” is putting words in the authors mouth and blowing them way up.
        1) In open source projects, you can already create your own fork and exclude the original creator, thereby “stealing their life’s work”.
        2) The author mentioned that the best case scenario of this code of conduct/rules of governance having been set at the beginning of the project, which I assume would be by the original author or with their consent.
        3) If one person in an open source software starts going off the rails and causing problems (I remember hearing about Linus having some temper problems in the past), wouldn’t driving away developers who have spent a lot of time also be “stealing someone’s life’s work”?

        1. You thing wrongly then in the case of FOSS projects. Keeping the BDFL position is the norm until it’s not useful anymore or you’re feeling retireish.

          That’s not the kind of stealing I was speaking of nor was it the kind of stealing the author was speaking of. Kicking someone off a project they started and continued to lead is.

          CoCs serve zero constructive purpose if you have a BDFL. They can already do whatever they like without one, including kick people that genuinely need kicking. The only purpose they serve is to paint a coat of false legitimacy when useless idiots decide to railroad developers that disagree with them politically.

          If he’s driving developers away, a fork is absolutely viable. If he’s not, the one bitching is the one in the wrong not the BDFL. Problem solved either way and nobody loses anything.

          No, this is nothing other than trying to make the CoC an all powerful tool for persecuting people you don’t like instead of just a very powerful one. And I’ll wager they try wording it so all forks or reuses of code must include it as well. This could legitimately destroy GPL-licensed FOSS forever if it hits the wrong projects, because the ones wanting it can’t/won’t do the heavy lifting. Don’t believe me? Look at Mozilla and what’s happened to it since it started caring more about politics than making software. It’s barely an almost-ran joke anymore when it once ruled the browser market.

          It’s quite simply pure evil masquerading as compassion.

          1. If anyone started a project with a structure that allows for this, it was a decision they made. Actually following up on it cannot be “stealing”.

            And, for that matter, the original creator can fork the project too.

            Communities don’t belong to anyone, and they cannot be stolen. If the parade stops following you, it wasn’t stolen from you, it’s just not following you anymore. Maybe someone offered a more compelling direction, or maybe you turned away from the interests of the community members, but nobody “owns” a community, not even its members.

            Each community member only owns one member of the community. The original leader doesn’t own the community, a CoC doesn’t own the community, “consensus” doesn’t own the community.

            This isn’t at all to say that organizational hijacks, especially ones aimed at seizing control and turf, are in any way automatically “good behavior”. It’s merely to say that the proof is in the pudding, and every tongue can judge for itself (and it’s inevitable that they will eventually do so).

            An organizational hijack that doesn’t meaningfully improve the product in the eyes of its consumers will eventually peter out or fracture, no matter how legitimate and righteous its intentions were.

            An organizational hijack that DOES meaningfully improve those things will prosper no matter how evil and slimy its real reasons were.

            How to tell the difference? Wait until you can use hindsight.

          2. @A Dude Abides: Lie some more. Or do you actually fool enough to think you’re saving FOSS rather than destroying it?

            This proposal is aimed at two targets and you damned well know it. First, it’s going to be screeched about so that anyone who refuses to adopt it is seen as off-the-rails and pointed to as an example of why it’s needed. Then it’s going to be implemented in a viral manner so that it infects as many projects as possible, which will doom FOSS completely as the people who care about the code are given the boot and nothing but useless trash is left to maintain the project. See, the douchebags doing the crusading care far more about politics than software, and that’s if you can even get them to write a lick of code in the first place.

            You lot may think you’re subtle and sneaky but you’re about as terrible at subterfuge as you are at creating anything except hatred.

        2. Forks have persisting and complete citation of all code belonging to the original author and must be in accordance with what the original author deems appropriate via the license. So no you haven’t stolen anything in that case.

          Again no. Those author’s commits will still be attributed to the person that wrote them.

          Please

      1. Yes, but if someone thinks you’re an asshole, they may be right. And even if you do have a spine, a stiff back tends to get in the way of remediating actual errors.

        As an asshole, I’ve found that the asshole factor and having a correct valid position are actually orthogonal factors. Your emotions might tell you otherwise, but perceived assholeness isn’t well-correlated with being right or wrong…

        There are as many assholes who are demonstrably wrong as there are assholes who are demonstrably right.

        It’s usually better to focus on outcomes rather than psychological factors.

    1. Is it? I figure anyone who deliberately uses WordPress (especially with plugins) deserves all the headaches that come with it and have no room to complain. It’s the Windows ME of CMSes, which is really saying something. I completely wrote Wired off as a bad joke when they switched to it. How can you be a tech mag and pick a CMS that had at least one high severity security bug every month when they picked it? We won’t even discuss how many extreme security flaws you saw every month in plugins.

  9. I think as a society it’s time we left the myth of the Great Visionary behind. Great things are usually the product of a great team. Let’s organize our governance structures around that principle.

    1. So, you’re saying that anyone could go out and organize a trillion dollar company or a large software project that everyone uses? Someone really should have told people this! Here over 99% of people who try have been barely getting by, doing okay, or (mostly) outright failing when they would have all been billionaires by now if someone had just informed them that they could do it just as well as the famous guys!

    2. It’s not a myth and people who try to do this have never produced anything of note. Literally nothing. Great things require teamwork but they also do not occur and the team does not congregate without singular vision.

      1. Right. There needs for the initial Visionary (or ‘spark’). I recall a case in my company right after I graduated from college where I came up with an idea. Went home and hacked it out over a few days (these were in the DOS only days). Showed management what it could do and how it could save us money and of course the customer money. They then funded the project to a product. And yes, after the initial product which I wrote, the whole software team got involved to make it the best it could be. Then over time moved to the Windoze GUI platform transcending the DOS cmd line graphical application. By then there was the development group to guide the feature list… Borland development products ruled the roost. These were days where you really wanted to get back to the office and ‘work’ as cool things were happening!

        1. Those days still happen. You just need to spend as much care picking your employer as your employer spends picking you. (this only works for employers and employees who can make themselves valuable enough to have choices, of course)

          1. It’s not a matter of “can”. Pretty much anyone can acquire a valuable skill. It’s mostly a matter of even knowing they should. For some reason some idiots have been touting “get a degree” instead of “become valuable” for more than three generations; the two are not equivalent. A degree is nothing but insanely expensive trash if you don’t have a marketable skill or two that came from it.

            And for the ones who can’t get a degree, that is not even a slight problem. Skilled trades jobs have always paid and will always pay quite well and marketable skills can be learned even by people who are both poor and slow. If you’re not slow and have a bit of ambition then you can even expect to make more than most people with a degree.

    3. I once asked a friend at Apple when they are going to make a phone. He answered “When we can do it right”, which they did. This sums up Apple nicely. How it morphed in the public and tech fanboy crowd to “Jobs takes credit for inventing everything” is worth a research PhD of some sort. Jobs could rightly take credit for the final products because he analyzed and demanded changes if needed to every feature of a product physical, material, manufacturing, and software. He also controlled the structure of the company with minimal middle management, etc. (Middle management expanded greatly when he was gone. When he returned, there were a lot of newly unemployed non-productive people.)

      1. He answered “When we can do it right”, which they did.

        Did you forget that the phone they did introduce back then wasn’t exactly the phone you have today. It didn’t even have apps/appstore for a couple years and it cost $2000+ through an exclusive deal with AT&T. It was a cool tech demo for a touch screen only phone – which also wasn’t news at the time – but not much else.

        It was ridiculed for being a super-expensive toy with no point or purpose, and the software was so immature that you couldn’t even copy/paste text. If you wanted to copy a phone number from an email to the phone app, you literally had to write it down on a post-it note by hand and then enter it manually.

        The phone did nothing that other companies weren’t doing, it was four or five times more expensive as the competing offerings, and you could only get it through one provider. The only reason it succeeded were the small handful of rich trend setters and fanboys who bought it for the hype. There’s a reason why Apple has one of the biggest marketing budgets of all tech companies.

  10. Hm. The “thing” about iSteve is, he served the generality by (at least) three times “putting a dent into the universe”. If “The Woz” was to do that, then maybe a hundred people would have had a benefit, just because he gifted them one of his brilliant boards he made. That is the “issue” with the rogue emperors, they make masses where others make just classes. (Elon-man did the same by showing that indeed eCars may be built industrially where German manufacturers in their arrogance just laughed)
    As I am from the country of “poets and thinkers”, well, look how many there actually were, not too many, yet for centuries to be kept in mind.
    The majority just wants to use, not to build. And for those open source with its tendency of replacement instead of reuse is no real alternative. I don’t want to build a complete car, when I want to drive from A to B (to put is drastically).

    1. Elon-man did the same by showing that indeed eCars may be built industrially

      Many people did that, many times in the past. They all failed because of one reason: no good batteries.

      Elon Musk’s business came at the right time just as lithium-ion batteries were starting to mature as a technology and prices were starting to come down. He was the first to the market, because he targeted the top of the market, not even attempting to develop a car that could be sold to the masses but simply selling to other rich tech fanboys and celebrities in Silicon Valley, pretending to “prove” something with that.

      The traditional car manufacturers didn’t pick up electric cars – yet again – because they were waiting for the technology to mature more and the prices to come down so they could actually make a reasonably priced electric car – something which Elon Musk also promised, but never delivered as the competition beat him to it.

  11. I couldn’t disagree more about a code of conduct for Foss development. The political beliefs or actions of someone may have some bleed over into their code but it is silly to act as if overtly neutral code is tarnished by whatever else was going on in the head of the author. The fact that we can’t see an impending “”scandal”” while using their code is proof of this.

    Codes of conduct seem like, at best, an attempt at entryism by those who have zero actual development experience and, at worst, a financial grift.

    1. You may well have missed the point of the article, I’m not making the case for a code of conduct but for a constitution to ensure good governance. A constitution regulates how the entity is run, a code of conduct is about behaviour. They are different issues.

      1. He likely responded to the wrong part and was referring to Cceil who has been repeatedly banging the CoC drum despite not coding.

        A project that wants a CoC, fine its their project, but it is the antithesis of FOSS, which is and should be about the project and not anything else.

        Hans Reiser’s ReiserFS was in the Linux Kernel until it was removed recently as obsolete and the guy has been serving a life sentence since 2006.

      2. They’re exactly the same thing except that one is aimed at everyone except the leadership and the other is aimed at only the leadership. And you know it. Take your obviously evil plots elsewhere.

  12. What would an example of one of these constitutions be like what’s an example of practices that would go on it that would prevent this? because it just seems like a UN type of thing where you can say that you don’t want these things to happen but what can you put into writing the can actually like effectuate that

  13. i couldn’t disagree more strongly with the proposed remedy in this article.

    it’s generally been my impression that technical judgement is more important than personality. and, that the most important aspects of personality are not the ones that make someone pleasant to work with. good project management involves making lots of decisions, engaging with lots of people, doing lots of solo work…these are particular tasks that require particular mindsets. to improve the system, you have to ask not just “what is the problem?” as this article does, but also, “what is working well?” unix in general is a ‘worse is better’ system. getting a good result from flawed processes is the only thing we do.

    Jobs would physically intimidate engineers who made a user-hostile experience. that is a problem. but managers at IBM and MS faced the same conduct from engineers and instead said “ship it.” that’s a different problem. i know which product i’d rather use, and i know which team i’d rather work on.

    any successful design for a ‘system of governance’ must mandate strength as well as forbid flaws. but that’s impossible! if the only thing left after banning flaws doesn’t have strength, then the project fails because your license demands it fail in that circumstance rather than live on under difficult leadership.

    we see examples of this every day. for example, wikipedia has a defined system of governance. but if you interact with it, for example because you find propaganda and try to correct it, you will find out quickly that the published guidelines are a fraud. they will have quite eloquent and thoroughly-reviewed statements of policy specifically addressing the problems they have — a very laudable thing to do — but then enforcement comes down to whether or not you met a POV-pusher with a friend in the inner circle. and that’s just the end of it. wikipedia has enormous strengths but despite numerous attempts to specifically address its flaws, it still has all the flaws of an internet clique that believes they are the true keepers of the ivory tower.

    and we have all seen the guy who shows up to argue about your project management principles, but doesn’t actually want to contribute anything. there are better and worse ways to handle that — it isn’t necessarily justified to be cruel to that person — but allowing non-contribution to hijack your project must be identified as one of the worse ways.

    which isn’t to say we shouldn’t try constantly to improve. just, there is no way to define a system of governance a priori that resolves this problem for us. this is a real problem faced by real governments for ages. the best principles seem to rely on adversarial processes and checks and balances.

    i think the open source principle of forking a project represents an apex of human development of the adversarial process. any fool can simply sit down and declare himself the new dictator of an open source project and then his own strengths and weaknesses will determine the success of the project. and Lennart Pottering exists so you can’t very well tell me that it’s impossible to do this anymore.

    the idea that because bloatware exists, there is no room for forking is really the central flaw of the article. yes, people pull in a thousand javascript libraries to do the work of 3 lines of CSS. yes, it would take a lifetime of effort to fork those thousand libraries. but did you consider, you can just write the 3 lines of CSS? it has truly never been a better time to try to get stuff done on computers, because all of these bloated frameworks and deeply nested dependency systems exist…but so does everything else! they don’t displace anything. you can truly chose. i hate systemd, so i don’t use it.

    there’s a turnout aspect that i think goes under-appreciated. the people doing awesome work are now an infinitesimal fraction of the huge world of technology. they changed from a big fish in a small pond to a 10x larger fish in a 1000000x larger pond. we’re not drowned out by the new trends. we’re bigger than we’ve ever been!

    the only real enforced-buy-in part of the software, the only place the unforkable unmanageable bloat truly leaves no choices, is the browser. and that’s the stickyest of all problems, and won’t be solved by platitudes. it needs a specific focus on the unique problems faced by a browser.

      1. Shame it was wasted on someone who was concern trolling in a sad attempt to steal projects from their creators. And then fail utterly to continue producing greatness and let them fall into irrelevance.

    1. This has been a massively useful discussion for me. I’m one of the retired clan and have been fretting about the lack of response to my efforts to create ‘Binary Logic Applications’ ( I’ll spare the details ). I’m slightly gladden about the lack of response now. In ways, it’s made life easier.

      While I haven’t created FOSS before, I’ve done a lot of volunteer work for environmental groups. I’ve learned that people tend to value what they pay for, plain and simple. People tend to spurious whining when they haven’t put in hundreds or thousands of hours of work into a project.

      One more observation. Starting a career in tech world has become increasing difficult over the last forty tears. I had a wonderful career and did well but I’m not sure if I could do it again in today’s climate. Some young people are trying to build their careers on FOSS development. Developers on the inside to account for that.

      And thank you to all the FOSS developers whose work I have used and never thanked for it. Even WordPress . Thank you all for your work and for this wonderful discussion.

    2. Jobs would physically intimidate engineers who made a user-hostile experience.

      And what did it actually accomplish? Not much. Apple products during Jobs’ days of glory were never as good as people remember them to be. MacOS was still co-operative multitasking when Windows was already pre-emptive multitasking, which meant that on a Mac the whole system would crash when one application crashed, and it crashed a lot ,yet people were still cracking jokes about Windows’ blue screen of death. There’s a reason Jobs was said to have a “reality distortion field” around him.

      Remember the old video of a guy complaining and smashing his iMac? – “You’re dragging and dropping, dragging and dropping, and then you eject the CD… and your files are gone!”

  14. I disagree with the proposal, but it would at least make all the conservative freaks who think codes of conduct are “evil” screech and rend their clothes, so that would be an upside.

  15. Soo essentially OP would like it if people would organize their projects they already give away more for his convenience. /s

    We have an update fetish that requires us to never be happy with software even when its performing its function. The illusion that we can get that universally is enhanced by hige corporate and organizational budgets, but its still an illusion when it comes to those projects that are conceived, written, controlled, and maintained by random people that just happened to put them together before they were found by someone else that either didn’t want to or cant go to the same work.

    Our over-reliance on particular projects that we had no hand in creating is not a problem for those projects to solve. The only real ‘solution’ is to find and use software that we can make use of and either continue using it as we found it, or modify it on our own if the maintainers move in directions we don’t agree with or cant make use of.

    1. I have the opposite of an update fetish. I hate when my software updates, it always seems to “upgrade” by eliminating features and settings I like in favor of a “simpler, user friendly experience”. I avoid subscription based software like the plague. I often wait 2, 3, 4 versions of updates before finding a feature desirable enough to pay to upgrade software Ive purchased. Ive gotten to the point where I keep legacy OS systems operational just to continue using software that I own, thats done its job perfectly well for years upon years. I even have a few pieces of software I legally own that Ive had to start using cracked versions of because their licensing servers have disappeared behind a chain of mergers, acquisitions, and closures.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.