How People and Process Enabled Facebook to become a Phenomenal Company
I came across a case study on Facebook and how two key factors that contributed to Facebook’s success: people – in particular Mark Zuckerberg himself – and process – ‘moving fast’.
Facebook has a culture of speed and values moving fast above anything else – fast releases and fast learning through fast feedback. Everyone is responsible for quality. There are mandatory code reviews and there is an emphasis on coding conventions. There are automated tests at all levels of the stack, integrated with continuous integration systems and other tools.
There is a firm belief at Facebook that nothing should stand in the way of an engineer who wants to release a change or a new feature to production. There is no separate QA team. Engineers are responsible for the quality of their work. Changes are released daily, often multiple times a day. New features are released on a weekly basis.
Facebook doesn’t publicize that they have a process, however, Facebook’s culture of speed seem to have it’s roots in Lean, Scrum and XP. Though not explicitly stated in the article, I get the impression that concepts from Kanban are used. They have small batch sizes and measure cycle time to enable fast flexible flow from idea to development and then to release into production. Many of the ideas come from Hackathons. Facebook has a focus on human interactions, close collaboration and low ceremony to enable fast releases of working software. High communication bandwidth between the team members and product managers is important. Co-location of the team in the early days was critical from the Harvard dorm rooms to the houses they rented in Ralo Alto.
Agile software development embraces decentralized control and the benefits this brings, in particular with respect to moving fast. It should come at no surprise that Facebook is basically an agile shop, even if you won’t hear much about “Scrum at Facebook” or “XP at Facebook.” They work in small, interdisciplinary teams, and they deliver high-quality software early and often.
To ensure everyone is on the same page and not wasting effort working on the wrong thing, there is a common and shared vision at Facebook which enables the entire company to move in the same direction. Getting a shared vision is a challenge in many large enterprises – most people don’t even know what the vision is let alone share it. Facebook seems to have this nailed:
Mark Zuckerberg’s vision is deeply shared and understood not just by the management team, but by every single Facebook employee.
Reading the case study, I get the feeling that there is a tolerance of failure and mistakes. If Facebook fails, it learns, regroups, adapts, and develops some more – fail fast but recover quickly.
Albeit a several pages long, I encourage you to read the entire Facebook case study – it makes for an interesting read (even for not I.T. folks).
Be sure you read the comments by Don Reinertsen, Alistair Cockburn, Jeff Sutherland, Yishan Wong (former Director of Engineering at Facebook) towards the end of the article.