Seiten

Thursday, July 29, 2021

Book review "Move Fast: How Facebook builds software" by Jeff Meyerson

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