The tech world noticed when Facebook announced on Monday the TODO group it had launched along with a collection of other large web companies, including Google and Twitter. Short for “talk openly, develop openly,” the group members plan to turn their shared experiences creating and managing open source projects — thousands of them collectively — into resources that can help other companies get started down the open source path. James Pearce, Facebook’s head of open source and developer advocacy came on the Structure Show podcast this week to talk about TODO and, more importantly, why open source software matters.
It’s an entertaining and insightful interview, definitely worth listening to for anyone considering open sourcing their software or wondering why anybody else would want to. There’s even a funny story about how the group got its name. But here are some highlights.
GitHub is just the first step
About a year into his new open source role, Pearce has had to wrap his head around hundreds of open source projects at Facebook and a culture that encourages open software, even if it didn’t prescribe any measures for doing it right. He explained his viewpoint on when a project is ready for public consumption:
Ultimately, if an engineering team has created a technology that they think is valuable to their community or is valuable to other companies that are operating at our scale, then by default we will consider open sourcing it. It’s a strong part of our culture, it’s a strong part of our identity. We obviously built Facebook originally on open source software, so we feel we have default obligation to share back.
Of course, we need to make sure — and this is the main criterion, I think — that the engineering teams that are open sourcing technology are going to follow through. Actually, the releasing part is pretty easy … The challenges actually come once we’ve launched and the community starts to adopt a technology, because that’s when we need to continue to support it, continue to improve it, continue to work with the community. And, I’ll be honest, in the past that’s an area where we haven’t done such a good job.
However, Pearce added, “Over the last year, I’ve been kind of firm about this and, as a result, the project that we have put out have been markedly more successful than those that were sort of done without a lot of thought and without a lot of discipline.”
Navigating the license soup
Asked about Facebook’s approach to the myriad open source licenses available, Pearce explained that the company tries to release code under the best license for each project:
We do not have one single license that we use on every project. We are sensitive, I guess you could say, to cultural expectations of different communities. For example, when we’re open sourcing some of our big data infrastructure that’s perhaps Java-based, we might default more toward something like Apache because that’s more compatible with things like Maven and the kind of tools developers are used to using there. In other cases, particularly with our mobile libraries, we default to BSD, and if you look back through our portfolio there’s a variety of other stuff. … I think it’s more important for us to know that the way we license something is going to resonate well with the community that we think is going to use it than just trying to impose one model across all our products.
Internally, Facebook has its own list of open source licenses it likes, and if developers find software they like under one of those licenses, they’re free to use it. “We try not to let it get in the way of producing high-quality software and shipping it as fast as possible,” Pearce said.
Bringing together a diverse group in TODO
As competitive as companies such as Twitter, Google and Facebook can be on the product front, they’re starting to come together on the open source front. In fact, Pearce noted, the companies involved in TODO actually share more experiences and viewpoints than they have philosophical differences. During an interview on Monday at Facebook’s @Scale conference, he said the WebScaleSQL initiative that Facebook, Google, Twitter and LinkedIn launched in March served as an inspiration that a group like TODO could actually exist and work together.
“I’ve been amazed at how common our experiences have been as a group,” he elaborated during the podcast. “… ‘Oh my goodness, did we not think to talk to each other before we went off and rebuilt all these wheels?!’ The commonality is far greater than anything that’s different.”
He added, “Walmartlabs is one of the [companies] that people are a little surprised to see, they don’t necessarily associate Walmart with fast-moving open source. But actually, if you go github.com/walmartlabs, you’re going to be extremely surprised because there are tens if not hundreds of great projects on there that they’ve been building.”
Quality over quantity, guidelines over mandates
Pearce said TODO isn’t really interested in dictating what types of open source licenses its members or others must use, or in trying to set quotas about how frequently they must open source stuff. Rather, the group will focus on things such as building tooling and developing best practices, maybe building a directory of open source projects and labeling them based on how old they are or how well they’ve been maintained.
“If I look at the Facebook portfolio, it may be that only some of our own projects meet that criteria,” he acknowledged. “We have some big flagship projects that I know we run really well, but I’m honest in admitting that there are some other small projects that, yeah, we still could do a better job on. I would rather see tens or hundreds of projects run really, really well than I would see thousands or tens of thousands of projects that have been thrown over the wall and forgotten about.”
Open source isn’t just for Silicon Valley, or even just for web companies
Although TODO began its life very focused on tech companies, specifically those in Silicon Valley, Pearce said the goal is to expand broadly to any type of company that wants to get involved. During our chat on Monday, he suggested to me that even companies like John Deere, that many people don’t associate with software design, might have something to add. Give the organization a few months, and that just might come true.
“If we can help companies that haven’t got a history of open source get more comfortable with the concept, both of using it and of releasing their own software, then that will have been very, very successful,” he said during the podcast. “… Hundreds of companies have reached out to us since Monday; it’s been very exciting. … We’ve had universities reaching out to us, we’ve had airlines manufacturers reaching out to us, we’ve had all sorts of very surprising sectors.”