Imagine this. Everything your company creates is open source. Every line of code, every schematic and every theory held together by version controlled collaboration software like Git, on services like GitHub. Your team works openly, iterating on ideas and discussing problems on a public stage. Strangers contribute, share ideas and build features on the same platform. Transparency taken to an extreme? Not really. There’re plenty of companies built around open source ecosystems and they’re doing really well. But I believe this is just one of the first steps in a multi-level abstraction on software development and software companies themselves.
Most software today are built on top of hundreds, if not thousands of open source dependancies created by open source developers. Developers who create and maintain snippets and libraries of code that other developers drag and drop into their projects. Entire ecosystems exist around this idea. In fact, 78% of companies run open-source software and 96.3% of the top 1 million web servers run on Linux, an open source operating system that's ideal for running servers. Some open source developers are even sponsored by the companies using their work as a thank you for their effort. Top open source creators hold a special place on the internet. It’s an interesting social paradigm to explore, and maybe even hints at a future to come.
A completely open source company has a lot of interesting traits. It’ll have consequences, both good and bad, on security, brand, speed, culture and most importantly (for any company); the way you make money. Whether the benefits outweigh the costs is up for debate. But, I think we can all agree that these so called traits of open source make for a fascinating case study, especially if we look at the extreme ends.
The primarily consequence of open source is that your work is out there for anyone to see. The nitty gritty, the hacky and the pristine, all on display. You would need to work on perfecting your work before you publish it, it forces a higher level of accountability and care for the work you do; because chances are someone out there is going to pick it apart and point out its flaws.
As a CTO or product manager, you’ll need to set some expectations on what passes as acceptable. Having seen first-hand what it’s like under the hood of most startups and even some big companies, this can vary a LOT. There’re programs like Hacker One that reward white-hat hackers for responsibly disclosing security vulnerabilities for most software companies. Now imagine this with your code on public display; a community of hackers can scrutinize your software for you, and get rewarded for it! Other developers can improve parts of your system and get rewarded equally, maybe even go as far as building entirely new features that you can merge in with a single click.
As I see it, the best thing about open source is the way it’ll re-prioritize the things you and your company value. All of a sudden you have a community to manage. That means you need to document well; which in itself is a pro. Branding would play a much bigger role in the success of the company. If someone could get a copy of your software running some place else, what sets you apart from the competition is your brand identity. Companies like Ghost thrive on a mission. They’re building technology for the future of journalism. By paying for their service you support their mission and their brand. Your competitive advantage shifts to your branding and something beyond the product you’re building. I personally believe it’ll do a world of good for the people that work in these companies and the people that use them. Employees and contributors are a part of something bigger, they’re more connected with their community, and the users are, in a sense, are also taking part in this mission. It’s like buying organic.
All this is great, but I don't think it's prime-time for every software company to be open source. Unless you build it as such from the ground up, the problems of open sourcing all your code is obvious to anyone working on a company. But with time and with the right approach anyone can do it. Our team at Clew depends on thousands of open source contributions to do what we do and we believe everyone that can, should pay it back to the community. Sometime down the line, once we're on a more predictable development timeline we'll start by open sourcing some of our independant projects and services, and maybe, we'll find a way to confidently open source our entire product without killing the proverbial goose that laid the golden egg.