Facebook’s engineering is legendary for its speed and execution. Originally they lived by “Move Fast and Break Things”, which has now evolved with wisdom to “Move Fast With Stable Infra.”
Speed is important, as is stability and providing a good experience to users. Facebook’s engineer Kent Beck wrote a great Facebook Note on how Facebook embraces reversibility to scale up.
Facebook has a secret sauce: an in-house system called Gatekeeper that allows them to get quick feature feedback and quickly iterate based on that feedback. Engineering changes are wrapped with a feature flag
and pushed live to production. However, the features are live but off, then turned on via Gatekeeper to different users. Facebook’s seemingly simple system of separating deployment from rollout unlocks many powerful ways to move faster with more stability.
Feature Flag Driven Development for the Rest of Us
If you're living the “Move Fast” lifestyle at your company, what does the “Stable Infra” look like? If something goes wrong, how much control and visibility do you have over your features controls?
The smartest companies like Facebook, Medium, DropBox, and LinkedIn have in-house feature-flagging systems custom built for them. You can build your own system, or simply use LaunchDarkly, “Gatekeeper for everyone else.”