Describe TypesOfContribution here.
INTRO You don't need to be a software developer to participate in an open source project. You can contribute in many different ways, including: [
NEED TO FLESH OUT]
1. User experience
Open source project teams are always keen to know more about how users engage with their outputs and how they would like them to look. This feedback is vital to the life of the project. Without it, the project cannot improve its usability, and usability is a key element that makes the project stand out among its competitors. Users may feel cautious about making requests or providing constructive criticism for fear of seeming impolite or ungrateful. But they should be encouraged in every possible way to send along their ideas and suggestions in the form of discussions on user mailing lists and feature requests added to the issue tracker. At the same time, they should be made aware that, while not all feature requests will be implemented, every comment will be carefully considered and feedback will be provided on how important that request is perceived to be.
2. Support
An individual with even a small amount of experience with the project can support those without any experience. Helping people get started is critical to the medium- to long-term success of the project, since some of these newcomers will become engaged with the ongoing development and support of the project. Therefore, the quickest, easiest and most significant way to give back to a project in the early stages of your involvement is to answer newcomers' questions. Often, such questions are best answered by those who have themselves recently experienced the same issues.
As you gain experience, you can ask and subsequently answer more complex questions. If you provide support to others, it is more likely that you will in turn be supported as the complexity of your own requests grows. In this way, providing support to other users is beneficial to both the project and your own use of the project.
3. Evangelising and marketing
The lifeblood of any open source project is its users: more users means more opportunities for success. Feedback from users on what they want helps to ensure that the product is of increasingly good quality. So it is vital that the project attracts users on an ongoing basis. 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 will ensure that a flow of users, and thus potential contributors, is maintained.
4. Software design and implementation
In a software development project, programming is often thought of as the most important form of contribution. While it is obviously critical, a good design and a useful feature set are also vital. All significant code contributions should be discussed on the developer mailing list before implementation. This allows the project to ensure that the design is appropriate and the user experience is not adversely affected. Smaller contributions, such as bug fixes, can be provided as patches on the issue tracker without discussion.
5. Quality assurance
Quality assurance (QA) is one of the most important elements of any project. It is also something almost anyone can contribute to. Users can help by testing release candidates before they are formally released; programmers can help by fixing bugs identified in the issue tracker.
Another important element of quality assurance is keeping people informed of activity on issues in the issue tracker. For example, each new issue should be examined and commented on, and duplicates should be marked as such and workarounds highlighted.
6. Graphics and art
Users with graphics or art skills can make a valuable contribution by creating icons, logos, banners, labels and other artwork. These will be seen every day and used throughout the project and its products. Users with such skills should be encouraged to join the developer mailing list and submit their artwork proposals via the list.
7. Writing
Documentation is critical to new users. One of the best ways to contribute to the project is by documenting your own experiences in the form of tutorials, guides, HOW TOs or FAQs. They 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 ask supplementary questions and, once they understand, can themselves help to pad out the details.
Some of the kinds of documentation that can be contributed to a project are described below.
7.1. User FAQs
User FAQs (frequently asked questions) are an excellent place to start contributing to a project. You could also contribute by supplying patches. Non-technical people can simply post a note in the issue tracker with a proposed FAQ entry.
7.2. HOW-TOs and tutorials
These are short, self-contained documents, and generally a great place to start for both users and contributors. If you enjoy a particular feature, documenting it for others is an extremely welcome contribution.
7.3. User guide
Writing a comprehensive user guide for the project is a hard job that requires a lot of time and effort. Additions, clarifications and corrections to the documentation from users are very much appreciated. To do this, you can draw on the user mailing list archives, which contain a lot of material that can be easily converted into paragraphs. The community is always willing to help documentation authors.
7.4. Developer guide
To contribute to the developer guide, one needs some technical expertise. If you have such expertise, this is a great place to start gaining an understanding of how to develop with or for the project. Existing documentation can always be improved, or new content can be written. You can find plenty of useful material in the developer mailing list archives, and the developers themselves are usually happy to help documentation authors.
8. Language communities
The default language for this project is UK English, which may not be helpful to users in other regions of the world. Committed users can make a huge difference by translating the project into other languages. These users should be encouraged to join the developer mailing list to find out how to share their translation work.
9. Monetary donations and developer support
For an open development project, money is less important than active contribution. However, some people or organisations are cash rich and time poor. Providing a secure, popular, easy-to-use mechanism for accepting donations will allow various categories of sponsors to express their appreciation for the project as a whole. At the same time, some users may find that a particular developer, or group of developers, have been especially helpful, and they may want to send them some kind of reward. A voucher for an online store usually goes down well and is easy to provide. This should be done privately rather than through the public lists.
If someone wants to make a significant donation, they can sponsor a developer to implement some new feature or fix some bugs. After joining the developer mailing list, they can be pointed in the direction of an independent third party, who will help find the right developer and handle cash transactions.
[NEED A CONCLUSION]

