The open-source contributors live in basements, they avoid the sun and are afraid to talk to people. And when they speak, they are opinionated and are far from being conciliatory. Well, if that was true, open source would have died a long time ago. The story I want to share shows how open-source communities are far from this stereotype. It began 9 months ago when I had started to work on Apache Airflow more than full-time. During this time, I’ve learned a lot, and here are the lessons.
Community over code
Those familiar with Apache Software Foundation probably know the slogan. For those who see it for the first time, the meaning of it is simple: OSS projects exist because of people. The majority of those people — called contributors — write code, that’s true. But the code is a mere side effect of long discussions, architecture decisions, and improving your software for the others. And that requires more than engineering skills. You’ve got to be able to work with people whose opinions can be totally different than yours. This requires open-mindedness, patience, and most importantly ability to accept that you can be wrong. If this sounds like a regular job where you build apps for customers, I will explain the difference.
You, your customer, and the others
The main difference is simple: this is an open project. Anyone can contribute, start a discussion about a new feature or criticize the current approach. This means that yours and your customer’s plans often get turned upside down. For example, you decided to work on MagicFeatureX in Q3 but someone wants to do this now! What do you do? Do you block the work? Do you ask the person to stop working on it? No, you offer your help and guidance. Because of it, the MagicFeatureX will be implemented faster and in a way that is agreed by a community. There’s no place for competition within the project; only cooperation moves us forward. So you have to accept that there are more parties engaged in the project. You are not building the project, you are taking part in a process that is bigger than the average software house initiative.
Open-source projects are like warships. They can reach every continent but someone has to cover the construction costs. That was something new for me because I thought that open-source projects are driven by those basement living developers who spend their whole free time on coding for free. The truth is that the majority of contributors are paid by companies. Either they are allowed to spend some time on OSS or, like in Polidea, they do it full-time. Or, they open-source their internal projects as Google did with Kubernetes and Airbnb with Apache Airflow. Luckily, there’s plenty of those who are willing to develop OSS projects in their free time. And once you start, it’s hard to stop.
Transcending company boundaries
Why is it hard to stop contributing? For me, the reason is the feeling of some kind of transcendence. At work, I focus on what is important to our customers, and, at the same time, try to keep in mind the best interest of our community. But once my work is done I am free to work on other things that I would love to improve in projects I’m involved in. This way, I can meet new people, face new challenges or learn new things. And for me, it’s a better way of learning than doing side projects that will be abandoned next month. For example, I was eager to learn GO so I contributed to KEDA and that’s how I started my go-Kubernetes journey which I hope to continue by improving the Airflow Kubernetes operator.
Growing with the community
Being an active contributor to Apache Airflow (and a committer since December 2019) has allowed me to become a better developer. I’ve solved a lot of interesting problems and done some boring work too. But most importantly, I’ve learned to work in an asynchronous mode with people from around the world with different backgrounds, skills, and purposes. Open source teaches us that we can learn from each other.
I believe young developers should be encouraged to engage in open source — either during studies (contributing could be more interesting than uni projects) or at work by allowing them to spend some time on OSS (new projects or those your company uses). That’s why together with fellow contributors and Polideans Jarek and Kamil, we decided to launch the Apache Local Community in Warsaw. This way we hope to share lessons we’ve learned with the bigger community.
If you have any questions regarding the Airflow project or have your own OSS project in mind, let meknow.
This blog post was originally published at https://www.polidea.com/blog/