Google has published internal documentation explaining how it decides when to make its technology open-source along with the launch of a dedicated site which collects the company’s own initiatives.
The new Google Open Source website aims to help create ‘better technology' by promoting open source. Since its early beginnings, Google has been a leading advocate of open technologies and the company believes it encourages collaboration to solve problems quicker.
“At Google, we’ve always used open source to innovate. We want to give something back; we enjoy being a part of the community,” the company wrote on the website. ” We often release code to push the industry forward or share best practices we developed. But sometimes, it's just fun and interesting code.”
Over 2,000 projects can be explored freely on the website, offering a huge repository for developers to examine. “Google's embrace of open source has been important to me as an engineer in ways I can't express,” says Rob Pike, a distinguished engineer.
While most of the initiatives were already live on GitHub, some – including Android and Chromium – were maintained on Google’s servers. Google Open Source provides a simple place to browse all the projects available under the Creative Commons license.
The usual policy for Google is to just make something open-source and public unless there’s good reason not to. Many other large companies – possibly taking inspiration from Google – have begun making a greater amount of their own technology open-source such as Microsoft, Facebook, and Twitter. Even Apple in recent years has started to make a number of their own technologies open-source; including their new programming language, Swift.
Google’s own programming language, Go, is among the most popular of the company’s open-source projects. Other popular releases include the Kubernetes container management system, and the TensorFlow deep learning framework which is used widely as part of Google’s services to help power Android, Gmail, Google Maps, Google Photos, Google Play, Google Search, speech recognition, Google Translate, and YouTube.
Some of the checks Google makes before making their code open-source, according to documentation, is that it helps users and not just competitors, doesn’t have links to Google’s “secret sauce”, is clear of any potential legal, patent, and privacy issues, and names and email addresses of Google employees are removed from source code unless they’ve agreed to be included.
When posting initiatives to GitHub, Google has some interesting recommendations which include that employees should use their personal accounts rather than create work-related accounts. Employees should also tie accounts to Google email addresses to ensure “commits don’t get flagged as needing a CLA [Contributor License Agreement].”
Two-factor authentication should be used for GitHub and contributing non-Googlers can be marked as collaborators but not usually admins. If a person is leaving and no team is going to assume responsibility after departure, that person is advised to fork the repository. When it comes to personal projects – which Google is on record for supporting – employees can get consideration from a dedicated Invention Assignment Review Committee (IARC) to get a copyright release for their work. If authorised, it doesn’t mean the employee receives intellectual property rights, however.
“Our policies and procedures are informed by many years of experience and lessons we've learned along the way. We know that our particular approach to open source might not be right for everyone—there's more than one way to do open source—and so these docs should not be read as a ‘how-to’ guide,” says Will Norris, Open Source Programs Office. “Similar to how it can be valuable to read another engineer's source code to see how they solved a problem, we hope that others find value in seeing how we approach and think about open source at Google.”
You can explore Google Open Source here.
What are your thoughts on Google’s approach to open-source? Let us know in the comments.