The user is not a dumb, skittish animal

There is a favorite piece of self-criticism that persists in Free and Open Source Software (FOSS) communities, to the point of being a piece of received wisdom: people who write FOSS create systems which are complex, esoteric, unintuitive, and generally unusable by normal people. The archetypal FOSS maintainer in question is a FOSSbro—a descriptor analogous to techbro, that the Fediverse in particular seems fond of, though the stereotype itself exists elsewhere.

The FOSSbro is a kind of obtuse, pedantic, insensitive, and overly self-interested nerd, who is aiming to maintain a no-girls-allowed club. A malicious menace if he (one assumes it is a he) accosts you, and assumed to be impossible to reason with, were you to approach him. If the FOSSbro brushes against the broader societal good of collaboratively constructing something for the benefit of others, it is only incidental, since he is unconcerned with those sorts of politics.

The received wisdom does not emerge out of nothing. Plenty of free and open source software is unpolished and ugly, with user experience flows that are flawed. People will write software mostly for themselves, bringing in all sorts of personal idiosyncrasies, and then share it with others anyway. People will omit devoting time to things that could make software easier to use, placing their priorities elsewhere. Projects will carry on without participation from anyone who has experience relevant to improving the situation. And, of course, on the Internet, any time one imagines the worst kind of guy, real life people who match the imagined guy exactly will show up.

Sin no more

On the other hand, there are people who try to make sure that the software they author is easier to use, and more accessible for a wider range of people. The FOSS movement encompasses a variety of ideological strains, and some of those have broader politics. While some are happy with a piece of software being used solely by an exclusionary and elitist group as long as it has a nice license, more progressive views go beyond that.

Such authors and maintainers are often concerned with avoiding being FOSSbros. FOSSbros care only about themselves and people like them, and hold those who are not skilled at using computers in contempt. Thus, to avoid being a FOSSbro, one has to keep in mind that potential users may not be particularly experienced with computers, and that it is likely for people who write software to intuitively overestimate the average level of relevant proficiency.

