Christine Abernathy, developer advocate for the Facebook open source team, will be speaking at All Things Open this month. In this interview, she tells us more about how Facebook open sources projects at scale and what challenges lie ahead for the open source team there.
Christine also references the TODO group, which in the past year has seen its members ship 1,000 open source projects. The TODO group is "an open group of companies who want to collaborate on practices, tools, and other ways to run successful and effective open source projects and programs." TODO stands for talk openly develop openly.
Facebook rebooted its open source program two years ago. Looking at it now, what are the lessons learned?
There are so many lessons that we've learned as our open source program has evolved, but the key takeaway for us is that more and more companies are choosing to be open and connected. This in and of itself helps confirm that proprietary strategies are actually a competitive disadvantage.
Building a strong open source program together as a community is in line with Facebook's mission—which is to make the world more open and connected. We find that the same goes for software because a lot of software needs to be built to address the many challenges that exist, and we can't do it all ourselves. Openness is not just about communication and connections—it's about software.
Openness and collaboration helps us scale faster because 1) We're able to make open source projects work in our environment and at the scale we need it to. 2) We're familiarizing the community of engineers with our current projects, and 3. New hire onboarding is faster, which enables us to scale more quickly.
To help formalize our program:
- We've implemented internal systems that provide early warnings concerning any communities we are inadvertently neglecting.
- We're working with Bountysource to reward outside involvement and the discovery of bugs in various open source projects.
- We've established Facebook Open Academy to help bring open source to computer science curricula at universities around the world.
- We've started a series of engineering events (@Scale) to discuss and collaborate with different developers about their experiences with open source projects.
James Pearce keynoted at OSCON and mentioned a playbook for open sourcing projects. Will you be talking about this guide at All Things Open? Can you tell more about this guide?
Our head of open source, James Pearce, did discuss a playbook for open sourcing projects and I will definitely be talking about this at All Things Open. Our main priority with open sourcing projects at the scale we do is to inspire the industry—other companies and vendors—to take this technology and get it out there, deploy it, run it and operate it. Our goal is to help the industry move forward faster by connecting people to solve the world's most complex issues, and Facebook is in a unique position to do this.
We launch several open source projects every month and we have hundreds of engineers supporting those projects on an ongoing basis. It's important for us to have a set list of standard practices to help make sure we're setting a good example in the open source community. One way we do this is by ensuring all projects we open source are currently in production. This gives the open source community assurance that our projects are being well-maintained because if those projects aren't managed well, Facebook would break.
In looking ahead, it will take a considerable amount of time to build a community, inflect the current thinking and get the technological advancements to happen at the magnitude desired.
The TODO group has published an open code of conduct. Should such a CoC be part of a guide? And is Facebook applying this in their program?
Our code of conduct is definitely becoming more of a standardized guide for our open source projects, and it's actually based on the one that was published by the TODO group. For example, our project React links to code.facebook.com/codeofconduct. It's important to us that we as a community remain committed to providing a welcoming and inspiring community for all.
Do technology innovations have an impact on the open source program? What about organizational changes such as the Open Organization, which Red Hat CEO Jim Whitehurst wrote about?
Absolutely. And at Facebook, we view innovation as an opportunity to address new challenges and face them head-on as a team with the open source community.
We're particularly proud of how our TODO group has evolved over time. The wonderful thing about this team is that we have a great blend of companies that operate their businesses on selling software, and enterprises in particular are starting to appreciate the value of collaborating with the community through open source projects.
The open source community is attracting a broader scope of industries and company sizes because open source helps promote greater transparency (opportunity to test software before it's introduced), teams become more innovative because you can collaborate with those in your competitive market—enabling companies to remain relevant in today's complex marketplace, and lastly it impacts product direction because you're able to present use cases through direct developer interaction and contribute code that implements desired functionality.
Looking at the program, what kind of challenges do you see on its path, in three years from now?
There will be many challenges we face, but the great thing about being part of the open source community is that we are all in this together. A key topic of discussion that will continue to present challenges is that open source databases are typically perceived as a dumping ground, meaning that code is uploaded but not maintained properly.
At Facebook, our goal is to grow the open source community, and in order to ensure our path is moving forward we make sure we only contribute open source projects that are of utmost quality. This is why we only open source projects that are currently in production—so everything you see on Facebook GitHub is software we are actually using right now. They're not projects resulting from hackathons or intern projects. The open source community knows that our projects are well-maintained because they're keeping Facebook infrastructure alive.
We assign small teams to manage projects on GitHub who are actually working on these at Facebook. For example, React is run by a React engineer. We share knowledge with the community about how we do projects well and since React has done very well, good principles get shared throughout the community. We also have a shutdown process for projects that are no longer valid or in production.
Is there any news on Facebook's involvement with the TODO group?
The TODO group is continuing to progress and doing well. In fact, between the members, we've shipped 1,000 open source projects in the past year. HP and Microsoft are also on board now and the group has been sharing a set of best practices with other companies. We're doing what we set out to accomplish—which is to help other people learn how to open source at scale. And we'll continue to share more from this group to help other companies build open source programs at scale.
Any final words you would like to share with our readers, on your talk, or anything else?
This is a really exciting topic of discussion for us, and we're excited to be part of the open source community. During the upcoming All Things Open conference, I'll be presenting how Facebook open sources at scale and the challenges we've faced along the way. We hope our experiences can help other companies who are trying to kick start their open source initiatives.