Usually when Facebook comes up at opensource.com, it's because they've done something that's very much the opposite of open. But a blog post on FrameThink this week showed Facebook's more open side.
Yee Lee, a Skype employee who has taught a Stanford course called "The Facebook Class--Persuasive Apps & Metrics" wrote "How Facebook Ships Code," explaining some of the details of their developer-driven culture. According to his post, the engineering and ops teams at Facebook, each with 4-500 employees, account for about half of the staff, who are given a lot of power and a lot of responsibility.
Several other details he lists are not necessarily how an open source software community would work, but there is an undeniable openness to them. And with that openness, a lot of trust. From the post:
- all engineers get access to live DB (comes with standard lecture about “with great power comes great responsibility” and a clear list of “fire-able offenses”, e.g., sharing private user data)
- any engineer can modify any part of FB’s code base and check-in at-will
- resourcing for projects is purely voluntary; engineers decide which [projects] sound interesting to work on
- arguments about whether or not a feature idea is worth doing or not generally get resolved by just spending a week implementing it and then testing it on a sample of users
- getting svn-blamed, publicly shamed, or slipping projects too often will result in an engineer getting fired. ”it’s a very high performance culture”.
The list of notes about Facebook's developer culture is much longer and an interesting read, although not all of it will remind you of the open source way. One commenter summarizes it as describing Facebook engineers as "a bunch of crazy wild-west coders." Another says, "no QA, check-in at will, everyone has access to production. That is the peace through anarchy model." And if what Lee wrote is true, it does sound like a bit of a mess--at the very least, a highly stressful environment.
What do you think? Are there notes of the open source culture at work at Facebook? Or is it just a mess? Maybe they could benefit from reading The Open Source Way.