In attempting to avoid these cardinal sins, however, it is possible to overcompensate. If being a FOSSbro is the worst thing possible in this context, then one may conclude the correct things to do are the extreme opposite of what a FOSSbro would do. If a FOSSbro assumes the user must be an expert (because otherwise they don't deserve to be a user), then the correct thing to assume would be that the user is dumb and hapless. If FOSSbros do not care about welcoming new users, then the goal should be to gather as many users as possible.

Of course, people are not driven solely by contrarian reaction, but these sort of attitudes can serve as shortcuts when evaluating an approach. Whether internally for an individual, or in a group, there is the possibility of ending the discussion with "that's a FOSSbro thought". Sins are, after all, things you're not supposed to do, or even think about too much.

Information technology cynicism

The notion of users being generally dumb did not originate in progressive FOSS circles. Instead, for decades, it has been a piece of persisting cynical received wisdom among people involved in information technology. Gather enough people who deal with ordinary users on regular basis, and you will be able to find several anecdotes about those users being obtuse, prone to obvious mistakes, and incapable of comprehending simple concepts. Someone is likely to offer such anecdotes as evidence for the assertion that most users are like that, and they do such things all the time.

Progressive FOSS communities notionally eschew such attitudes, though. Contempt for those you consider below you is how you end up with elitism, so if one wishes to avoid a project going the way of the FOSSbros, one has to avoid having contempt for the ordinary user. The problem is that getting rid of feelings of superiority does not necessarily mean getting rid of the underpinning, contemptuous beliefs. The normies may not be inferior people, but they are still fundamentally normies. Derision can be replaced with patronizing concern.

A related cynical belief is one that exists more broadly, outside of the realms of software: that people do not care about principles or politics, and just want their stuff. This is true to a certain degree, as often, people just want to get stuff done quickly and without too much pain. Using their energy on broader concerns is not always something people can, or want to do. The teeming masses are not, however, not a monolith, and there is a spectrum of attitudes that can be found among them. A lot of people will care about the structures of ownership and power if their favorite online hangout is bought by a billionaire with fascist tendencies, who then proceeds to run the place into the ground.

Observing the skittish animal

Notions about how the typical user behaves do not originate just from subjective feelings and anecdotes. In the modern day, a tech corporation will often use experimentation on, and surveillance of their users in order to determine how to achieve the desired user behavior—things like creating an account on the website, or completing a purchase. Things learned here, in the aggregate, lead to emergence of rules of thumb about the design of user interfaces. It becomes generally understood that certain patterns chase people away, while other patterns help move users through the given process with more ease. It is not just anecdotes and vibes—there is actual data to support the conclusion (not that conclusions drawn from data are always entirely vibes-free).

The problem here is that the motivation for conducting all this research is profit. The user is moved through the given process with ease because that is what is desirable for the corporation that owns the service, and not necessarily because it is good for the user. The metrics of how many users are thus smoothly converted are a proxy for how much money can be made, and the corporation desires for that number to go up. Not every decision a corporation makes about user experience–related design is malicious in such a straight-forward way—having good user experience, after all, makes people like the product—but in a lot of areas, it is.

Progressive FOSS projects are not motivated by profit, but may still end up chasing the same metrics. Higher user counts are not even a bad thing by themselves—more users on a user-respecting alternative means, likely, fewer users exclusively on the exploitative alternative. A problem arises when getting more users becomes the main goal, and the project orients itself around herding more people in, rather than benefiting them. Success starts being defined as a larger number, rather than managing to create software that empowers people.

Different attitudes

All of this is not to say that the archetypal FOSSbro was right all along, and that we should weld more spikes to the outside of our software, and damn anyone who can't figure out how to use them to climb on. If the goal is to have a more progressive kind of FOSS that empowers users, then design that keeps users away is detrimental.

However, it is also important to not overcompensate. Better results can often be achieved by trying to figure out good goals, rather than trying to avoid becoming bad.

Users—and people in general—are not dumb. Designing a system around the assumption that the person using it is incapable of understanding concepts that have any degree of complexity means designing a system that is essentially contemptuous towards its intended audience. Yes, users may be operating under some misconceptions, may be distracted and not paying enough attention, may not have time to explore a topic in depth, or may not have enough experience with the problem area to make the assumptions that are common among the more experienced. A good system will do its best to help the user avoid mistakes arising from these factors, and to guide the user towards where they may want to go. A good system does not necessarily have to limit its functionality in order to entirely avoid situations where a mistake is possible.

Software that exploits the user is often at an advantage when it comes to complexity. Things are simpler when the user is not informed about the details of what they're consenting to, and when decisions are made to benefit the vendor, rather than that individual user. Software guided by ethics may come with extra complexity as a result of enabling the user to make informed choices, or because a fair approach—one where control is not concentrated in the hands of one malicious entity—requires a more complex fundamental structure.

A system that, for example, abstracts away the concept of a file may be easier, but a system that makes files accessible to users directly is more interoperable. With a social network that decentralizes both infrastructure and control—such as the Fediverse—it may be possible to hide the details from the user to offer a simpler experience. In practice, however, the implementation details will end up leaking into the users' experience, and the users may need to find out who is in charge of what, in order to know who to address their concerns to.

On a more philosophical level, it is useful to show users what complexity exists, and why it exists. This does not mean ideological indoctrination should be a prerequisite for using a piece of software, but that users should be able to learn what ideological and political principles informed the choices related to the creation of the software. Being ready to explain the principles behind something that is already being done is one of the better approaches of enabling people to learn about those principles.

It is also important to not reproduce the corporate attitudes towards numbers. While the goal may be to provide empowering technology to as many people as possible, that is not the same thing as converting as many potential users as possible. It is possible to develop software that is welcoming while also having benefits associated with progressive FOSS ideology, such as being free of corporate profit motives, or respecting user privacy. When these benefits outweigh the obstacles, users will want to migrate to the software, even if it won't be every possible user. Here, some advertising is still desirable, as the users have to know the option exists, but should be honest, rather than as convincing as possible.

This is in contrast to starting with the assumption that getting as many users as possible for their own good is desirable. This leads to being driven by the desire to entice and generate good surface impressions. On a practical level, is bound to generate resentment and hostility as users experience mor of the software. On a more ideological level, it implies moving away from the direction of empowering users.

A better software is possible

Nothing is absolute, and a balance is often required in the real world. Ideologically pure software is often impractical. Preachy software is obnoxious.

The goal of using free and open source projects that are aimed at bringing benefit to a wider range of people is admirable. Contrasted with the traditional, narrow attitude towards free software, it is the better politics. However, trying to do the former by focusing on atoning for the sins of the latter is often counterproductive. In trying to avoid being terrible, it is more useful to figure out how to be better, rather than trying to reflexively do the opposite of the bad thing.

There are no simple and easy answers in how to organize and steer free and open source projects—at least when it comes to larger, collaborative ones that require organizing and steering. The corporate offerings have an inherent advantage, due to the system everyone operates under, and it may not always be possible to save everyone. However, it is possible to make things that empower and help people, and that is, in itself, a worthy goal.