Duration 35:03
16+
Play
Video

Fireside chat: building on and contributing to Google’s open source projects

Chris DiBona
Software Engineer at Google
+ 3 speakers
  • Video
  • Table of contents
  • Video
2018 Google I/O
May 8, 2018, Mountain View, USA
2018 Google I/O
Request Q&A
Video
Fireside chat: building on and contributing to Google’s open source projects
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free
Add to favorites
3.57 K
I like 0
I dislike 0
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free
  • Description
  • Transcript
  • Discussion

About speakers

Chris DiBona
Software Engineer at Google
Will Norris
Engineering Manager at Google
Sarah Novotny
Software Engineer at Google
Cassandra Salisbury
Open Source Strategy at Google

Will is an engineering manager in Google's open source office, overseeing license compliance and tooling. His team helps ensure that all Google engineers can use and contribute open source code safely and effectively. He is a long-time open source contributor and is excited about helping new contributors get their first patch merged.

View the profile

Sarah Novotny leads the Kubernetes Community Programs for Google. She has long been an Open Source community champion in communities such as NGINX and MySQL and ran large scale technology infrastructures before web-scale had a name. She co-founded Blue Gecko and launched a free-to-play game platform supporting HAWKEN. She is a program chair emeritus for O’Reilly Media’s OSCON. Novotny talks obsessively about people, technology infrastructure and geek lifestyle.

View the profile

About the talk

Open source is for everyone! Making Google’s code open and freely available enables developers to solve real world problems for developers worldwide. Find out how to benefit from and use Kubernetes, Go, TensorFlow, and other Google open source projects. Learn how to get started building on open source, how to contribute to the open source community, and maybe even build a career out of it.

Share

Hi, I'm Chris. Tavana. I work for Google. It's a company and I look after open source software for the company as much as anyone does. I like to say that I'm responsible for a lot of stuff around open source as much as you can blame me if there's something wrong it is long and short of it, but I'm not the only person who works in the first by any measure and so what I'm going to do is I'm going to ask RR panelist to introduce themselves and to give you a picture of what there a day in their life is like working on these projects and

and maybe each of you can say, you know, what's the favorite thing you see in a contributor or new contributor to a project right? So Cassandra Oh, okay. My name is Cassandra Salisbury. I am on the open-source strategy team and a program manager for developer relations for golang. Ready in my life a lot of email but they're primarily around strategy for growing golang and how to work open source at Google as well as how to support our 1.6 million users for go my favorite thing about a chameleon 1.6 million. Yeah. Yeah.

It's up a lot in the last year. You personally count them. I mean I asked for the Gophers Than You Know by color and demographic and I feel like it's closed. Now. I feel like it's closed. Maybe we'll get more exact this year. I think my favorite thing about a new contributor. Is that what you asked it's just passion and excitement and willing to jump in and solve a problem when they see one. So so your your favorite kind of new contributors mine just Dives in

you're going to have them go to the bucket list or the or I'm going to have them join bo4 slack because it's a really active group if they are already and you should go and programming and go then they can go help the newbies out. And if they haven't they can get a lot of their questions answered there and figure out where the best place to start is for slack. I'm sorry. I'm going to betray my age in the old days on the Hound Pearl on Iris. See if somebody were to ask a question. I'm often a certain person would

say I'm not here to do your homework or it wasn't me. It was me and or that sounds like web. Programming you want a different channel is very unfriendly is is the slack Channel friendlier. The Gopher stock is very heavily regulated for welcome Miss and inclusivity tons of people will introduce yourself. So I work in that are open for sperms office. I manage two teams that are primarily focused on open-source compliance. So we are ultimately responsible for reviewing all of its source code that comes into Google

and all of his work odalisque Google which turns out to be a lot. So we review every packages it comes By hand line by line review each one. So are the only way that were able to handle this is why automating as much of this as possible. So we have a lot of tooling around automatically scanning for licenses and in enforcing various policies we manage. I don't know where a hundred and forty or so organizations on GitHub, which is a lot to manage. So we've got a lot of schooling that uses their API to manage that

is responsible for our own programs for doing Outreach Google summer of code on Google, down or both kind of focused its students and getting them involved. Also, we do a lot of sponsorship and in donations and memberships and things like that and what is the to do group? Did she do group is a group within the election that is basically the open-source offices at a lot of different companies. So it's like me or Chris at Facebook and Microsoft and you know, most of the companies that you would think about we get together. Quarterly

