How facebook ships code
Stumbled on a fascinating post about how facebook ships code. This level of detail is rare from an organization as big as this. Â This is a very long piece... but here are a few lines from it to entice you to click on it.
- as of June 2010, the company has nearly 2000 employees, up from roughly 1100 employees 10 months ago. Â Nearly doubling staff in under a year!
- the two largest teams are Engineering and Ops, with roughly 400-500 team members each. Â Between the two they make up about 50% of the company.
- product manager to engineer ratio is roughly 1-to-7 or 1-to-10
- all engineers go through 4 to 6 week â€œBoot Campâ€ training where they learn the Facebook system by fixing bugs and listening to lectures given by more senior/tenured engineers. Â estimate 10% of each boot campâ€™s trainee class donâ€™t make it and are counseled out of the organization.
- after boot camp, 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
- very engineering driven culture. Â â€product managers are essentially useless here.â€ is a quote from an engineer. Â engineers can modify specs mid-process, re-order work projects, and inject new feature ideas anytime.
- during monthly cross-team meetings, the engineers are the ones who present progress reports. Â product marketing and product management attend these meetings, but if they are particularly outspoken, there is actually feedback to the leadership that â€œproduct spoke too much at the last meeting.â€ Â they really want engineers to publicly own products and be the main point of contact for the things they built.
- resourcing for projects is purely voluntary.
- a PM lobbies group of engineers, tries to get them excited about their ideas.
- Engineers decide which ones sound interesting to work on.
- Engineer talks to their manager, says â€œIâ€™d like to work on these 5 things this week.â€
- Engineering Manager mostly leaves engineersâ€™ preferences alone, may sometimes ask that certain tasks get done first.