I’m going to ask you two questions.
Pause for a minute and think deeply about your answers before reading further:
- What are the best software companies in the world?
- Who are the best software engineers in the world?
Did you come up with a list of names? If so, how many names are on that list? Three? Five? Maybe ten, at most? There are thousands of software companies and software engineers doing incredible things, but when I ask you for the best, I bet only a select few names pop into your head. Why these names and not others?
It’s because these companies and developers not only do great work, but also spend time telling you that they do great work. I’d bet that for every company and programmer on your list, you’ve read their writing (e.g., blogs, papers, books), seen their presentations (e.g., talks, conferences, meetups), and/or used their code (e.g., open source).
For example, if your list of programmers included Linus Torvalds, it’s probably because you’re familiar with Linux or Git, both of which he developed as free, open source projects. If you had Dennis Ritchie on your list, it’s probably because he was one of the people responsible for creating Unix and C, and the open standards, open source libraries, and books about them. Or perhaps your list of companies included Google, which is known for regularly publishing open research papers, making the Google Talks series available online for everyone to see, and open sourcing massive projects like Android, Chrome, Angular, and Go. Other major software companies, including Facebook, Twitter, LinkedIn, and these days, even traditionally-closed-source Microsoft, are also regularly releasing millions of lines of open source code for everyone to use. There are even companies built entirely around open source that give away almost everything they do, such as Mozilla and Red Hat.
The question is, why? Why do so many software companies and developers give away so much of their work? Why would they invest thousands of hours and millions of dollars into a project and then release it for free to everyone, even their competitors? Is it really all about altruism?
While altruism plays a role, it’s only one part of the explanation. In this blog post, I’ll dive into the other key reasons why the best companies and developers share almost everything they do, discuss some of the common objections to sharing, and by the end, I hope to convince you and your company to start sharing too.