The 10 roles in an open source community

1) Developers

Developers are the backbone of every open source community. Without them, the project would not exist. Many open source projects were started by a single programmer who created a piece of software to meet their own requirements. While most open source developers graciously volunteer their time, a growing number of developers are being paid to work on open source software.
2) Packagers

Open source applications need to be converted into a package format before they can be included in a Linux distribution. Packages make it easy to install a software application, including any required dependencies.
3) Artists

Most open source applications will need graphical artists to create icons, buttons, and logos. Some projects will also need musical artists to create audio files.
4) Documentation writers

A software project will not be successful if users cannot learn how to install, configure, and use the software. Good documentation will increase the adoption of an open source application. Wikis make it easy for anyone to help with creating and editing documentation.
5) Beta Testers

Open source projects need people to test the software. These beta testers are the equivalent of a Quality Assurance team. Developers will often create beta versions and release candidates before they release a version of software to the general public. Beta testers play a crucial role in testing software on multiple hardware and software platforms, and in a wide variety of environments. These testers will create new bug reports, triage existing bug reports, and test patches that the developers create.
6) Translators

One of the coolest things about open source communities is that they are international. This means that your users will understand many different languages. Therefore, the more languages that you support, the larger your user base will be. Modern tools like Rosetta provide a simple web-interface that allows anyone to be a translator, regardless of technical ability.
7) Support Technicians

A good open source community will have volunteers to answer technical questions that other users may have. These support technicians will monitor forums, mailing lists, and IRC channels looking for users who have questions.
8) Advocates

Advocates are people who tell other people about the benefits of open source software. They review open source software on their blog, they demonstrate their Linux laptop to friends and family, and they convince co-workers and managers to replace proprietary applications with open source alternatives.
9) Users

Users will hopefully become contributing community members. Because users benefit the most from open source software, they are often inclined to give back by donating their time and skills.

10) Infrastructure providers

Someone needs to maintain the hosting of the website, forums, wikis, IRC channels, and version control systems that the project uses. Without these contributions, open source community members would not be able to communicate with each other.

Conclusion

As you can see, there are many different ways to contribute to an open source community. It may surprise you to know that only two of the ten roles require programming skills. This means that anyone can find a way to participate in an open source community. Go ahead and Get Involved!

Comments

  1. hmm.. you forgot about usability/interface design. and no, that doesn't fit in the with the artists.

    ReplyDelete
  2. Great topic! I hope lots of people will be able to read this. I think the two most common misconceptions about contributing to open source projects, specially distros, are: 1) you need to be a programmer; and 2) contribution is limited only to developing and packaging.

    And yes, I agree with seele. Usability/interface design is not only a role/area of contribution, but a much needed one at that.

    ReplyDelete
  3. Seele,

    Thanks for your input! I was hoping that people would mention other roles that I left out. I think I would consider interface design a sub-role of the developers. Still, it is an important topic, so thanks for bringing it up.

    ReplyDelete
  4. => I'd like to more to contribute to production applications that are run on top of the operating system (=Ubuntu, etc.). They are the reason why I switch the PC on.
    To my opinion a OS need just to work reliably and nearly silently in the background while I do my work. A cutting edge gui should be there to support the user and not to entertain.

    Therefore, a user has also the role of bug reporter! Which is still difficult. The people reponsible for bugs don not always understand why wor what I report since they are very inside the system and I tell them the users point of view. Something might be proven by various tests to work but still be unusable:
    e.g:
    1) the unreliable behaviour of suspend/hibernation since the upgrade to Feisty
    2) why do I need to type in my password twice when I log in as a different user and then change back to the orignial user?

    These are rather unmeasurable defects. But these can annoy many users that don't have a "open source" patience for software yet to mature. Where do I post them?

    P.S.: Why do you not put this to a wiki on ubuntu. It would be a better complementary for the "naked" participate page (http://www.ubuntu.com/community/participate)

    ReplyDelete
  5. [same Anonymous say further...]
    I've discovered https://wiki.ubuntu.com/IdeaPool from your post.

    The page is a nice idea. But the page looks very cluttered and takes time to read and contribute. a wiki like mediawiki for instance would facilitate to edit sections. we have Web2.0 techs available which would make it possible to organize this in tables.
    So I suggest that the idea page could be moved to launchpad and added like https://launchpad.net/ubuntu/+specs
    => the ideas can be tracked and interlinked with bugs and specs etc.

    I will not contribute to that page simply because a wiki is not for discussions.

    ReplyDelete
  6. I think it's somewhat ironic given the title of your post that neither of the examples in 10) Infrastructure providers are open source.

    ReplyDelete
  7. Another very important contributer is the support provider. Those of us who roam *nix & FOSS forums to help those who are trying to get things to work on their platform.
    FOSS is good, but if you can't figure out how to fix the problems you will inevitably run in to then one is likely to switch back to a paid program with paid support.

    ReplyDelete
  8. Agreed that support providers are important, but it's equally true for proprietary stuff too. When was the last time you actually got quality paid support from a proprietary vendor?

    ReplyDelete
  9. Very informative. Could I translate this blog into Thai?

    ReplyDelete
  10. "I think I would consider interface design a sub-role of the developers."

    That is a recurring problem in open source communities. If interaction designers weren't so often expected to be developers too, more of them would take part, and the software's usability would improve.

    The same applies to other roles in volunteer software projects, albeit to a lesser extent. For example:
    * If translating the software requires using a version control system, that reduces the number of willing translators.
    * Project leaders must be good developers themselves, so anyone who might be an excellent manager but who is not a developer is excluded.
    * Those who are not developers often have no say in marketing decisions. This reduces the pool of marketing skill available, which in turn leads to spectacularly bad naming decisions (e.g. "Gimp", "Gnome", and most of the KDE programs that start with "K").

    Some roles are carried out not even by developers, but by no-one at all. For example, projects rarely have usability testers (those who run tests to find usability problems, as opposed to the interaction designers who design solutions to those problems). Nor do they usually have QA engineers, those who write and maintain test suites (these exist for low-level software such as programming languages and VCSes, but rarely for GUI software). Over the next decade I hope we'll see Free Software projects expand to include those roles.

    ReplyDelete
  11. MK - Yes, of course you can translate my blog into Thai! I am flattered.

    ReplyDelete

Post a Comment

Popular posts from this blog

Using the Cisco console in Linux

What it takes to make Ubuntu ready for use

Five ways to use Windows apps in Linux