"Contrary to many stereotypes, delighting users is what gets a developer up in the morning and meeting user expectations inspires them to always do better. Consumers also buy things, and that is like fuel in the tank for open source development. Aside from the practical matter of funding salaries, competition for consumers is an important driver of innovation, and fires the imagination of developers."
Rick Spencer, Ubuntu desktop engineering manager
The software provided by the GNOME Project is produced by a large community comprised of several thousand developers, translators, quality assurance testers, and documentation writers. Consumers are represented in the community by technical users and organizations that distribute GNOME technologies. And while the community reaches out regularly to non-technical end users and welcomes any that approach the community, these two worlds rarely interact. This article draws upon our experience within the GNOME Project to examine the question "Why do consumers and the community rarely interact?". Our insights may prove useful for other projects and consumers wishing more interaction.
Reasons for Limited Interaction
The GNOME Project provides both a desktop environment and a development platform. The focus of the desktop is ease of use, stability, internationalization, and accessibility support. The development platform provides an extensive framework for building applications that integrate into the rest of the desktop. GNOME 2.24 represents the first release of the GNOME Mobile development platform which brings standard desktop components together to provide a core platform on which distributors and handheld manufacturers can build rich programming environments.
The GNOME community currently has over 14 million users that consume GNOME technologies and software in many ways. Some consumers use the full desktop, others use its multimedia applications for photo editing or listening to music, while others run its software on their smart phone. When doctors use a Supersonic Imagine scanner, they are using GNOME technologies to detect breast cancer. When children around the world use their One Laptop Per Child XO, they are using GNOME technologies. What is true in all cases is that the end user probably didn't directly download GNOME or its applications.
The GNOME developer community would like to hear more from end users. End users' feedback can improve the product, making it better for everyone. Also, users might be doing something the developer never thought of and the developer can make that feature better for everyone. In spite of the fact that developers would like to meet consumers, there are several reasons that non-technical users and the community do not interact. These reasons are typical of most project/consumer interactions and are not limited to the GNOME community.
The main reason consumers and the community don't interact is because most users, whether they are using a desktop, a netbook or a cell phone running GNOME Mobile technologies, get their technology from a vendor, not the GNOME community. Many consumers do not even know that they are using GNOME. They might be listening to music with Banshee, editing their photos with Gimp and managing their finances with Gnucash and have no idea that the underlying technology is GNOME. When it comes to interacting with the GNOME community, the user first has to become aware of the community. When most users encounter a problem, they end up on a GNU/Linux distribution site. Or, if they were using a Garmin 880 GPS, they call Garmin, not GNOME. In most cases, this is a good thing. The consumer is using a product from a company that happens to include or be built upon GNOME technologies. While the GNOME community of developers would like to hear their feedback, it doesn't always make sense to introduce an additional relationship to the end user, not when they've paid for a warranty or support from a vendor.
Some users don't interact with the GNOME community because they are unfamiliar with its communication tools. Most non-technical users interact on the user forums. These forums are easy to find via a Google search and it is easy for a new user to ask a question. In contrast, most GNOME developers communicate on IRC and mailing lists. IRC users tend to be more technical and IRC conversations are not typically picked up by search engines.
Lastly, users often look for the GNOME community only after they've encountered a problem and they discover that to report it they need to learn how to post to the bug tracking database bugzilla or subscribe to a mailing list. By the time they are reaching out to the community, they are not looking for relationships or to make suggestions. Rather, they have an immediate problem that they need help with. Instead of finding someone who can immediately answer their question (although that does happen), the process directs them to tools that they may not be familiar with.
Importance of User Contributions
If consumers don't participate in an open source project through the traditional community channels, how do they participate? How can an end user contribute and be part of the community? We often talk about users being the ultimate testers and contributing bug reports, and if they are technical, perhaps a patch, or maybe some documentation. But users can contribute in many other ways:
Users test software. Some users do test software. Hopefully end users are testing already well tested software, but occasionally they run into problems. Or, they get excited about a new project and download a pre-release version that still needs testing. At the Maemo Summit, a Nokia manager publicly thanked a group of developers for being his guinea pigs. In a sense, all open source users are testers. Some contribute by reporting any problems they run into while others continue to make sure it works. Users also contribute feedback through blog posts, talks, and articles.
Users spread the word. Users who talk about their experience often recruit more users and developers. Consider a high school student who discovers Open Office and Google docs and saves her mother the money it would have cost to buy Microsoft Office. She tells her friends and other parents, potentially creating more happy users which spread the word about the software they are using. GNOME software now includes great integration of system and applications (like plugging in your camera and having F-spot automatically import pictures) as well as very reasonably priced software that meets accessibility needs. Many people are finding that many accessibility solutions from speech synthesis to drawing tablets to eye trackers work well in GNOME and the software is free. Free software is also a good fit for people that want to promote free trade.
Users motivate developers. When users talk about, blog or demonstrate GNOME, they are not only spreading the word, they are also giving kudos to the developers. Such recognition is incredibly motivating. Developers enjoy writing software, but they also enjoy hearing how that software is changing people's lives, from the kid using a XO in Africa to the kid in the US that can't see using a screen reader. Knowing that your software is helping someone else is very motivating.
Users lend credibility. To a project, credibility enables growth. Hearing that Firefox has millions of downloads or that GNOME has 14 million users definitely encourages new users to try that software.
Financial contributions. Directly and indirectly, users contribute to the financial well being of GNOME. Sometimes they purchase support or products from companies that sponsor the GNOME Foundation. Sometimes they contribute directly to the GNOME Foundation through Friends of GNOME. All of these contributions flow back to efforts that support the project from hackfests to usability studies.
Participating in user groups. Through user groups, people help support each other and spread the word about GNOME.
While more interaction between developers and users can produce better products, many people have heard of a story of a user getting ignored or getting a negative response from the community. Unfortunately this sometimes happens as there are many more users than developers and the best channels for communicating aren't always clear. Here are some ways for consumers and developers to work together.
Using forums. Given that there are a lot more users than developers, providing some structure to the feedback can help developers respond and react to feedback. Whenever possible, use the appropriate forum, not a direct email to a developer.
Specific issues. If there's a specific issue with a project, whether it's a bug or just a use issue, bugzilla is the best place to go. First, search to see if the issue has already been reported. If so, just add to the existing report. Users talking about very specific issues in the right locale are very useful to the project as they can help identify the problem, come up with ideas to fix it, and verify that it has been fixed.
Using intermediaries. Most people obtain GNOME through a third party and have associated channels of support and communication. While it adds a layer to the communication, it is still useful information and a valid way to communicate. The GNOME distributors work closely with the GNOME community and their work reflects the feedback they receive from consumers.
Outreach programs. There are a number of ways even novice consumers can interact with developer communities. Conferences often offer tutorials or hands-on, get started days. Users can take advantage of these avenues to get advice from more experienced users or developers and also to demonstrate what's giving them trouble. College professors are also good outreach coordinators. Several universities are teaching students computer programming skills by having them work on GNOME technologies.
Helping in non-technical areas. Developers can always use feedback in the form of usability studies or requirements gathering. While these work best when run by a member of the team, projects can always use help setting them up.
Existing discussion channels. There are a number of other places where conversation happen. All of these places are text based, online channels. Some cater towards end users like the GNOME Forums and user groups. Others tend to have more developers than consumers such as the mailing lists and IRC channels. When using these channels, be sure to be on topic. There are lots of mailing lists and IRC channels as everyone has a specific audience and topic.
Users are the target audience for GNOME. The GNOME Project's goal is universal access. Making sure technology is available to anyone, not just technical people, regardless of culture, financial well-being or physical ability is what GNOME is all about. The fact that people use it makes the project a success, the developers happy, and the whole thing going.
The GNOME developer community works really hard to understand its users and to make sure that the default options, the ones that most users will first encounter, make sense. They have also put a lot of thought and effort into making sure that GNOME is accessible to all users regardless of ability. They work hard to communicate their core values to all users: free software, internationalization and localization, usability, and accessibility, and to make sure users are welcome, especially at GUADEC, our annual conference. But whether users show up in the developer community or not, they are definitely contributing members of the GNOME community.