2014/04/14 DevNation Day 1

by Gene Kim on

#devnation

Schedule: http://www.devnation.org
My notes: http://scribes.tweetscriber.com/RealGeneKim/319

James Pearce, Head of Open Source, Facebook

How Facebook does open source at scale - James Pearce (Room 212)

Open source has always been a huge part of Facebook's engineering philosophy. The company uses, maintains, and contributes to a significant number of major projects, in areas as diverse as native mobile tools, big data systems, client-side web libraries, back-end runtimes and infrastructure, and, through the Open Compute Project, server and storage hardware.

Many of Facebook's open source contributions are technologies that meet its unique scale and performance challenges.. In this session, we’ll look at examples of how Facebook supports existing projects, develops alternatives, or even pioneers new capabilities to do so—and then, of course, how it shares those improvements back to the community.

With hundreds of projects, thousands of engineers, and tens of thousands of participants, how does Facebook manage the open source portfolio itself, at scale? To answer that, we’ll also look at the way open source is woven into the company's engineering workflow and culture, and how tooling and instrumentation allows it to stay open, stay responsible, and yet still move fast.

https://pbs.twimg.com/media/BlM9bIsCYAAmk9l.jpg

  • @arungupta: Packed room for @jamespearce talk on "How FaceBook does open source @ scale" #DevNation http://t.co/pSMcS4R9TF
    https://pbs.twimg.com/media/BlM9bIsCYAAmk9l.jpg
  • .@jamespearce: "History of contrib to enhancing & giving back to OSS: PHP (and HipHop compiler), mySQL, open source hw"
  • .@jamespearce: "Hacker Culture: probably only company w/entire paragraph in S-1 filing on Hacker Way" :)
  • .@jamespearce: "Hack Days are core part of our engineering culture"
  • .@jamespearce: "Mission: give people the power to share and make the world more open & connected
  • .@jamespearce: "Our biggest OSS proj, as measured by stars/forks: Three20 (an IOS library), even tho discontinued
  • .@jamespearce: "...same with other projects, Scribe (not touched in 3 yrs), memcached (last commit 5 yrs ago)" (!!)
  • .@jamespearce: "[Facebook] has terrible reputation: you dump code into OSS, never update" (cc @jordansissel)
  • .@jamespearce: "B/c we move fast, our devs will OSS a proj, keep working on internal branch & never update OSS repo."
  • .@jamespearce: "OSS process reboot challenges: commitment, legacy, engrs who left, disbanded teams, estab best prac
  • @RealGeneKim: RT @jordansissel: @RealGeneKim Is the punchline "Release software as open source and then promptly abandon it" ? hehe”
  • .@jamespearce: "We have a desire to OSS our mobile code; show community that we're back"
  • .@jamespearce: "exploration: what projs did we have, who was contributing, which were relevant?"
  • .@jamespearce: "api.github.com/orgs/facebook; grabbed lots of great data on repo activity on each repo/commit/PR/issue hourly
  • .@jamespearce: "top projs: memcached, three20, platform, bunny1, phpeembed, codemon, animation, scribe, firefox-toolbar, cassandra
  • .@jamespearce: "June 2013 aggregate stats: 129 repos, 50K followers, 11K forks, 31K commits, 404 pull reqs, 1.4K open issues
  • .@jamespearce: "Bad news: 404 pull req (oldest: 323 days), 1.4K open issues (oldest: 502 days)" (shows maint prob)
  • .@jamespearce: "Nothing turns off contributors than ignoring pull requests for a year, and not dealing with open issues"
  • @jhibbets: If you want to disenfranchise a community... ignore their pull request. @jamespearce
  • .@jamespearce: "We found a bunch of OSS repos inside Instagram that we're trying to get arms around"
  • .@jamespearce: "Every repo owner has owner (Facebook employee). Sometimes dedicated community mgr, resp for pullreq, issues
  • .@jamespearce: "Management buy-in that every repo has owner (eg, tornado, where primary engr left; finding new owner)
  • .@jamespearce: "Now, github pull requests automatically generate tasks in our Dev ticketing systems
  • .@jamespearce: "We have a nightmarish CLA (contrib license agreement)
  • .@jamespearce: "For new HHVM that supports Hack language, we got large # of pull requests. A good sign
  • .@jamespearce: "Outreach: we're using our Engr PR team, who've been amazing help get good news out;
  • .@jamespearce: "Great curated list of our OSS projs at http code dot facebook dot com (Github list not enuf)
  • @RHELdevelop: RT @rayploski: RT @jhibbets: Facebook has been on a 9-month journey to reboot their open source program ~ @jamespearce
  • .@jamespearce: "Most projects have site using github pages; larger ones like HHVM has entire site with docs, videos, etc.
  • .@jamespearce: "Other projects: react, origami (you can tell they're designers)
  • .@jamespearce: "My goal is not control; Makes me happy when dev teams create logos, reach out to community, build community
  • .@jamespearce: "Our big Facebook dev conference, F8, now has entire open source track"
  • .@jamespearce: "New programs: Facebook open academy; Stanford students can get college credits for OSS contribs" (!!)
  • .@jamespearce: "New program: Bounty Source: providing bounties for issues and features" j j j j