Two fallacies of choice

Fallacy #1: Choice is good

Five years later, I still think Adam Jackson’s “Linux is not about choice” might be the best thing ever posted to fedora-devel-list.

Seriously. Go read it, if you haven’t already. I almost know it by heart.

To paraphrase slightly, the heart of the post is this:

The chain of logic from “Linux is about choice” to “ship everything and let the user choose how they want their system to work” starts with fallacy and ends with disaster.

Some context: this was in 2008, shortly after Fedora 8 was released. Fedora 7 added the juju firewire stack and Fedora 8 was the first release with pulseaudio. Both things had their problems, as new things tend to do – rough edges, some devices not yet supported, etc.

And so some people just wanted the Old Way back, and some people wanted a little GUI with a little checkbox so they could choose which sound system or firewire stack to use.

ajax explains why the checkbox is a terrible idea:

If you try to deliver both at once you have to also deliver a way of switching between the two. Now you have three moving parts instead of one, which means the failure rate has gone up by a factor of six (three parts, and three interactions). We have essentially already posited that we have insufficient developer effort to have 100%-complete features at ship time, so asking them to take on six times the failure rate when they’re already overburdened is just madness.

Remember this any time you want a way to choose between two methods of doing something: that simple checkbox can mean three times as much work and six times as many potential bugs. It’s almost always less effort to just fix the problems.

So, in fact, fewer choices means better code.

Fallacy #2: “They’re taking my freedoms!”

These same conversations happen every time any open source project makes a significant change. There are always people demanding it be changed back, in the name of their Choice and Freedom – or, at the very least, there should be a checkbox so we can choose!

This is utter nonsense. And here is the underlying fallacy that makes it so:

The basic, fundamental principle of Free Software is that you have complete freedom to do anything you like¹ with it. No matter what has changed, you still have (and will always have) the old version of the software, plus all the tools used to build it. You can join forces with like-minded users to maintain that perfectly flawless version! You can add whatever checkboxes you like! You have exactly the same freedom and choices as you did before.

Free Software works in both directions, just like Free Speech:

Free Speech means nobody can stop me from saying whatever I want², but this also protects your right to say whatever you like. Nothing you say (even “shut up, idiot”) can actually infringe my right to speak, even if I don’t like it.

Free Software means nobody can stop you doing whatever you want with the software³, but this also protects the developers’ rights to do whatever they want. Nothing they change (even GNOME 3) can actually infringe that freedom, even if you don’t like it.

So: there may be legitimate criticisms of new software like pulseaudio or juju (or GNOME 3 or the new anaconda), but any complaint along the lines of “the developers are taking our freedom/choices away!” is 100% rhetorical nonsense.

¹ within the terms of the applicable license(s), of course
² within the terms of the applicable local laws, of course
³ see note 1


