Ask a Techspert: What is open source?

When I started working at Google, a colleague mentioned that the group projects I worked on in college sounded a lot like some of the open source projects we do here at Google. I thought there had to be some misunderstanding since my projects all happened in-person with my classmates in the corner of some building in the engineering quad. 

To find out how a real life study group could be like a type of computer software, I went straight to Rebecca Stambler, one of Google’s many open source experts.

Explain your job to me like I’m a first-grader.

Well, to start, computer programs have to be written in a language that computers understand — not in English or any other spoken language. At Google we have our own language called Go. When we write in a language to tell a computer what to do, that’s called source code. Just like you can write an essay or a letter in a Google Doc, you have to write your code in an “editor.” I work on making these editors work well for people who write code in Google’s programming language, Go. 

What does it mean for software to be open source?

A piece of software is considered open source if its source code is made publicly available to anyone, meaning they can freely copy, modify and redistribute the code. Usually, companies want to keep the source code of their products secret, so people can’t copy and reproduce their products. But sometimes a company shares their code publicly so anyone can contribute. This makes software more accessible and builds a community around a project. Anyone can work on an open source project no matter who they are or where they are. 

Anyone can contribute? How do they do it?

Before you actually write open source code, a good first step would be thinking about what you’re interested in, whether that’s web development, systems or front end development. Then you can dive into that community by doing things like attending talks or joining online networks where you can often learn more about what open source projects are out there. Then, think about what topics you’re interested in — maybe it’s the environment, retail, banking or a specific type of web development. Some people write code just because they enjoy it; plenty of these people have contributed to code within Google open source projects. So if you’re looking to contribute,  make sure it’s something  you’re really interested in.

Abstract illustration of three people putting together code.

Many open source projects are hosted on a site called Github, so once you narrow down your area of interest, that’s a great place to start! Once you’ve found something you want to work on, the easiest way to get involved is to fix errors in the code raised by other members of the project who don’t have the time to fix. Even if you don’t know how to code there’s a lot of non-technical work in open source projects like prioritizing issues that need fixing, community organization or writing user guides. You just have to be passionate about the work and ready to jump in. 

What’s the benefit of using open source code to create something?

We need lots of diverse perspectives to build good software, and open source helps with that. If you’re building something with a small team of three people, you might not consider all of the different ways someone might use your product. Or maybe your team doesn’t have the best equipment. Open source enables people from all over the world with different use cases, computers and experiences to chime in and say “hey, this doesn’t actually work for me” or “running this software drains my battery.” Without having open source projects, I don’t think we could make products that work for everyone. 

Projects like Android, which is Google operating system for mobile devices, are open source. And just last year Google Kubernetes Engine celebrated its five-year anniversary. This was really exciting because it showed how Google engineers contribute to the broader open source community outside of Google. Open source projects build a real sense of community between the contributors. When we have people that work on a lot of our projects we send them thank you notes and mention them when we release new software versions. We’ve created a whole community of contributors who’ve made our products more successful and exciting.