and share a lot of best practices and tooling like as it turns out we're all solving exactly the same problems in slightly different ways on it. So it's trying to get more dialogue between companies that are really trying to do open source well and getting those companies talking And like we ask Cassandra when you see a newcomer coming in, are there any like specific traits you say? Oh, that's right. I know it or or is there going to be a disaster? I don't know. I'm not going to negative. But yeah. I think it's the

will has to handle the bulk of the incoming new people and making sure that they're properly willing to take the time to learn the community that they're getting involved with. We have to just hired a few Engineers on my team and we use go for all of our tooling and someone made a comment about how do you use go fund and you're done and you don't think about it and just how refreshing it is to do and not try to fight it that tends to work out really. Well. We can we see the same thing like CLA is our legal agreements that we have to have a little bit

differently, which is the thing that I love to see most and newcomers is when they win that first patch to do the project and just kind of the sense of completion and enjoy That comes from the go team did a special hackathon about a year ago where they're really focusing on getting people contributing to go core on and it was it was an amazing event where they got I don't know how many dozens of new contributors to the to the floor project. It was worked out really great. Thank you will. Sarah I'm sorry Novotny

and I leave me open source strategy group for Google Cloud platform. And my first project here at Google was to embed much like will describe learning the kubernetes community and engaging with that Community to help it evolve from being a company like project to a community-led project since then we have grown the team and the number of projects that we are embedding people in to eight including go with Cassandra is embedded in and we choose these projects as projects that are either strategically important for Google to open source to a first-party or outbound

project and some open source projects that are strategically important to our customers on Google Cloud platform. So things like Nodejs since JavaScript is now more common in production than Java we needed to be involved in that language and and JavaScript standards and work like that. So I also lead the relationship with the Linux foundation will mentioned it to do group is part of that. I said on the Note Jazz Foundation board helped found and move kubernetes to the cloud native Computing

foundation and helped the open container initiative build is for specifications for container portability. But you want to know what I want to see in the contributor brand new community any Community whether it's your local non-profit Boys & Girls Club or open source Community. It's understanding the Norms of that community and not trying to change it to quickly. You have to start by learning the story of how that Community has gotten to where it is before you say you're doing it wrong and

you spoke to about you spoke about the people who come into a community in your life. That's not going to work. It's those that come in and say you need to change this you need to do it this way. You have to earn your credibility and earn your opportunity to make those sorts of changes in a community. I need to start with helping the community with the things they need before you tell them the things you think they should do. So so I want to make sure that I clarify so when I find someone if I go, oh gosh, they're coming on

strong or oh gosh. I'm not sure if it's going to work out. Those are the ones that I try to like to be good at and I try to make them into the thing that is best for the project about being excited about engagement because sometimes people come into these communities saying do you really need to fix this and that's their excitement showing so if you can redirect that excitement, it's sort of like open source jiu jitsu. Move that way and stay here are three things we need done. Let's start with these and you can actually encourage them. We've in the kubernetes community

Pitman has spent a lot of time working on multiple types of mentoring in order to help the new contributor onboarding experience and bring people in as graciously as possible and get them working on things that the project needs that also gets them the quick win to the first patch and then from there grow their influence in the project. so one thing I want to ask all three of you is so we can talk about these big projects using tensorflow is recovering at he's at 5 something you might do

the rest, but One of the things that people come and ask me about all the time and I know that you've been asked this is you know, getting to that first new contributor going from this. Oh, well, here's a cool thing. We're going to release to you know the ecosystems but a lot of projects we never get to that first external contributor. So so what would you do to help a project get there or what have you done that? We're trying to get there. Maybe it's in a sub Library go or very curious

cuz I honestly I have a hard time with this question. So I'll jump in because in my team we have a number of people that are working across the number of projects and some of them are at very early stages. There are projects that have been recently released their projects that have been out for eight years. And so there's this whole gamut within the life cycle the new project one of the best ways to get new people involved and get people excited is to be an advocate in that project. And so

that means that it is easier and more successful if someone who is already participating in the project is super excited about it and starts drawing and their friends starts drawing in the people that they know starts talking about it on Twitter starts just sharing that excitement and those projects start to take off and start To build just a reinforcement of that. Advocacy if you can share your excitement if you're doing this because it's horrible and it just needs to be fixed. And then I'm going to open a

