Imagine if every single product your company generates is open source. Each line of code, blueprint, and theory maintained in version-controlled collaboration software such as Git, hosted on platforms like GitHub.
Your team works transparently, brainstorming and troubleshooting in the public arena. Outsiders join the discussion, raise issues, share ideas and feedback. Numerous successful companies have been built around open source ecosystems that behave this way. But I contend this is merely an early step in the multi-layered abstraction of software development and the construct of software companies themselves.
Present-day software construction relies heavily on hundreds, if not thousands, of open-source dependencies and abstractions crafted by open-source developers. These developers create and maintain chunks of code and libraries that other developers can conveniently incorporate into their projects. Whole ecosystems revolve around this principle. In fact, 78% of companies utilize open-source software and 96.3% of the top 1 million web servers operate on Linux, an ideal open-source operating system for servers. Many companies even sponsor open-source developers as a token of gratitude for their contributions.
The internet reserves a special corner for top open-source creators. This intriguing social paradigm is worth exploring and may even hint at future developments.
A fully open-source company presents many appealing aspects. It impacts various elements such as security, brand, efficiency, corporate culture, and revenue generation. The balancing act between pros and cons is debatable. However, the unique features of open source make an interesting case study, especially when examined at the extreme ends.
At one end, companies may choose to open source only certain components of their product, akin to Facebook's JavaScript library for building user interfaces, React. This was used to construct the all too familiar news feed. At the mid-range, companies like Ghost construct an entirely open-source product with an in-house team and successfully monetize it as a service. Despite the fact that any competitor could theoretically replicate and use it, duplicating the brand isn't easy. At the other end of the spectrum, you have blockchain-based products like Ethereum, which allow anyone to contribute and be rewarded for valuable work. It represents a kind of ecosystem that blurs the lines between a distributed company and an open-source project with numerous contributors.
The immediate ramification of open sourcing is that your work is available for anyone to scrutinize. You need to strive for perfection before publishing your work as it demands a higher level of responsibility and meticulousness, knowing someone could dissect it with good or bad intent.
For the publishers, it's essential to establish standards for what's considered acceptable. Having observed behind-the-scenes operations of several startups and even large corporations, these standards can vary significantly. Programs like Hacker One offer rewards to ethical hackers for disclosing security vulnerabilities in software. Now imagine such scrutiny with your code in the public domain; a community of hackers could analyze your software, receive rewards for it, and even propose improvements. Other developers could enhance your system or even create entirely new features that can be incorporated with a single click.
In my view, open source's most significant asset is the shift it brings to the values of your company.
Suddenly, you have a community to oversee. This necessitates thorough documentation, which is a positive in itself. Branding would have a far-reaching impact on the company's success.
If another entity could have a working copy of your software, your brand identity becomes the differentiator. Companies like Ghost thrive on a mission. They're constructing technology for the future of journalism. When you pay for their service, you're endorsing their mission and their brand. Your competitive edge transitions towards branding, which extends beyond the product you're developing.
I genuinely believe this shift could greatly benefit the people who work for these companies, as well as their users. Employees and contributors feel part of something bigger, more connected with their community, and users participate in this mission in a sense. It's comparable to purchasing organic goods.
While all of this is commendable, I don't believe it's the right time for every software company to go open source. Unless you construct it as such from the beginning, the challenges of open sourcing all your code are evident to anyone building a company. However, with time and the right strategy, it's achievable if that's what you want to do.