Maintaining an open source project – even a small one – is not an easy task. The open source ecosystem is about sharing and contributing, about giving and receiving. You scratch my back and I will scratch yours.
Open-source is not only a free and open software, it’s a lifestyle. Working with open-source is working for free, making the other’s life better. It’s like someone that works helping people through an NGO (Non-Governmental Organization). They do the better expecting nothing back.
According to the Oxford Dictionary open-source is “Denoting software for which the original source code is made freely available and may be redistributed and modified”. Pay attention to these two words: redistributed and modified. This means that you can change the original code, can update it to your needs, and can share it back to the community. Remember this.
Behind any open-source project, there’s at least one person dedicating time to build something for you, and for free. This means that that person (or people) could be working on some profitable project, but no, they’re investing time to something to help your life.
What open-source project are you using at the moment? Think of everyone that’s investing time to build that, to fix bugs, to improve features, making your life easier. You’re actually using something that you would pay much money for that, but for free. And the question is: are you helping them? Are you giving something back?
Open-source is not only using something for free, it’s about community, it’s about sharing. It’s about giving back something to the community that helped you during all this time, that helped you to make money with their efforts. It’s not just about using something for free, you have a social responsibility for giving something back.
A big part of you – reading this blog post – has never contributed to an open-source project. Maybe you are currently consuming a lot of open-source projects, but never contributed to them, never fixed a bug and send it back, but maybe you already fixed that bug for yourself. Why didn’t you share that yet?
Some weeks ago Fabien Potencier (Symfony creator) tweeted this:
Some time ago he announced that Silex would be abandoned. Then, he got this message: “This is unbelievable. You guys have no clue what professional software development is like. We’ve base so many projects on Silex and the customer spent so much money on them. And now I have to tell them they need to spend ten thousands of dollars just because we need to migrate to a new PHP framework? What are you thinking? This is totally irresponsible. Why are you only supporting it for 6 months? You should at least offer bugfixes for 3 years. I don’t think any enterprise developers will trust you guys anymore.”
Hey, wait! We’re talking about open-source! It’s free, right? It’s open, and you can – and should – keep everything working fine because you do have access to the source code, don’t you?
Please, stop thinking that open-source contributors should create features for you. Stop thinking that when you open a GitHub issue asking for a feature the developer should answer you back quickly or even do what you’re asking for. Implement that yourself and send a pull request dude, this is open-source! This is how you send back all what you already had from the community.
This following image says for itself.
Instead of complaining about features or bugfixes, do it yourself, and show your gratitude for people that spent their free time working on something to help your life. They could be with their family but no, they were doing open-source. And you should thank them for that.
How many times you said “thank you” to someone that has fixed a bug on a project? How many times you said “thank you” to the project maintainer, and said how important that project is for you? Don’t be shine. Ping people on Twitter, but expecting no answer. Maybe you could buy them a bear of a coffee, there are many ways to say your gratitude, believe me.
You have no idea how difficult is to maintain an open-source project. I maintain Corcel PHP, a very small package I have been developed for the last years and I have to admit, it’s not easy to review all PRs, to read and answer all issues. That involves time, that involves much more than opening GitHub and starting answering people. That’s about responsibility, about commitment.
So, if you want to give back to the community do that the right way. Does the project you’re contributing to follow some code style convention? Please, follow them, write unit tests to make sure that new feature you’re introducing will not break any other written code. Please, do a good job, like they have been done during all this time, for you.
If you are an open-source consumer, you should be giving something back. Maybe you can help with translation, maybe with code, maybe you could answer some issue, maybe you could review a PR from someone. I can list here many possibilities of contribution you could give, but please, do something.
I understand that you work hard and maybe there’s no time to invest in open-source, but remember the fact that those people behind those projects are helping you for free. Say thank you, find something to help with. If you can answer an issue very fast, do that. This way you would be helping the maintainer and giving something back to the community.
I have no words to say thank you to all contributors Corcel has. We’re a very small team, but I’m very grateful to everyone that helped me during all this time. Sometimes I’m trying to find time to answer some opened issues on GitHub and suddenly I receive a message that someone else already answered that. My eternal thank you!
Open-source is much more than an opened source code. There’s a philosophy behind everything, and you should keep things moving contributing, giving back what you got. Think that open-source is not only good for the project, but for your career as well. Start sharing what you can, what you know.
It’s like the phrase: “You scratch my back and I will scratch yours”. Think about that.