I love free and open source software (FOSS). The cause -- essentially, an extension of free speech -- is one that I can get behind as a writer, and community members are not only brilliant but both passionate and practical at the same time. It's an exciting field, and the one in which I've chosen to make a career.
At times, though, the community can be its own worst enemy. Certain attitudes, often long-ingrained, make the community less united than it should be, and work against common goals, such as providing an alternative to proprietary software or spreading the FOSS gospel. Practically everyone in the community has been guilty of one or more of these attitudes at some time or other -- including me -- but we rarely talk about them. And, for this reason, the attitudes continue, hobbling community efforts.
Admitting these attitude problems seems the first step to overcoming them, so here are nine of the most common ones I've observed both in myself and in the community around me:
1) Not knowing allies from enemies
Any time that communities are based on idealism or belief, infighting seems the norm. That's true for religious and political groups, so it's not surprising that infighting should be the norm for FOSS, where so many people hold strong opinions.
But, too often, the infighting seems more important than common goals. Several professional or semi-professional pundits make a career out of attacking other community members (never mind their names; if you've been around, you know who they are, and I refuse to encourage them by giving them free publicity).
At times, these pundits say things that nobody else will, as Jeremy Allison points out. But, more often, their motivation seems to be solely to make a name for themselves, regardless of the divisions they make in the community, and, by reading such pundits, we encourage the continuation of those divisions.
Even worse is the division between free software and open source advocates. Admittedly, the philosophies are different: free software is about user freedom, while open source is about quality software. Yet, despite these ultimate differences, members of the two camps work on the same projects with the same licenses, and are seen by both themselves and outsiders as having far more in common than not.
So why dwell on the differences? The obvious truth is that free software and open source advocates will never find anyone with whom they have more in common than each other.
2) Talking software to outsiders
Software is a major interest to the FOSS community, so naturally community members spend a lot of time talking about it. However, if you're trying to interest other people in FOSS, talking about software only works if the audience is developers. For the rest, even the fact that FOSS costs nothing is not very interesting -- if it were, then more people would use shareware.
For most people, software is simply not a large interest, even if they use their computers ten or twelve hours a day.
As Peter Brown, the executive director of the Free Software Foundation, pointed out a couple of years ago, FOSS needs to learn from the example of the recycling movement. Recyclers don't pitch their cause by explaining where recycled goods are taken for reclamation, or explaining the process by which glass is melted down for reuse; instead, they talk about the benefits that recycling has on the average person's life.
In the same way, instead of talking about software or its licenses, the FOSS community needs to talk more about issues such as consumers' rights and privacy and free speech -- matters that extend far beyond the keyboard and terminal.
3) Being content with imitating other operating systems
For years, FOSS needed to catch up with development on Windows and OS X. The need was unavoidable, because FOSS started later, and, for a long time, had fewer resources than proprietary rivals.
Moreover, people can switch more easily to a free operating system if it resembles what they already know. Nor should developers waste time reinventing the order of menus in a window or the key combinations for copying or pasting.
However, imitation also has its problems. It can lead to blind copying, such as placing the main menu at the bottom left when people will find it more quickly in the top left. It also means that you are always at least a step behind, which interferes with recruitment -- after all, who wants to bother with an operating system that isn't up to date?
The truth is that, in an increasing number of areas, including the general desktop and the office suite, FOSS has already caught up with proprietary systems, or is about to do so. In some cases, such as KDE4, FOSS is actually taking the lead in experimentation. But most of the community has not yet switched its thinking from imitation to innovation, and this failure of perception risks holding FOSS back.
As Mark Shuttleworth of Canonical pointed out last summer, it is not enough to equal Apple. The goal should be to surpass it.
4) Hostility to newcomers
Any community tends to become an in-group. Consisting of networks of association that have existed for years, and because status in it tends to be based on contributions, FOSS is probably more insular than most communities. A newcomer to FOSS has to develop both a certain amount of technical expertise but also a body of largely unwritten philosophy or knowledge before they can hope to fit into the community.
All that is understandable, but it is no excuse for the undisguised impatience and scorn that many community members show to newcomers. Too often, I've seen well-meaning, if uninformed newbies lose interest in learning about FOSS because their basic questions provoked rude replies in which "RTFM" featured as a prominent comment.
Apparently, many community members have yet to realize that the average person looks for help from people before documentation, or that asking a question rather than researching a subject for yourself may be an attempt to establish contact as much as a plea for help.
Granted, not everyone is suited to tech-support. But if a code of conduct was aimed specifically at how newcomers were treated, then the community might gain a few more recruits instead of scaring them away. It would also be more in accord with free software's four freedoms and the open source definition, as a recent blog on GNUMedia points out.
5) Giving the developer a special position
FOSS began among developers, and their work remains central to the movement. But what many people haven't noticed is that the community has grown far past its origins. Especially in large projects, documenters, testers, artists, marketers and managers -- to say nothing of general end users -- have all become essential contributors. Increasingly, a FOSS software release is becoming a collaboration among people of different skill sets.
Yet, despite this change, in many projects, non-developers are given second class treatment. In a large number of cases, they cannot become full members of the project, and are not allowed to vote. If a non-developer makes a suggestion that would help the project, too often the response from a developer will be, "We look forward to your code" -- with the developing knowing very well that they are not talking to a coder.
Under these circumstances, non-developers can hardly be blamed if they lose their enthusiasm for a project. And, without them, much of the work required for a modern piece of software simply won't get done.
6) Focusing on hating Microsoft
The entire community is suspicious of Microsoft, and rightly so - - no other proprietary company has been so consistently hostile to FOSS, and recent efforts at friendliness are too tentative to impress anyone. However, some segments of the community seem less interested in computer freedom than in expressing loud and unwavering hostility to Microsoft.
This hostility is worth combating for several reasons. To start with, it is non-productive, doing nothing to help achieve FOSS' goals. As Joe Brockmeier, the openSUSE community leader and my former colleague at Linux.com points out, people who spend their time hating Microsoft rarely seem to contribute to any projects.
Even more importantly, because the haters are vocal, outsiders often mistake them for the mainstream of the community, assuming that everyone in FOSS is shrill and paranoid. This is hardly an image that encourages outsiders to get involved. And these days, decrying Microsoft is so trendy that the haters -- and therefore FOSS -- risk blending into the general atmosphere.
But probably the greatest reason for rejecting the strong anti-Microsoft prejudice is that it can blind the community to other proprietary opponents. No one, for example, seems to be concerned about Apple's proprietary actions, even though in many ways it is emerging as FOSS' chief opponent.
In short, no matter how you look at it, Microsoft paranoia is something that the community needs either to jettison, or to dial way back.
7) Taking commercial development as a model for growth
With increased success come problems of scale. By the time they are noticed, problems of scale usually need to be quickly addressed, so perhaps it is natural that successful FOSS projects should look to commercial development for ways to handle growth.
But, for whatever reason, increasingly, large FOSS projects are acting more like commercial software houses. Fixed release schedules, for example, have become the norm for many projects, including GNOME, Ubuntu, and Fedora -- regardless of whether a new release is needed. Recently, too, Mark Shuttleworth has tried to promote the idea of synchronized release schedules among the major projects to make it easier for distributions to plan their releases, although so far the idea has yet to receive much support.
In some cases, borrowing ideas from commercial development may be useful. Yet it should never be forgotten that, while FOSS can work with commercial development, its goals are different. What happens, for instance, to the open source idea of only releasing software when it is ready when a project commits to regular releases? Sooner or later, problems in quality control will be inescapable.
Even more importantly, FOSS development remains fundamentally different that most commercial development. In many cases, FOSS developers include a high percentage of volunteers, and they are far more likely to be scattered in more locations than the members of a commercial development team. These circumstances mean that, as throughout its history, FOSS has to make up its work flow as it goes along. For instance, how do you get test plans done when your testers are volunteers? In this, as in many other things, FOSS needs to innovate rather than borrow ideas.
8) Making market share the top priority
The old joke is that the goal of FOSS is world domination. And what member of the community doesn't feel a second of pride when another country or company converts to FOSS, or an application like Firefox gains a few percentage in user share?
However, as I have written before, more users mean nothing if they are gained by giving up FOSS ideals, or if those users do not support them. In the excitement of being recognized at last, the community needs to remember that the goal is not just to provide alternative software, but an alternative philosophy and relation to computing.
If you focus just on gaining market share, the way that an increasing number of community members seem to be doing, then FOSS loses at the moment that it seems most successful.
9) Stopping short of a completely free operating system
Now that the goal of a totally non-proprietary operating system is in sight, you might imagine that people would like to push on and finish the job. However, as reactions to the Free Software Foundations's recent relaunch of its high-priority list shows, a surprising number of people in the community feel no need to achieve the ultimate goal. So what, they say, if they have to use proprietary drivers for their video cards, or use Adobe Flash Player on YouTube. We've come close enough to the free desktop not to worry about the remaining gaps, and at least these other items are free for the download.
The idea that the present situation is good enough seems at odds with the love of excellence that is central to open source. Even more importantly, it means accepting failure, and giving up the idea of providing free, alternative operating systems. Why give up when the goal is so close to being realized?
Discussing the problems
The attitude problems in FOSS depend on your perspective. I can easily imagine an open source advocate suggesting that my emphasis on user freedom holds back widespread acceptance, or the owner of a company with a FOSS business plan saying that my insistence that FOSS is not primary commercial is a handicap to success.
But my point is not just particular problems. My real point is that FOSS has grown so large so quickly that it has not had the time to question whether old attitudes were still useful or new approaches consistent with core values. Before it grows any bigger, the community needs to examine its attitudes and evaluate them. Otherwise, it risks, if not collapsing under the contradictions, then handicapping itself unnecessarily.