One of the Core Values at Four Kitchens that has always been rock solid is the concept of “Giving Back.” We have always prioritized the well being of our communities by volunteering our time, energy, and expertise to not only contribute code changes, but to also openly help others and what we see as the greater good.
This applies to open source projects, and while I’ll talk about ways we make this happen in the development space, it’s important to note that open source is not just development.
Here are some of the important tidbits that our engineering department finds helpful in building and maintaining the value of “Give Back.”
Giving back should be part of the architecture
It’s all too easy to get into the rut of thinking that any site built by an agency must be customized and built to the specific needs of that particular client. Given that, it’s important for someone on the team to evangelize and be familiar with all the various projects in open source software within your domain.
What makes ours a culture of “Giving Back” is how we plan for those customizations with the community at large in mind. We approach every build with the intention to create issues in the issue queues for those projects, contribute pull requests and patches, and further document the project to help with a feature that was once “custom.” Keep in mind, that doing this is not doing someone else’s work for them. This will ensure that you have time and a plan to give back.
Make exclusive time for giving back
One of the biggest blockers to contributing to open source projects is the time required to actually do the work. This is particularly true if you don’t have a plan or know where you want to contribute. However, once this is a part of the culture, you will find it’s hard to stop people from making time to contribute back—especially if an engineer has found something they are passionate about.
For both reasons, it’s important to set aside time to make improvements to open source projects. This can be a pointed two hours in the week or at a specific time in the month when work is typically slow. My team sets aside two to four hours a month. Toward the end or at the beginning of the month has shown the best success since we have retainer-based work. Make sure the event is on the calendar, and make sure that your team feels like this time is protected. The company as a whole should be aware that we support this value. Emphasize that this time is not “free time,” but encourage the team members to pursue items in the community that they find interesting.
You may think two to four hours isn’t a lot, and you might be right if other aspects of your culture do not lend themselves to contributing to open source projects, so feel free to test different levels of commitment. This is one of the many ways to set people up for success.
Have a champion or mentor to help organize and teach
Not everyone has contributed to open source before. That’s OK! But it is important to have at least one person on staff that is willing to contribute and be passionate about it. As long as one person can champion, it keeps a value top of mind for others. The point is to make more people passionate about it!
Empower your open source champion to identify opportunities and dole out work to those who don’t enjoy finding something to do with this time. Additionally, provide education to those who have never contributed before. Drupal, Angular, and WordPress all have documentation and support groups that point out how to contribute.
After a while, people will get in the groove, but for those new to the company, there is always mentoring to be done. It’s the initial lift that always looks the most daunting. Additionally, some people need encouragement and help to find the right tasks. Keep a list of tasks, or a workflow on how to find tasks, that you can share with others. The point is to teach your team members how to fish as much as it is about the act of fishing.
While giving back can take many forms outside of development, coding and all the activities that come with it are an important part of the open source community. Remember to plan for opportunities to contribute back in your projects, make time outside of projects to contribute back, and have someone on staff that takes pride in organizing and teaching others to give back. These three things allow any organization to grow a culture of “Giving Back” within their engineering department.