Facebook engineers decide what they want to work on and are allowed to make changes across the site without asking for permission.Skype product Manager Yee Lee talked to a bunch of friends who work at Facebook, and his resulting post on how Facebook ships code makes it sound like the biggest startup in the world. Some of the points in the original post were later corrected on Quora and Reddit, but the overall impression remains the same: Facebook is driven by engineers, not marketers or managers, and they trust each other to do the right thing.
Some of the surprising points:
- Engineers decide what they want to work on. Product managers go around and lobby them trying to convince them to work on their project, then engineers talk to their managers and say “I’d like to work on x this week.”
- Engineers handle everything for a particular feature by themselves — interface design, database access, and so on. If they want help from a specialist, they need to convince them that it’s worth their time.
- Engineers are responsible for their own quality assurance testing — there’s no dedicated QA team, although a Test Engineering team does create QA tools for engineers to use.
- Any engineer can check in code to any part of Facebook’s code base. Code is reviewed and can be blocked before it’s pushed live, however.
- If there’s a serious argument about whether to add a feature, Facebook sometimes tests it on a small group of real-world users.
Overall, the ratio of engineers to product managers is between 7 and 10 to 1.
Combine this level of freedom with the prospect of becoming rich when Facebook goes public, and no wonder so many bright people want to work at Facebook — and that’s why older and larger companies like Google are having to pay huge bonuses to keep them from bolting.