source said it's not likely to take off as a broader project. But if you can say why this is super neat and why you are so excited about fixing it work making this available to the broader Community or how it fits in another community in Boots drop off of that. Then you find like-minded people. They may be your friends. They may be other people trying to solve the same sort of problem and you can invigorate their interest, but it does take some of Angela's mm. I would say one of the key things you can do is to make sure that

your project is ready and welcoming to newcomers. And so this comes down a lot of times to the waiting manager community and just the documentation. We find that from projects that have participated in the summer of code in previous years, even if the the work that the students did on that project and maybe it was great. Maybe it wasn't but invariably those projects end up having to focus so much on their getting started documentation of making sure that they have a clear guy for people to get up and running in a very short amount of time and in those kinds of changes

really stick with the project and just make the project welcoming in general at one of the things we encourage a lot and it is having you know what set of issues on your project that are specifically labeled for beginners like beginner tasks that the core team doesn't work on and they intentionally I'll work on it so that when that newcomer comes there is really kind of bite-size issue that they can fix that really. He's setting them up for success, I think it's really kind of where I would I would say you can use those new

contributors to help with that onboarding process cuz they get stuck you say that's great. Let's document this and then you work with them to improve that process. One of the most valuable perspectives. I think is the person who doesn't know and it's so valuable because you lose that perspective so quickly I'm in and we find this internally a Google is because Google is structured so that you can move around between teen is very easily. And so there's a there's a lot of mobility and when that new person comes to your team like you have to take advantage of that time is

like you got a very short window before they start learning all that institutional knowledge that never gets written down and so you got it, right. Do you know when that person is first coming on? Kind of piggybacking off of that. I totally want to just point out the cross promotion of with other community, right? Because we've seen that on a massive scale. Let's go, you know in kubernetes and Docker. I used to run a meet-up in San Francisco for the amount of evangelist kind of naturally coming

to that and doing speaking engagements really perpetuates that level of like who this sounds really awesome. So five years ago, you know, I'm looking at how I heard that one meet up that one time that one talk and it exploded just cuz people are willing to talk about it. I also think off of Wills Point in a smaller project that I worked on prior to Google labeling and get Hub was a huge help for new contributors. And then after since we talked about kind of the getting of Contributors after you have a nice little small pool we would do

weekly meetings with them for like 30 minutes just to encourage them and make them feel like they were really part of a collaborative process which ends up leading to making the feeling of a tribe. Do you have to have some sort of cohesive group feeling in order to join and participate in you have to feel as if you're making some sort of contribution that is recognized and valued and every Community needs to have that space where you are able to say I participated I met the luminary who

you know wrote go the luminary who started kubernetes and then there's there's the sense of togetherness you end up aligning a group of people in a single direction and you can't understate how value Are you can't overstate how valuable that is? So before I ask my next broad question type thing we do some microphones in about 10 minutes. If you if you want to ask we'll we'll see if they're in there. So what we say this word Community a lot and it's it's kind of in some ways the least Define thing ever and we say open a lot and and I'm not going to say it's frustrating for

me, but I always tried to be really Annoyingly particular about this and so when when when you say committee when you say open and I think open source software license under an open source license and offered to the public, you know, but what does it mean to you? What is your gold standard of of how you like to best interact technically? And these projects so I know this is part Nene projecting, you know, but you know. If I'm looking at what does it take to be open?

Then I'm looking at transparency can do we know why decisions are being made in the projects? I can we see clearpass is documentation transparent easy-to-follow. I'm looking at collaboration. So how easy is it to contribute to the process? Does it feel collaborative are people interacting are they meeting at conferences? Are they interacting on a slack or a channel? And then I think lastly it would be inclusive Ade making sure that there's an openness of

all types of opinions and needs and if they're being listened to you and that people feel it's easy to again just have access and feel included in the process. I think there's another underpinning component to all of those which is respect for all the people participating and it goes back to Wills Point that at that newcomers view even if you don't see it and it seems perfectly obvious how you should get from a to c that newcomers review is gold because there is friction there and

that's friction. If it's not going to be a contributor who drops out it might be a user who drops out and so your decreasing your adoption. So you have this this adoption curve or this contributor curvewears, like everybody who thinks the kubernetes might be awesome and then everybody who has red contributing MD and maybe got stymied by it and then suddenly got a list of people who did understand what we were saying because we actually forgot to mention that KAS means kubernetes. And then you got this group who's bothered to stick around long enough

