| --- |
| title: Non-code contributions |
| tags: ["contributor","non-technical","non-code"] |
| --- |
| |
| While most people think of contributing *code* when they think of open |
| source participation, and most project contribution guides focus on |
| code contributions, there are many other ways to contribute to an open |
| source project. |
| |
| {{% toc %}} |
| |
| # Ways to contribute |
| |
| There are many broad categories of non-code contributions. This list is |
| not comprehensive. Indeed, whatever your passion or expertise, there is |
| probably a place for you to participate in some Apache project, or at |
| the Foundation level. |
| |
| ## Documentation |
| |
| All software needs some level of documentation. And documentation needs |
| writers, as well as readers. If you are a writer, particularly one with |
| an eye for information organization, your contributions will be welcome |
| in almost any project community. |
| |
| There are often easy starter contributions, such as grammatical or |
| spelling improvements. |
| |
| Great value to the project can come from |
| collaborating directly with the software developers to explain features |
| more deeply and create examples and demos. You can work with users to |
| help them describe their use cases. |
| |
| Working with [testers](#testing) to describe their failure scenarios |
| and desired new functionality is a way to accelerate innovation, and |
| help developers understand vague tickets. |
| |
| ## Translation and localization |
| |
| Most documentation of Apache projects is written in English. Providing |
| translation and localization of these documents is a great service to a |
| project, and helps adoption across a broader part of the world. |
| |
| Translation and localization of the user interface helps |
| users have a better experience with the product, and that, in turn, |
| speeds adoption and user feed back, and, thus, further innovation. |
| |
| Start by having a conversation with the project about whether they have |
| a translation/localization process in place. Tell them what language(s) |
| you speak, and, if possible, give some examples of your work. |
| |
| Projects should consult with [Infrastructure](https://infra.apache.org/) |
| about what translation/localization tools are available and recommended. |
| |
| ## Design |
| |
| Programmers usually design their project website, and the user interface |
| of their projects. There are opportunities for anyone with an artistic |
| eye to improve the user experience, both of the product itself, as well |
| as the website, logos, and other imagery around the project |
| ecosystem. |
| |
| Designing banners for conferences, mascots, promotional materials, and |
| blog posts can make a project more engaging and welcoming. If the |
| project does not have a logo, work with the community to suggest |
| possible designs. |
| |
| Helping improve the user interface of a product can result in more users |
| adopting it. Work with [testers](#testing) and |
| users to understand which parts of the product are harder to use or |
| understand. |
| |
| Read through the website, and suggest places where images might make the |
| flow more attractive. Be sure that you use only images that you have an |
| appropriate license to use. For example, you can use images from |
| [photos.apachecon.com](https://photos.apachecon.com/) under a Creative |
| Commons license. |
| |
| ## Event support |
| |
| Many ASF projects host their own events, either specific to one project, |
| or across several related projects. These events often rely on external |
| vendors or conference planners, but there is almost always an |
| opportunity for volunteer support in planning, promoting, and executing |
| these events. This may involve site planning, design and promotion, |
| speaker relations, sponsor acquisition and relations, or University |
| outreach, among many other details. |
| |
| If you have experience running events of any scale, your expertise will |
| be greatly appreciated by these projects. |
| |
| You can see a list of approved upcoming events on the [Apache |
| events](https://events.apache.org/) website, or by searching for |
| `meetup` or `conference` on |
| [lists.apache.org](https://lists.apache.org). |
| |
| ## Community engagement |
| |
| One of our mottos at Apache is "Community Over Code." A strong community |
| produces better software. Strong community is built on trust, respect, |
| and communication. These things don't just happen - they take hard work. |
| |
| An important contribution that almost anyone can make is investing in |
| that community. A community engagement contribution might look like one |
| of the following: |
| |
| * Identify first-time contributors and welcome them. Report (on the |
| mailing list) each month which contributors had their first PR accepted; |
| their first ticket opened; their first review to an open PR. |
| * Contact a new contributor after their second PR and try to understand |
| who they are, why they are contributing, and what their goals are. |
| Offer to review their PRs or introduce them to individuals who can. |
| * Celebrate contribution milestones. Use the GitHub API to determine |
| when contributors make their 10th, or 100th, or 1000th commit. |
| * Be the first to answer user questions on the mailing list, with a |
| friendly voice and helpful pointers. Encourage others to do the same. |
| Quietly, off-list, admonish anyone who responds rudely, and |
| encourage them to either do better, or let someone else answer those |
| questions. |
| |
| Friendly communities grow faster, and retain people longer. |
| |
| ## Vendor engagement |
| |
| Many Apache communities rely on participation from the various vendors |
| that rely on our projects. While we recognize individual contributors |
| rather than their employers, it can be very valuable to do proactive |
| outreach to vendors to encourage them to participate in |
| community-friendly ways. |
| |
| You can help by identifying companies that have products or services |
| that depend on a particular project, and reach out to them to understand |
| their needs, their frustrations, and their goals. Encourage them to |
| participate in the open to achieve those goals, and to talk about what |
| they are working on. |
| |
| Projects should not be expected to care about a company's timelines, |
| customers, or product milestones. But understanding what those are may |
| result in helpful collaboration, either between individual contributors, |
| or between interested companies. |
| |
| Have friendly conversations with the marketing departments from |
| interested companies about appropriate use of trademarks. This avoids |
| unpleasant situations later on, and thus helps avoid a company having a |
| negative interaction with our Trademarks team. |
| |
| Identify a contact inside each participating vendor who is friendly to |
| Apache community norms, and offer to help them make the case for |
| upstream engagement -- sometimes an outsider voice can be more |
| persuasive. |
| |
| Encourage your contacts to submit talks to the project's summit, |
| meetups, or other conferences, about their work in the project. That, in |
| turn, will help individual contributors to raise their profile within |
| their employer, and demonstrate the value of earning trust in open |
| source communities. |
| |
| ## Marketing and promotion |
| |
| Getting the word out about a project is critical to building your |
| project's community. There are many ways to do this, and this is a |
| fantastic way to contribute to a project. |
| |
| Does the project have a social media presence? Offer to help schedule |
| and produce content for those channels. Use those channels to promote |
| releases, features, and volunteer opportunities, as well as to |
| celebrate individual contributor milestones. |
| |
| Conduct interviews with users who have interesting use cases, or vendors |
| who offer interesting services based on the project. Publish these |
| interviews (with [pictures](#design)!) on your project website or blog. |
| |
| Work with Marketing & Publicity to find ways to promote your project. |
| Volunteer to do an interview with [PlusOne](https://plusone.apache.org) |
| and coordinate with the dev list to find the right people to be the |
| voice of your project. |
| |
| ## Testing |
| |
| Your project probably has automated testing of some kind, but nothing |
| beats a human tester. Test, and [vote on](https://www.apache.org/legal/release-policy.html#release-approval), |
| each release candidate, even if your vote isn't binding (i.e., if |
| you're not a PMC member). |
| |
| Download and try out the product, naively following the documentation to |
| ensure that it accurately represents how to get it working. Report your |
| findings in detail - what you tried, what happened, and how it differed |
| from what you expected to happen. |
| |
| Try out documented features, and see if they work how you expect them |
| to. Report your findings. |
| |
| Offer to interview new users to find out their experience - the |
| beginner's first experience with your project's product can be very |
| eyeopening to people who have been using it for years and know how to |
| get around limitations. |
| |
| ## Project management |
| |
| Apache projects are not usually tied to release schedules, |
| feature sprints, and other strict planning that you see in |
| commercial software development efforts. However, there's often value in |
| having someone who tracks what is being worked on, what's next on the |
| roadmap, and what is intended to be in upcoming releases. Having project |
| management skills can be a real benefit to a project that has a diverse |
| set of developers all working on different things. A project manager can |
| coordinate communication to ensure that everyone is aware of priorities, |
| and help avoid conflicts. |
| |
| If you're good at this kind of thing, come [talk with |
| us](https://lists.apache.org/list.html?dev@community.apache.org) and |
| we'll try to help you find a good match with a community seeking those |
| skills. If you're a project that needs this kind of help, let us know! |
| |
| ## Others |
| |
| This is not an exhaustive list. There are other places that you can get |
| involved in a project, or in the Foundation. If you have expertise in |
| [law or trademarks](https://www.apache.org/legal/), |
| [accounting](https://treasurer.apache.org/), or public policy, your |
| expertise is welcome and sought after. Come talk to us about your |
| skills, and how you would like to participate, and we'll try to make |
| introductions. |
| |
| # A word about AI |
| |
| It can be tempting to use AI to analyze some portion of a project, |
| whether that's code or documentation, and then submit patches based on |
| what the AI says. We request that you carefully read the [ASF Generative |
| Tooling Guidance](https://www.apache.org/legal/generative-tooling.html) |
| before doing so. We also request that you remember that whatever the |
| source of your contribution, you are personally responsible for the |
| quality of that submission. |
| |
| Many open source projects receive a huge number of AI-generated |
| contributions, and find that many of them are poor quality, or just |
| wrong. While it may be fine to use gen-ai as a starting place, **do |
| not** simply submit patches without first reviewing them yourself for |
| correctness and quality, as this will likely result in future |
| contributions being rejected, or even in your being blocked from further |
| participation. |
| |
| # Recruiting and encouraging non-code participants |
| |
| Projects should: |
| |
| * Identify non-code contributions that are needed/wanted. |
| * Recognize and celebrate non-code contributors. Committer status is |
| *NOT* just for coders! |
| * Consider giving specific titles to leaders in non-code areas. For |
| example, identify (by name) your documentation team. Identify (by |
| name) your community leadership team. Identify (by name) your social |
| media coordinator. |
| |