I often find myself talking to people who use Drupal on a daily basis and want to contribute to the project, but don't know how. As obvious as the options might be to established community members, those who have yet to get involved often have a hard time figuring out where their contributions might fit. Individuals and companies alike find themselves paralyzed in the face of the "right way" to jump in, saying, "We've been really busy," "I don't know where to start," or "We're not advanced enough to give back,"
It's no secret that Drupal's continued success depends heavily on all of our contributions, and when it comes to giving back, as they say, every little bit helps. The challenge is finding somewhere your skills and interests fit, and figuring out how to apply them. When you do, you'll learn a lot and earn some Drupal karma that might come in handy down the road.
The following are some concrete suggestions for anyone feeling uncertain or nervous about how (and how much) to contribute.
Tight on time?
Review issues and patches: Look for issues marked "Needs Review" and find an issue you think you can give input on. Review the text, patch, or suggested change, and report back or update the status. If you can't find something to work on, log onto IRC in the #drupal-contribute channel and say something like, "Hi, I'm new to this but I've got about 30mins and would like to review some patches, any takers?" It's likely that someone will be happy to do a little coaching in return for a review. You'll get to know the maintainers, get some in-depth familiarity with the functionality, and help them complete their in-progress work.
Improve documentation: Seek out the documentation for a module or some configuration options that you know well, or enjoy working with, and find some content that needs updating. If you're unsure about the changes, file an issue in the Documentation queue so other members of the Documentation Team can review. If you have a specific suggestion, be sure to include it. And don't forget to check back on your issue, in case there are replies!
Donate, sponsor an event, or become a Drupal Association (DA) member: Individual or Organizational DA Membership offers benefits both to you and to the community: listings in the Directory of members and the Annual Report, notifications for DA-run events and programs, and a snazzy DA Member badge to adorn your site. The proceeds support the Drupal.org infrastructure, DrupalCons and Camps worldwide, and fund major initiatives, such as the Drupal.org Redesign and Git Migration. You can also sponsor a Drupal event directly; DrupalCon or your local DrupalCamp will certainly appreciate the help and put it to good use.
Don't know where to start?
It can be pretty daunting the first time you contribute, especially if you don't have friends or colleagues who are already involved. The best way to start is... well, start!
Read about how to contribute on Drupal.org and ask around! There is a lot of information on Drupal.org in the "Getting Involved Guide", and there's certainly a niche for everyone. Read through the guide, sign onto the Drupal channels on IRC, and go to your local user group meetups. Don't be shy—ask others what they're working on and where you might fit in.
Have a specific skill or interest?
It's important to find an area where you can be effective and also challenge yourself, so that you stay interested and learn something new. Aside from reviewing issues and writing documentation, there are many niches that might suit your skills:
Discuss: Participate in discussions about functionality, ideas, and plans in the issue queues and on http://groups.drupal.org/ (which has both working groups and location-based user groups).
Code: Write some code! Clean up a custom module you created for a project at work and contribute it back to the community, or find some functionality you think you can improve and post it for the maintainer(s).
Support: There is always someone who can learn from you. Sign onto the #drupal-support channel on IRC or go to the Drupal.org Forums and find someone who needs help with something you've got experience with. It might seem like a very small contribution to you, but to them it will mean a lot!
Review full project applications: Since Drupal.org moved from CVS to Git for version control, developer sandbox projects must go through an application review to become official contributed projects. Help get them approved by reviewing them and providing feedback on coding best practices and standards, security, and checking that their project doesn't directly duplicate any existing ones.
Translate: Drupal is available in more languages than you'd imagine, and it's all thanks to the translation teams. Help translate and improve the translations of Drupal core and your favorite contributed projects on http://localize.drupal.org/!
Organize: Help organize a DrupalCamp, local Drupal User Group (DUG) meetup, a code or documentation sprint, or even DrupalCon! These events wouldn't happen without the help of many energetic and organized people who lend their time and skills. If you're a project manager, you can help organize a particular initiative or help a module maintainer with their issue queue.
Mentor: There are many mentorship opportunities in the Drupal community. Lending support to less-experienced contributors, giving in-depth code and project reviews, and formally mentoring Google Summer of Code students are all great ways to help the community grow.
Think you're not experienced enough?
Bollocks! Rubbish! Nonsense! Balderdash!
There really is a place for everyone to help. All you need is the desire to contribute and the commitment to find your niche and learn the ropes.
The Drupal community is a friendly and supportive group of folks who are all working towards a common purpose. Getting involved will have fringe benefits, the likes of which you might not even be aware of: job offers, help when you get stuck, new friends, new knowledge and skills, contract referrals, and getting your voice heard on decisions, to name a few. Many other opportunities will present themselves once you start to get involved. This is what you might hear referred to as the elusive "Drupal karma"; you get out what you put in.
It doesn't matter what your level is, how much time you have, or what your interests and skills are. Look for where you can help out, and the possibilities will present themselves. Dive in!
Design and Theming: Drupal wouldn't be nearly as user-friendly or good lookin' without all the fantastic themes that have been created for use with it. Designers and the themers who implement their designs are a critical part of the community. You can help out by improving an existing base theme, contributing designs and themes you've created, and working with usability, accessibility, and other teams to keep improving on the existing themes.
Maintain the infrastructure: Drupal.org and its subdomains are maintained by volunteers, with the backing of the DA. Supporting the constantly growing code base and community is a big job, and is vital to the very existence of the project. Help improve and maintain the sites and the infrastructure that supports them, and you'll be helping every Drupal user.