to actually go through all these hurdles. And so you've decrease the number of people in the people that you're engaging with a lot. If you're not respecting that newcomer view, if you're not respecting the challenges the send feedback that people are bringing to you so that to me is one of the core pieces of openness. Well licenses We've we've often said at Google that there's no one way to do open source true in so many different ways it in terms of

licenses in terms of governance models in terms of community management styles. And Google is big enough that the demon within the eight or so projects that they engage with there's a lot of variety with a nice all seasons of project that Google releases. There is a huge amount of variety and it really comes back to why did you open source it to begin with, and it's going to be different for every project. And so that gold standard really depends on what were the goals of releasing a project in the first place and that's going to guide how you

make a lot of decisions and that's something that it's Aaron. I've been working together for a little while is helping provide that guidance for teams that Google there's a really stinks through why are they releasing it is open source, and then let that kind of dictate house. Answer whatever questions you also have the the the spectrum between open source software to an open source project to an open and inclusive community, which is even further. So open source software. I often defined as

code that is publicly available and has a license that the OSI has checkbox said this is an open source license. So that would be open source software doesn't mean you get an opinion on it doesn't mean you get to contributor changed it but it's open it's available it is you're free to use it. You're free to look at it. You're free to Fork it you're free to change it on your own, but you may not be able to modify the the core software as it stands. But as you move toward down the progression and the the Continuum for project it becomes

much more about pulling together a cookie. Is community that is looking to solve a larger problem than anyone perspective can accurately scope sort of the blind men trying to describe an elephant each different piece of your community comes to the project and bringing you a different perspective. And this is one of the things we saw in kubernetes Google had a very opinionated way of dealing with containers we built for we built Omega we knew kubernetes was going to be a thing that the world needed but we needed more

perspectives. And so that had to be an open community that is not every project and that is not every project that is released by anyone. It's not every project released by Google Android as an example has fewer people contributing and changing the way the Android open source project moves from outside of Google then Many been kubernetes as well. Maybe not directed numbers because of the years. But but there is there different amounts of influence based on the Strategic goals of the project.

So I don't want to turn this into my personal meeting with my colleagues. But what's wrong with how we release Kokomo Google? What would you want to see different? What's hard? You know, it's for the problems. Have you seen when releasing code from the company? Cuz I have people from other big all the time and say why I wanted you to release and I'm like, so tell me what how we could be doing a better job and how we could all be doing a better job. And now I know the answer to that one immediately really

relates to what we were just talking about that there is no one way to do open source, we can absolutely do a better job of setting expectations that when you find a random project in one of our get hoverboards or i on Google source.com or wherever you find a project is this a project that is being used in production at Google is this being actively develop is it, you know, looking for Community or is this just a project that is intended to be you know consumed but maybe not collaborated on argue on which one is better and in all that

but regardless of any of that just setting the right expectation is something that we can absolutely do a better job of the go project we do have a really collaborative. We want contributors excetera. And so some of the things that we've learned would be asked for opinions and contributions early on so if you are going to release then you know, sometimes you get feedback from behind the doors so that a little bit less of a notch there, but I think even more so it is that

you need to Exactly what you're saying. Well, it's an iterative process. Usually when you have a collaborative project. It's all enertiv. And so that's the one thing we've learned to speak clearer. Yes. It may not be perfect when it is first released, but it's all in her native. And the reason we do that is because we want those contributions now. I'm willing to go out on a limb and say I guarantee it won't be perfect when it goes out for sure. but to Wills Point

making sure that we are setting expectations is important but also showing growth path showing how someone can contribute and how they can continue to engage with the project showing where the projects needs are and making sure that when we are engaging with the community that their feedback is recognized even if it isn't followed, So should I ask about contributor license agreements and DCS? I mean how much actual problems do you see around the apparatus of intellectual property

actually keeping you from getting contributors and all the Rascals. Me we talked about quite a bit a big company. Okay, sweet Carol lot about where software comes from who's riding it who owns that and I'll show property as it's released and we have to be very very careful about it because when we get sued a lot so so I'd be really interested in hearing if you seen a real problem because of that or I can you see it occasionally it for the most part the biggest problems. We see are just weird edge cases that are automated to link can't handle pain in

