Chen Ravid is a free software enthusiast and serial entrepreneur. He is one of the founding members and chief product officer at xs:code, a monetization platform for open source projects.
I’ve spent the past 12 months working intensely with open source developers. In previous ventures I worked on, my teams and I used open-source libraries, but this was the first time I actually crossed the lines from just another faceless person git cloning some code, to actually meeting the people behind the repository. It’s been (and still is) an enlightening journey.
Strictly speaking, I’m not a developer myself. I can write code, but trust me – you wouldn’t want to read it, let alone run it. I feel more comfortable on the product side. As a product manager and entrepreneur, I worked with a lot of software developers over the years. During that time, I’ve developed a deep appreciation to the trade and its unique craftsmanship. But open source developers, mainly those who start their projects from scratch and the developers that help maintaining them over long periods of time, have always been a mystery to me. Kept being amazed by how those developers created intricate pieces of software, spending countless hours of their spare time, over months and years – solely out of their own volition.
I Can’t think of anything remotely similar happening in other industries, and the past year really caught me off guard. I wasn’t sure what types of people I’d find behind the projects, but let me tell you – it was worth it.
They’re not JUST smart
Developers are smart. They have to be. Writing code is an incredibly complicated task. The sheer brain power required to perform even some of the most basic tasks that from a users’ perspective seem obvious to non-programmers, would blow your mind if you’re not accustomed to it. I always say that working with developers is both extremely rewarding and extremely tough, because you need to deal with the smartest 1% on the planet. As such, they are demanding, and sometimes just trying to keep up with a developer trying to explain some complex concept, would cause my head to spin.
But open source developers have something extra. A lot of software developers spend most of their time working on tasks that are handed down in hierarchy. In many cases the developer has little say about the why. Developers have a lot of leeway on how to perform a task, but rarely do they have the chance to partake in the why they are doing it.
Open source developers not only have the skills to code, but also have the foresight and systematic point of view to decide the what, the how – and most importantly, the why. It might seem trivial, but the why is the most important part of any software project. If the why is week, the entire project might be useless. Open source developers who start projects from scratch, usually have a highly developed sense of why that burns so hard, they just cannot sit back. They have to do it. They have to code. This sense of purpose, of knowing the why, combined with extreme technical prowess and curiosity – is a rare quality possessed by few.
They have more than passion
The burning sensation I just mentioned is something that a lot of us feel sometimes. We all have ideas we’re sure are great, but only a handful are willing to actually grind and put in the time and effort to execute them. It takes an extreme amount of passion to keep an open source project going for years. Only those who have a true passion for solving a problem, can go through the long and tedious process of creating and maintaining a useful, stable, production-grade project.
This problem solving passion is what drives many of the open source developers I’ve spoken to. Both the developers who created the projects, and the developers who help maintain them. It usually starts with an issue they encountered in their day job, that made them wonder “why isn’t there a solution to this problem?”. There is a wide chasm that stretches between “there’s a problem” to “I’ll solve this problem so everyone else can use my solution”, and only a select few cross it. When the problem they started with is solved, it’s their passion that drives them to continue exploring, develop more features and push the envelope further. There’s no boss. No JIRA tasks. No deadlines or clients waiting for builds. It’s pure passion.
They keep going
I was born in Israel. Many call it the Start-up nation, since Israel has the highest ratio of startups per capita in the world outside of silicon valley. I think it has something to do with the entrepreneurial spirit Israelis are instilled with from birth. But along with success stories like Waze, Wix, Fiverr and Mobileye, there are a lot of ‘want-epreneurs’ around. It’s probably not unique to Israel, but as a local I can tell you I’ve met quite a few. People who think they have a great idea and can ‘talk the talk’, but lack the persistence to ‘walk the walk’ and actually put in the work to make it happen. Making a great product takes time. A lot of time. An idea is not enough, you need persistence to push things through.
Open source developers and maintainers have the unique ability to persist working on a project for a long time. No project is perfect at version 0.0.0.1. It takes time, work and discipline to continue working on something and make it actually usable. When I sat with some developers, going over their earliest versions made them laugh. Persistence is what made them go from a few messy functions, to complex projects, used in thousands of commercial applications.
They are the unsung heroes of code
I was going through some early commits with a developer, trying to understand how his project went from about 100 lines of code, to a massive library of Vue components he’s been developing for more than 3 years. Turns out many of the features and components he developed, came from requests some of his early users sent him. He told me that he was so happy others were using his code, he felt obligated to help them out and develop what they had asked for.
Try comparing this to any other profession. Other than volunteers doing charity work, I cannot think of one professional lending his hard earned expertise, and little spare time, to help others working on commercial projects that are none his concern. True, the developer I mentioned was helping fellow developers who were not directly making money off of his code – they were working for the companies who did, but have you seen any lawyers drafting contracts for free for other lawyers who are not sure what to write?
This pure selflessness and capacity to share their knowledge is something I am hoping humanity will find in other places, not just programming. If we could save the world with code, I’m pretty sure open source developers would be leading the way.
They are under-compensated
Open source developers are not in it for the money. Clearly, right now, there isn’t any. They do what they do thanks to the reasons I wrote above. Lucky us! But having interviewed dozens of open source developers, I started seeing cracks in the wall. Overworked, under-appreciated and sometimes even overlooked, open source developers are slowly realizing the harsh reality of under-compensation for their efforts.
Open source became so common, we rarely stop to think about the people behind it. Working in commercial software companies, we use open source components for almost everything. They are truly everywhere. I’ve read that 90% of commercial software developed today has some reliance on open source components or systems. These components became so common, you don’t even think twice before using them.
If you worked on any commercial software and used an open source component – have you ever thought about the countless hours and sleepless nights that person or team had to pull so you’ll have this incredible piece of software that just saved you months of work? True, some of us contribute back, but only a handful actually develop code from scratch for others to use.
If we want open source to keep growing, we need to understand that the good people behind it are not compensated enough. Actually, they are not compensated at all. When a developer takes the time to handle bug fixes, work on new features, support new framework versions and more – without ANY form of compensation, it might not last. I’ve seen numerous open source projects get abandoned by their developers because they just didn’t have the time or resources to continue working on them. Too many bug reports, too much work to continue developing more features, handling security issue, adapting to new technologies coming out. Open source developers never asked for money, but if they don’t get the resources they need to keep developing – we all stand to lose.
Open source is an incredible thing. Sometimes it feels like electricity. We all use it, but rarely think about what would happen if it were gone. The people with the rare traits described above, along with a unique combination of conditions, made open source what it is today. Ubiquitous. Free. Plentiful.
It seems to me the software industry needs to take a long, hard look at open source usage, and start thinking about how we can make sure open source developers have an incentive to maintain their projects, and make sure the next generation of developers will create the next generation of open source projects – for all of us. If we don’t make sure to provide developers with the best conditions to keep going, even the smartest, most passionate, persistent and selfless of them all, would just might stop. Or just make their repositories private.