How to explain open source projects to a non-technical audience
I worked on the Kedro open source project for about 2 years, and explained open sourcing to many people, both technical and non-technical. While I never get this question from engineers (probably because it’s so common in the tech industry), the question I often get from non-engineers is:
“Why would a company ever open source software to the public for free?”
This question usually comes from senior business people, and it was surprisingly difficult for me to explain to them why open sourcing makes sense. Your software is your secret and it is proprietary, so why give it away for free?
While I still struggle to explain this elegantly, the one analogy I often use is Wikipedia. Everyone knows and uses Wikipedia, and it’s one example of an open source project.
You know Wikipedia is great because it’s:
- Accessible: anyone can read and edit the content of Wikipedia anytime.
- Scalable: new content gets updated immediately, mistakes/typos get fixed quickly, and Wikipedia content keeps growing.
- Free: because it is open sourced, you don’t need to buy an encyclopedia at a book shop and you don’t need permission from anyone to use it.
Of course, Wikipedia isn’t perfect and has limitations, like:
- Some of the content is not accurate, and these “bugs” are inevitable.
- Running an open source business is pretty hard (i.e. Wikipedia is a non-profit organization)
“But open sourcing is common in tech. Why is that?”
Well, tech companies benefit from open source projects because they allow rapid innovation in technology, causing the tech industry as a whole to move much faster than other industries. Tech companies build their next piece of software (often starting as closed software) on top of the existing open source code, and some companies then choose to open source their software (or part of it) a few years later. This in turn fuels the development of the next software, and so on.
I am not saying that open source projects alone are the best business model; tech companies usually have different ways to monetise their projects (e.g. premium functionalities, enterprise support, attracting tech talents to build something else that’s sellable etc.). For example, Google decided to open source Kubernetes to establish an industry standard in cloud computing, and GCP (Google Cloud Platform) built many of their services based on Kubernetes, which increased GCP sales and helped them compete against AWS.
So, have I convinced you of the benefits of open source software? If you are a techie, I would like to know how you would explain the benefits of open source projects to your parents. :)
Thank you to Jonas Kamper for reading the draft of this blog post.