toe a fair amount of my time and my team sign is spent dealing with those edge cases walking people through the process and then figuring it all out. We will occasionally see someone who just is adamant about not wanting Define a contributor license agreement and we have to say I'm sorry this is just something that we do require for a variety of reasons, and we seen time. And again, we're having that picture of your license agreement has saved us or is allowed us a degree of flexibility. For example of angular 2 years ago. We originally

release it under the Apache 2 license the community of the dumpster Community largely preferred MIT. And so we we talked about it and we made the decision to relicense the project under a mighty at the community's request. This was something that was only possible because we had considered license agreements for all of his contributors. So And I'll play Devil's Advocate is kubernetes was was a challenge for this. So kubernetes went out into the world with a half-dozen corporate entities really working closely with Google so are

1.0 launch had all of these corporate collaborators and that worked great because we all understood how this work. We were all signing the Google contributor license agreement. It was all okay, but the idea that kubernetes was to be industry-changing and actually move the way we thought about portable workloads in the cloud men's that we needed more and more and more companies, especially very large companies, especially companies who may or may not compete with Google any different

consumer areas and business product areas mean That there got to be got to be a lot more contentious. So I want to contribute to your thing. I want to help you achieve your goals, but I can't sign your license. And so we got stuck with a few corporate contributor saying that's great, but we can't and kubernetes because we knew we wanted this again going back to what was the Strategic goal going back to let the Strategic goal as we wanted this to change the industry. And so we knew it to do that. We had to let go

of some of the control and that was the creation of the cloud native Computing Foundation at the Linux foundation and that then allowed us to take the same language. We use for the Google contributor license agreement crossout Google say cloud native Computing foundation in all the locations change the tooling so that it was the cloud native Computing Foundation license. Transfer all the licenses with all the existing contributors. And now those companies that were not happy about signing a Google contributor license agreement or perfectly content to say

to sign the same language as long as that transfer of Ip went to the cloud native Computing foundation. And that was a fine solution for this a lot of younger projects more recent projects have focused on deseos and not clas developer certificate savour origin instead of contributor license agreements or corporate contributor license agreement and that's not something that Google is comfortable with because there's not a lot of case law about it at this point. A lot of the case law is being

litigated right now. And until there is a clear path until there is a clear way that you can handle the oops we need to License test for Hoops. We need to make a big change without having to contact the thousands of contributors that may have contributed to a project until that case law exists. It's too big of a risk. Well, I guess it's a little differently in the bucket then I think everyone else. Is there a programming language it is a little bit different but I can't say that last summer before I died during Google. I sat in a room. Will you alluded to this with a I

think it was a hundred and fifty first ever contributor workshop and it did require that everyone goes through this yellow a process which was interesting together, but it was also Super Rad and some I definitely wouldn't have any problems at my table and I don't believe we had any problems with that that particular portion of it at the other tables though. Thank you that died baseball. It's totally inside baseball. It is a nice wife, and we're at a time.

So I'm going to say thank you to all of you for coming and thank you the panelist and have a great rest of your eye out.

Cackle comments for the website

Buy this talk

Access to the talk “Fireside chat: building on and contributing to Google’s open source projects ”
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free

Access to all the recordings of the event

Get access to all videos “2018 Google I/O”
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free
Ticket

Interested in topic “IT & Technology”?

You might be interested in videos from this event

September 28, 2018
Moscow
16
170
app store, apps, development, google play, mobile, soft

Similar talks

Michael McDonald
Product Manager at Google
+ 1 speaker
John Shriver-Blake
Product Manager at Google
+ 1 speaker
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free
Andrew Gasparovic
Lead Developer at Google
+ 2 speakers
Jeremiah Harmsen
Lead of Brain Applied Zurich at Google
+ 2 speakers
James Pine
Software Engineer at Google
+ 2 speakers
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free
Kat Fang
Software Engineer at Google
+ 1 speaker
Kiana McNellis
Engineer at Google
+ 1 speaker
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free

Buy this video

Video

Access to the talk “Fireside chat: building on and contributing to Google’s open source projects ”
Available
In cart
Free
Free
Free
Free
Free
Free
Free
Free

Conference Cast

With ConferenceCast.tv, you get access to our library of the world's best conference talks.

Conference Cast
613 conferences
24811 speakers
9162 hours of content
Chris DiBona
Will Norris
Sarah Novotny
Cassandra Salisbury