19 thoughts on “Two fallacies of choice

  1. Choice has totally different meaning for pulse and anaconda vs gnome3. Even if I wanted, there’s little a non-developer Fedora user can do about pulse or the horror known as the anaconda (THKAA) replacement. Gnome3 is a different story. If it doesn’t suit my use case, it’s easy enough to switch to kde or whatever. Pulse and THKAA have embedded hooks to insure survival. Gome3 not so much.

    • That’s an interesting observation, because it’s sort of a corollary to the First Fallacy.

      Let’s call this the First Axiom of (software) Choice: Allowing the user to choose is a good idea when the benefit significantly outweighs the burden.

      The reason it’s easy to switch between GNOME and KDE (and LXDE and XFCE and so on) is that we’ve all concluded that it really does provide a significantly better experience if we let users switch desktops. So we actually bothered to write all the little UIs to switch between desktops and we do all the extra testing and development, because it’s actually worth the effort.

      In the case of anaconda or pulseaudio, the situation is different. You say they have “embedded hooks to ensure survival”, but I think what you really mean is “there’s no easy method to switch”. But that’s just because there’s nothing to switch to.

      What alternative installers/sound systems are there? Who supports them? Who is willing to package and continue to maintain them for Fedora? How do we get them to cooperate? How does this affect the rest of the system? Are they 100% compatible or do we need to backport changes between them? How hard is it to write a UI to allow users to switch between them?

      If there were alternative installers out there, I imagine people would be attempting to make them work with Fedora, like you see with Unity or Cinnamon. But the only real alternative to anaconda is.. the old version of anaconda. Which is now basically unmaintained (and with good damn reason – see my previous two posts). If there was actually such an enormous need for the old version, I imagine we’d have people packaging up the old version and trying to make it work in F18, like you see with the MATE desktop for GNOME 2.x.

      If alternatives did exist, we’d still need to sit down and consider the other questions above. And in the end the big question is: Is it really worth all the effort, or would we be better off working to improve the new stuff so it meets our needs?

      • I was sort of looking at it from a marketing perspective. For Fedora as a distribution the average user decides whether using Fedora 18 is worth the hassle of whatever things the user might dislike about what they can’t realistically change. For me that trade-off is that I do prefer to use Fedora 18 despite the new Anaconda (but I’m fine with systemd and pulse). Gnome 3 however I see in a totally different marketing position. Users’ easy alternatives means that Gnome 3 has no hooks at all and its devs are in a far riskier position as it relates to holding together a user base — they could easily lose it. By comparison Fedora is in a stronger position despite whatever the latest controversial innovation is.

  2. I would agree with both statements for a certain distribution if the said distribution demonstrated their willingness to fix bugs (caused by switching to something new) by all possible means, including a distribution-wide revert of that new thing once it becomes clear that that thing is not ready or that the world is not ready for that thing. Could you please point me to a single case where Fedora reverted something after a release?

  3. This is a good analysis. I’m doing exactly what you mention; I don’t care for Gnome 3.6 in Fedora 18, so I’ve stuck with 3.4 in Fedora 17 on my laptop. On my desktop I’ve upgraded, but to a minimal installation with X11+XDM+Openbox. The Fedora devs didn’t take away my freedom by giving me Gnome 3.6 against my will, they simply exercised their own freedom. And in using an older version, or finding an alternative, I’m exercising mine.

    • Don’t forget there’s also MATE (if you really preferred GNOME2) and Cinnamon (if you’d prefer something GNOME3ish but different).

      This is the beautiful thing about Free Software – when all the people who think “I don’t like the way this has changed and I think we could do better” get together and actually try to do something better. That’s how problems get solved!

  4. Hey, nothing Mac devs had changed can actually infringe users’ freedom as well. Mac devs had just exercised their freedom to develope in their own way and I’ve exercised mine as as a user, so had chosen Linux (Ubuntu minimal minus anything Gnome).

  5. While the two statements above apply in a lot of general cases, they don’t apply all the time. For example, if fewer choices means better code, then logically the best code comes from having no choices. However, as mentioned above, that often leads to no users. And if you have no users, what was really the point? There is also a large difference between trimming choices and the extremes that the Gnome has gone to in actively preventing/discouraging features from being re-added.

    As for the second statement “They’re taking my freedoms”, Adam was really mislabelling the problem. What the “user” meant was, “They’re taking my features”. And they would be right. That is not necessarily a bad thing. But you should be also considering things from the perspective of the end user. This is a problem all too often exhibited by developers. You develop from the point of view of a developer. Developers seldom stop to think about the consequences to users. If they did, software would be a lot better as a whole. You may think some random feature is a pain in the butt to maintain and should be removed for logical reasons. You miss the fact that some, maybe many, users are using said feature. Audio is a good example. No working audio is pretty much a deal breaker for most users. So it should be easy to understand why there was a large stink over the pulseaudio problems.

    Now here is an interesting question. We know that what gets developed in Fedora ends up in RHEL eventually. So if a large RHEL customer calls up and asks why a feature has been removed from the distro, are you going to tell them that choice is a bad thing or that they can code it themselves?

    • Your first point is probably correct (where best code==no unintentional bugs), but that is obviously not a serious consideration. I also agree that Gnome could be much better with providing more configurability for the use, BUT they really, truly don’t have a massive dev team and making something properly extensible and bugfree can be quite hard.
      I don’t know that developers “seldom stop to think about the consequences to users”, but if you instead wish to say that the GNOME developers haven’t developer REALISTIC personas I’d agree with you.
      Lastly, that is a completely different point. RH customers are PAYING for those rights. If you are willing the pay the million dollars a year that big RH customers pay I’m sure they’d do all they could to accomodate you.

  6. Pingback: Links 27/2/2013: Firefox Phone Partners | Techrights

  7. Not to be nitpicking, but before “remove any sign of flexibility” quest has started there was one Gnome environment, with little customizations distributions (lik e Ubuntu, Mint) did.
    Now we have 4 Gnome derivatives (GnomeShell, Unity, Cinnamon, Mate) with GnomeShell being the most blurry with crazy mix of extensions, where lots of them being broken by changes in consequent Gnome3 releases.
    Idea of choice should be incorporated in your design, else it’ll break into without any sort of control causing real disaster.

    • Idea of choice should be incorporated in your design, else it’ll break into without any sort of control causing real disaster.

      Do you actually develop/design software? Because I hear this sentiment a lot, but almost never from people who actually have to write the software…

      Also: consider that all of the different derivatives can be thought of as competing prototypes. When one clearly stands out from the others, it’ll dominate. Until then, they all improve, just in various directions. I don’t really see why this is a disaster!

      • the problem is, in the meantime ALL the alternatives suck. yes, GNOME Shell suck, Unity suck, Cinnamon suck, MATE suck. a normal user who want just to use his computer as a tool to get some work done has to choose a sucky alternative.

  8. One particularly heinous but common fallacy is the belief that the entire open source community should act as a single entity. One particular Apple fanboi that I frequently talk with about this topic thinks that “Linux has too many [xxx] they should just standardize on one.” It assumes that “all of open source” is an entity on the same level as “Apple” or “Microsoft.” But it isn’t. It’s true that a single distributor should make decisions and stick with them, but the “entire Linux community” isn’t a single entity. It’s zillions of different people and groups with different goals and different problems to solve. Insisting that the entire open source community act as a single entity is as ridiculous as insisting that the entire closed source community act as a single entity — why should there be Apple *and* Microsoft, there should only be *one* closed source operating system!

    • that may be because on some angle linux does come across as a single entity. imagine there being a dozen versions of windows all competing for the same user-segment and all claiming to be the one-and-all version that you’ll ever need.

      if anyone asks about the difference between eg. ubuntu and windows most of us can give a clear answer, but if they ask about the difference between fedora and ubuntu then the answer will most likely revolve around technical details that an outsider doesn’t understand or care about or it will be something like: “oh they are pretty much the same…”.
      now again compare that to redhat enterprise linux vs. fedora where we can give a clear answer that anyone can understand without knowing anything about linux at all.

      i guess that your fanboy friend is facing just that problem. he can’t tell the difference between the various linux offerings, so he gets confused and proposes to clear up the confusion by reducing the choices.

      greetings, eMBee.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s