Summary
Introduction
- Facebook started with the slogan "move fast and break things" to grow faster than MySpace. This slogan was later changed to "Move fast with stable infrastructure".
- Facebook's organization is optimized for speed. This sometimes causes problems.
Pivot
- Facebook used html5 first, but it was a mistake (too slow, no good access to cameras etc). It then had to switch to native apps.
- Mobile web had a very different pace than the web. You can deploy web apps instantly, but Mobile apps had to reviewed manually first.
- Facebook assigned mobile engineers to their feature teams (Groups, Events, Messenger).
Portfolio Management
- Mark Zuckerberg had a strong focus. For a timespan of six months he only has a few priorities.
Threats
- Google+ was an existential threat to Facebook. But Google failed. One hypothesis was that they were not really customer focused, but focued on Facebook and made the product worse.
- Mark rallied the troops to work nightshifts to counter Google. Google wanted to destroy facebook after all.
Experiment and Iterate
- The mobile ad business worked and gave Facebook leeway to experiment.
- Initiatives by engineers (hackathon and more) are valued quite a lot
- Facebook could not compete with Instagram - therefore they bought it for even 1B. It was cheap back then.
- Experimentation is important
Something happens
- Product direction is set top down - but innovation can flow bottom up.
- Code wins arguments - bias for action
Individuals
- Engineers should be passionate about what they love
- Someone always has to fix problems as well.
- Engineers are encouraged to switch teams
- But employees are easily fired if they do not life up to their aspirations.
- Facebook has a 6 week onboarding
- Building software at Facebook is different than at Google
- Facebook hires general purpose engineers and then let them specialize and find their place.
- Teams with headcount can then get these engineers.
- Engineers are not forced to join a team. Engineers have to attract them.
Social Cohesion
- Facebook only hires socially intelligent people
- "Nothing at facebook is somebody else's problem"
Code wins arguments
- Influencer Engineers write blogposts and evangelize inside the organization
- Influencer Engineers that only argue for the arguments sake are toxic and have to leave
Release engineering
- Optimized for Speed
- Many bugs, but fast to fix
- Facebook initially (2009) had zero tests
- The lack of tests was crippling and Facebook had to change course => Test driven development.
- Push Karama - a four star rating system who is allowed to push and who pushes good code.
- Facebook does weekly mobile releases. This is as fast as it can get with manual reviews by the Apple / Google.
- React native allows to release bits of the code without updates. That's one solution to release faster.
- Facebook uses feature flags in their mobile apps to release faster and hide features for some customers.
Networking
- GraphQL another solution by Facebook to optimize the data that gets transferred over the wire
Rethinking best practices
- Facebook did not have tests for a long time (200 million users active code base)
- But at the end they had too many bugs in production. Therefore they had to move to test-driven development.
Frontend
- Redux founder was hired by Facebook
- React native as another way to share bits of code and update more often
Facebook Moore's law
- Facebook builds its own software
- Facebook uses its own databases, orchestration framewroks and ML tools.
- Facebook also developed their own php virtual machine to optimize the performance
- Facebook employees benefit from the optimization of the infrastructure engineers.
Conclusion
- As Sam Walton from Walmart said: "a willingness to try a lot of things and make many mistakes.". Jeff Bezeos used that for Amazon as well. And this also applies to Facebook.
Conclusion
- What I'd hope for was how Facebook organized their departments (Levels, Product, compensation etc).
- It focuses a lot on Facebook a couple of years ago. That's kind of cool. But when reading the book I often got the feeling that I am readying an old book.
- In general a good book to read. Easy to digest.
You can find the book over here:
https://www.amazon.com/Move-Fast-Facebook-Builds-Software-ebook/dp/B093HMJ4KB