Skip to content
Yared Ayalew edited this page Aug 4, 2013 · 2 revisions

You don’t need to be a software developer to contribute to an open source project. The code, documentation and artwork that make up an open source project have all been created, tested, used, discussed and refined by members of the project community. These processes can be broken down into a myriad tasks, requiring different skills, levels of involvement and degrees of technical expertise. These include:

  • Providing feedback
  • Helping new users
  • Recommending the projects to others
  • Testing and reporting or fixing bugs
  • Requesting new features
  • Wringing and updating software
  • Creating artwork
  • Writing or updating documentation
  • Translating

All of these contributions help to keep a project active and strengthen the community. The project team and the broader community will therefore welcome and encourage participation, and attempt to make it as easy as possible for people to get involved.

The following are some of the roles that contributors can fulfil in the different projects within Hack Addis.

##User Experience

Project teams are always keen to know more about how users engage with the project and how they would like it to look and function. This feedback is vital to the life of the project. WIthout it the team would not be able to improve the software’s ability, a key element that could make the project stand out among its competitors.

##User Support

Once you have gained some experience of the project, you can support new users who have no experience. Helping people to get started is critical to the medium to long-term success of the project. This is because some of the newcomers will themselves become contributors and ensure the ongoing development and support of the project. The quickest, easiest and most significant way to provide such support in the early stages of your involvement is to answer newcomers’ questions. These are often best answered by those who have themselves recently experienced the same issues. By answering questions from newcomers, you will also be helping the project by saving developers time.

##Evangelising and Marketing

It goes without saying that the lifeblood of any open source project is its users: more users means more opportunity for success. And feedback from users on what they want help to ensure that the product is of increasingly good quality. As an existing user, you can help the project to do this by telling people about it and encouraging them to try it out. The project may also engage in more active forms of marketing, such as representation at conferences and workshops. By being willing to present the project to others, you can also help to ensure that a flow of users, and thus potential contributors, is maintained.

##Software Design and Implementation

As a software developer, your first step towards contributing code will probably be reporting bugs and submitting fixes. If you are not yet a committer on the project, you would normally make these contributions by submitting a patch on the issue tracker. You might then go on to design new features for the project or redesign or develop current ones. Remember that all significant code contributions should be discussed on the developer mailing list before implementation. This will allow the project team to ensure that the design is appropriate and that user experience will not be adversely affected. Smaller contributions, such as bug fixes, can be submitted as patches on the issue tracker without discussions.

##Quality Assurance

Quality Assurance (QA) is one of the most important elements of any project. As a user, you can help by testing release candidates before they are formally released and reporting any bugs on the issue tracker. You can also run the latest version of the software and report any bugs. Developers can contribute by fixing those bugs, and by helping to manage them until they are fixed. To encourage ongoing contributions, it is vital that the project team keeps users and contributors informed of activity on issues in the issue tracker. For example, they should examine each new issue and comment on it, marking duplicates and highlighting workarounds. They should also discuss potential solutions and close them when work is complete.

##Graphics and Art

If you have graphics or art skills, you can make a valuable contribution by creating icons, logos, wallpapers, banners, labels and other artwork. These will be seen everyday and could potentially be used throughout the project and across all its products. You could also participate by designing websites, designing marketing material or providing illustrations for presentations and guides. You would normally submit this kind of contribution via the relevant mailing list or issue tracker once you have engaged with the project and developed a feel for it.

##Writing

Documentation is critical to new users and something that developers don’t always have time to write or update. One of the best ways in which you, and an existing user, can contribute is by documenting your own experiences of the project. This could be in the form of tutorials, guides, HOW TOs or FAQs. These don’t have to be perfect: in most cases, a skeleton document with bullet-point instructions is better than nothing at all. Those who use the document will probably ask supplementary questions and, once they understand, can help to pad out the details. Most communities are willing to help documentation authors by confirming information, answering questions or providing more detail. Many open source projects maintain a separate community wiki for editing and writing documentation.

  • User FAQs: User FAQs are an excellent place to start contributing to a project. If you’re not technical, you can simply post a note in the issue tracker with a proposed FAQ entry.
  • HOW-TOs and Tutorials: These short, self-contained documents are also a great place to start for both users and contributors. If you are well-versed in a particular feature of a project, documenting it for others would be an extremely welcome contribution. Providing a video screencast, which can be very effective for introductions and HOW-TOs would also be a good way to contribute.
  • User Guides: Writing and maintaining a comprehensive user guide for the project is a difficult job requiring a lot of time and effort. Any additions, clarifications and corrections to the user guide from users would therefore be very much appreciated by the project team.
  • Developer Guide: If the project has a developer guide, the team will almost certainly welcome improvements on new content, but you will need some technical skills to contribute to this kind of documentation. If you have this kind of expertise, it’s a great place to start gaining an understanding of how to develop with or for the project.

##Language Communities

Even if the default language for most open source projects is English it is not the case for Hack Addis. We are trying to implement projects which will need to be localized to a number of languages (Ethiopian local as well as other regional ones such as Swahili), you could make a valuable contribution by translating the project applications and documentation into your own language. Even if you can spare only an hour here or there, your translation work will make a difference.

##Monetary Donations and Developer Support

For an open development project, money is less important than active contribution. However, some people or organizations are cash rich and time poor, and would prefer to make their contribution in the form of cash. If you want to make a significant donation, you may be able to sponsor a developer to implement a new feature or fix some bugs. The project should provide clear guidance on how to go about making a donation.

Clone this wiki locally