One open source developer vs enterprise companies
In this post I like to talk about the advantages which a single open source developer has against enterprise companies to build a better product. At the first look you might think, that it is really unfair since a company has more developers and financial resources, but in this post I try to outline the advantages from my personal experience.
My name is Christoph and I`am working in the open source space for almost two decades. My most successful open source project is Fusio an open source API management platform which helps to create innovative API solutions. I get frequently messages from people who think that behind the project is a large company. In the end I think that Fusio as a product can easily compete with other products build by companies. With this post I also like to encourage other solo open source developers to keep working on their project. So lets dive into the points.
Time
At a company development time is always strictly limited since it is really expensive and in the end a company needs to generate money with the code which was produced through the development time. If a product which was build by a company does not generate money within a time frame the company will go out of business. Of course companies can ask for more venture capital but this extends the time frame mostly for a short period of time and the pressure does not contribute to a better product.
One the other side as an open source developer you are not restricted by this, you can easily work on a project for a really long time period without making any money. This factor has some really great advantages since you can easily plan and develop your project with a much large time span.
Code quality
At a company developers are paid to work at a software, this means most developers are not connected to the software, they implement features which are defined by i.e. a product owner but they mostly don`t really care how well this feature integrates into the complete software, they only want to solve a specific task. This is of course totally fine but I think it is important to understand this. Also at a company there are many other stake holders which can define features, which can lead into a feature creep which decreases the software quality.
On the other side as an open source developer you have a much better sense for code quality. If you work on an open source project for many years you have a much higher connection to the software which in the end produces also much better code quality. This is of course not always true and depends on the level of experience but I would make the claim that it is mostly the case.
Innovation
Like mentioned in the time section, a company has limited time resources and has not the possibility to easily pivot or redesign a product. The company needs to evaluate and think about whether this in the end generates more money. This slows down innovation, large companies are also much more affected by this than smaller startups.
On the other side as an open source developer you can easily pivot your project into any direction where you think it is best. Many developers have probably rewritten many parts of their project without any needs but I think this possibility is a great advantage and provides much more innovation then to keep a large old code base.
Vision
Most companies have developer fluctuation, that means that existing developers quit the job and new developers start. This fact makes it harder for companies to keep a single vision for their product. If a new developer works on a project he mostly does not know the history of specific decisions and starts to move the product into a different direction. While this is maybe not always bad I think mostly you can feel that a product is not build with a single vision behind it.
On the other side as an open source developer you have a much clearer vision about your project. From my view the best structure for an open source project is to have a benevolent dictator which pursues a long term vision for the project.
This concludes the list of points where I think that open source developers have an advantage over companies to build a better product. I hope that this post motivates open source developers to pursue their project since in the long term it might be more successful than other products build by a company.