Is Open Source Necessary To Become A Good Developer?
Every now and then, while scrolling through my Twitter feed, I come across a random little thread on why open source is good and why everyone should contribute. As someone who works full-time at an open-source company, I love that more and more people are helping others get involved in open source. And yes, open source is a wonderful space for folks to collaborate and build and learn, essentially to become better developers. I talked about this a little while back in a blog on Appwrite’s Dev.to blog.
However, this trend has grown to a point where I have observed people looking down on others for not choosing to focus on open source. This, in my honest opinion, is absolutely crazy! Therefore, in this issue, I will talk about whether it is necessary for someone to work in open source to grow as a developer or not.
Disclaimer: The issue of the newsletter is at no point meant to imply the open source is bad. It only intends to showcase the other side of the coin. Also, this issue is more focused on voluntary open-source contributions, rather than working at an open-source company.
Thoughts From Our Community 👨👩👧👦
Before expressing my opinions, I wanted to understand what our peers from the community thought about this problem as well.
There were some really interesting perspectives I came across in this process.
Darshan mentioned a great point about how open source enables contributors to get feedback:
Jay brought up some wonderful benefits of how contributing to open source exposes folks to real-world scenarios beyond your individual side projects:
Both of these were, however, heavily focused on how open source is beneficial. Nirupama’s point is what hit home for me:
This experiment led me to believe that while a lot of us understand why it’s great to contribute to open source, not many understand whether it’s just good to do or really necessary.
My Story Working On A Closed-Source Product 💭
At the end of my junior year, I spent some time working as a Junior Software Developer Intern at a tech consultancy called Techdome Solutions. I spent about 8 weeks from May to June of 2021 working as a Backend Developer, working with .NET 5 and SQL Server, building APIs and serverless functions to help build out the internal ticket management tool for a ticket broker in the USA. These 8 weeks were (in all honesty) some of the hardest, toilsome, insightful, and educational weeks of my career. I got to work with and learn about various technical areas such as role-based authentication, database design and ORM tooling, software design and design patterns like dependency injection and the repository pattern, asynchronous programming, and more.
For some of the more experienced subscribers here, these might sound like standard tools of the trade. At the time, however, I was at an inflection point in my journey, a point where I decided whether I would continue learning software development or not. This experience is what kept me around code again. And this is because it allowed me to get the necessary mentorship and education, and support system I needed. It was a small team, but a motivated one with experienced leadership. Of course, this is extremely subjective and will vary extensively across teams and organizations. Still, I did not start my journey through open source and here I am, working at an open-source company today. My experience did not hold me back, it only bettered me beyond my expectations, and for that, I have a lot of gratitude for two people, Gourav Chauhan and Rahul Joshi.
Areas Where Closed-Source Companies Do Well 📈
On that note, there are some benefits that I did find to be consistent across a wide range of organizations from whom I have met people. Here they are:
Guarantee of Tangible Compensation
As impactful as open-source work is, most open-source contributors, unfortunately, do not receive the fair compensation they deserve. While this is not a dealbreaker for everyone, it’s necessary to recognize that being able to work hard and invest your time in a project without expecting a tangible return can be a consequence of privilege. And this isn’t a privilege everyone carries or can afford. One guarantee of working with a closed-source company is that you will receive pre-committed compensation, monetary and otherwise.
Considering that most open-source contributors are doing so aside from their regular lives, it can be difficult for newcomers to seek dedicated mentorship from experienced contributors and maintainers. Most major projects have built and grown their communities and improved their documentation to solve such friction points; however, individual time can still be minimal. One major pro of closed-source organizations is that it is much easier to get focus time with an allocated mentor/lead and learn from individual perspectives and experiences.
Access to Proprietary Quality-of-Life Tooling
One major perk that I have observed is that closed-source companies are often more willing to invest in tooling that assists quality-of-life, whether that’s for communication, metricization, support, etc., just because their business models often allow them more leeway for expenditure. Major open-source organizations and foundations like the CNCF, Linux Foundation, .NET Foundation, etc., can achieve this (due to the substantial corporate sponsorship). However, most projects outside of these cannot due to the substantial lack of financial resources.
Protection of IP
Even with the presence of open-source licenses, many open-source projects, unfortunately, suffer from theft of Intellectual Property (or IP). This commonly happens due to a lack of understanding of licensing and usage rights around open-source projects. While legal safeguards around closed-source products decrease transparency (which is an understandable turnoff), they can protect the product (and the work behind it) a lot better and ensure that the work done achieves its intended goals.
Appreciation for Contribution
As wonderful as open source is, contributing to OSS can often be a thankless job. A lot of you may have come across this meme from XKCD:
Far too many open-source contributors and maintainers are burdened with demands and expectations without any offer of support. Once again, anyone who can sustain without the support carries some amount of privilege, which not everyone can afford. One thing that closed-source companies tend to do well is creating reward and growth systems based on active and consistent contributions.
Open-source companies like Appwrite, Novu, Amplication, etc., tend to be the exception to this rule. However, this is a rather limited group of organizations, and can only offer opportunities to a small group of people.
Should I Even Care About Open Source? 🤔
The simple answer to this question? Absolutely YES!
There is absolutely no denying that contributing to open source is a wonderful thing to do and will allow you to give back to the larger developer community substantially. Open source isn’t just an alternative way of building software; it’s making the tech space healthier, safer, and better for all of us, and here are a few reasons why:
Higher transparency due to the openness
Public vetting of software, enabling more feedback and criticism
Better security due to public feedback mechanism
Availability of community support
Equitable empowerment of individuals and organizations
I have explained more about how open source has made tech better, how it enables us to become better developers, and how you can contribute to open-source projects (aside from code) in the blog below:
The Road Moving Forward 🛣️
Once again, one thing I will repeat is that there is nothing wrong with contributing to open source. It is one of the healthier spaces to work in, in tech. However, when we talk about growing as a developer, let’s remember that open source is one way, not the only way.
I remember when I start my developer journey, I had quite a struggle. This was a journey of firsts, mistakes, and lots of scoldings for me. However, it turned out to be a journey of even more learning and (eventually) wins. Closed-source organizations are not perfect. They have their quirks and issues. However, it does a lot of things well, and it’s necessary to appreciate them and let them have their day.
When it comes down to choosing whether to work more for an open-source or closed-source, no matter what the world might want to tell you, you should evaluate your preference based on your circumstances and necessities. And, if you have the liberty to do so, choose both. Whatever decision you make, as long as it prioritizes you over the world’s expectations, you will be just fine :)