Traditionally, at least in Western cultures, December is a month of holidays and celebration. Often these festivities involve gifts, whether they are put under the Christmas tree by a white bearded man and his reindeers, delivered in a burlap sack by another white bearded man from Spain or exchanged at a family dinner. But as we hopefully have learned, not all those gifts have to be large, expensive or material to make an impact. Sometimes the most joy can be found in sharing moments with family and loved ones, having dinner together, bringing up old memories and creating new ones. All it requires is accepting their presence and sharing yours.
Also in our PHP and open source communities we put a lot of emphasis on giving or giving back. In December there is 24 Pull Requests, there’s Hacktoberfest in October, and there are hackathons and code sprints throughout the year. This is not without a reason: a lot of open source projects deal with a lack of capacity or (financial) resources for maintenance. However, a focus on giving might also be a barrier for people to enter the ecosystem. For newcomers, the expectation to give back can be paralyzing: What projects do I need to help on? Should I open-source parts of my own code? Do I need to (be willing to) speak at meetups to attend one?
… and accepting what’s given
Maybe it’s better to focus on making full use of what the community has to offer first. Once you accept the things others gave to the community, giving back will often follow naturally.
For example, the next time you need a logger, event dispatcher, dependency injection container or router, please don’t create your own. There are numerous implementations of these available on Packagist. Unless you really have a revolutionary approach, the world probably doesn’t need another one, whether closed or open source. Overcoming NIH syndrome helps the open source community focus efforts on the few implementations that really matter. For a healthy ecosystem, maintenance effort and usage have to be in balance. A well-maintained package that nobody uses is just as bad as a popular package that suffers from a lack of contributions.
Once you start using more components that are already out there, opportunities for giving back will arise spontaneously. If you run into a problem, report an issue. Or sharpen the details on a bug report sent by someone else. Maybe you can try to fix the problem and contribute it as a pull request. If that does not succeed, you might be able to help the maintainer by writing a failing test to reproduce the problem. Perhaps, based on your own needs, you develop a new feature that you can contribute back. Also remember that not all contributions have to be code. If you find something unclear or unexpected when using a package, that might be an excellent opportunity for a documentation improvement. And if some open source project ends up saving you a lot of time, why not thank the author by sending them a postcard or ‘thank you’ tweet, or supporting their work on Patreon?
I experienced this effect myself last week. Just using a package for a few hours led to two opportunities for pull requests that, albeit small, will hopefully save others some time.
But the community has more to offer that you can take advantage of than just code. Go visit a meeting of a PHP User Group near you! Just by being there and talking to fellow developers you give back your knowledge, experience and ideas. Maybe you will get inspired to give a talk yourself sometime, or help out with organizing a next edition. Meet new people at conferences. Read blog posts, listen to podcasts, and realize that you too have experiences that are worth writing and speaking about. All it requires is accepting the presence of others (whether online or offline) and sharing yours.
Yes, the community needs more involvement and contributions. But first and foremost, don’t forget to accept all the great resources people in the community are already giving away to you. If you do so, the opportunities to give something back will come naturally. And remember: no contribution or gift is ever too small to make an impact.
May you give and receive lots of joy this December!