Before open-source, software development happened behind closed doors. After a piece of software was created, it was either bundled up safely inside of some other piece of software (most likely an operating system), or it was packaged up and sold, complete with licenses and restrictions.

The Culture of Open-Source

See a need, fill a need - Bigweld, Robots

The open-source culture is a culture of giving. Someone sees a problem, they decide to take time out of their lives to create something that solves that problem and share it with everyone else. It's amazing really.

Creators and maintainers of open-source software often do this for no other reason than wanting to share their creations, hoping that someone, somewhere, will benefit from them.

Open-source was a breath of fresh air compared to the "old way" of doing software, and for nearly a decade, the culture thrived. However, little by little, over time, something began to happen.

The culture began to change. It began to rot.

What is Nanobox?

A Culture of Entitlement

There are plenty of developers who contribute to the projects they love, however, those who are doing the most complaining are the ones who aren't contributing and, in turn, feel the most entitled.

The problem is actually two-fold. When we take for granted the fact that someone has created something that we use, we're emboldened to speak out if it doesn't work just the way we want. We demand that something is done right away because it's a critical piece of our application and we need it right now.

Human nature is very strange at times. We come to desire something, work very hard to obtain it, then once we have that thing, we almost immediately take it for granted. It's so easy for us to feel entitled to the things we have, forgetting how we got them.

In general, the severity of entitlement has been steadily increasing over the years. Many developers are becoming more and more entitled to the projects they have come to rely on, and showing less and less (if any) gratitude towards the creators and maintainers of those projects.

Consider the following open-source projects:

I use at least half of these daily at work. The other half I used at least once during the course of any given project I'm working on.

This is just a very small sample of the literally millions of open-source projects out there today that people are using (1,871,317 million to be exact).

How many of you have either used in the past or are currently using an open-source project? When was the last time you said to yourself "Wow, X is really awesome", or "I really love Y"? Have any of you ever actually told the project maintainers that?

Feeling gratitude and not expressing it is like wrapping a present and not giving it. - William Arthur Ward

Think now about how often you say something like "I wish X wouldn't...", or "Y would be so great if it only..."? We then march on over to Github and submit an issue without giving it any second thought.

Our tendency to be vocal about issues, especially when we're frustrated, is far greater than our tendency to express appreciation when something works.

So What...

Yea, so what? Open-source creators know what they are getting into. It's great that so many people are using their projects, they are getting so much recognition. Right?

A lot of times open-source creators are putting themselves out there, risking criticism from the community when their projects don't work the way everyone expects they should. This can lead to developer burn out... or worse.

Last year, Tim Wood, the creator of the exceptional moment.js javascript library wrote a heartbreaking article about his experience with his open-source project.

The demand placed on him for his project literally drove him into a deep depression...

Seeing bugs and issues continue to roll in and being mentally unable to address them has led to feelings of failure and depression.

I've never worked on an open-source project of this magnitude, but I've felt that kind of criticism on small internal projects. I can't even imagine what it's like at that scale.

I've even dreaded releasing my own open-source projects because if they get popular, while that would be cool, it turns into a full-time job and the demands are just too great.

I still do it, because I love open-source and want to help other developers, but something has to change.

Not Just Open-Source

This culture of entitlement and ingratitude isn't just isolated to open-source either. It's a widespread problem, it's just easier to see when it's out in the open.

How many of us have seen, or experienced, this internally from our own teams?

You, or someone on your team, work very hard on a project, and when demoing it to the team, the initial response is something like "wow that's cool... does it do X" or "awesome... it would be cool if it did Y".

This isn't to say that feedback is a bad thing because it's not. It's the building block of improvement. It seems, however, that our natural tendency is to gloss over appreciation.

It's not about praise or adulation, it's about appreciation. It wouldn't hurt any of us to be a more grateful, more appreciative, more thankful for the work of others.

Nanobox loves open-source

A Culture of Gratitude

We shouldn't treat life like a zero-sum game. When we help build someone up, we're not weakened in the process. We could all stand to be a little more aware of, and grateful for, what others do for us.

It's so easy to be vocal about the problems we encounter, but how many of us take the time, when something truly works and improves our lives, to reach out and say "thank you".

I would love to see, alongside the issues tab on Github, a complements tab. A reminder, and a place, for people to appreciate the projects they use.

What You Can do About it

I challenge everyone reading this article to go find your favorite open-source project or maintainer, and thank them for all their hard work. Or even better, find a project on Patreon and show some support with a donation.

Whatever you do, find some way to acknowledge the hard work someone did for you rather than take it for granted.

Here, I'll go first.

While there are countless open-source projects that I'm thankful for, I'll start with the one that I happen to be using right now.

I want to thank the creators of Ghost for this truly amazing publishing platform that they have spent countless hours creating so that I can easily create and publish content. Thank you!

Now it's your turn...