Feature Flags: Transform Your Product Development Workflow
You can read a preview of this book at https://featureflagsbook.com/
My software engineering team used to break the production environment on a daily basis. We spent just as much time fighting fires and writing Root Cause Analysis documents as we did building product features and talking to customers. It was frustrating, demeaning, and exhausting.
And, it felt hopeless. Nothing we did had a positive impact on our downtime. Unit tests didn't help. Peer review didn't help. Switching technology stacks didn't help. Slowing down the product development life-cycle didn't help. Trying to evolve the product while keeping our production system online became a Sisyphean task.
That is, until we discovered feature flags. Feature flags changed everything. With feature flags, outages and incidents went from a daily occurrence to a weekly occurrence to a rarity.
Feature flags allow code within your application to be dynamically activated and deactivated at runtime. You can think of them as being magical if
statements. But, this analogy is deceptively simple. Feature flags represent nothing short of a revolutionary change in product development. They change how you think about your code; they change how you work with your team; they change how you interact with your customers; and, they create an integrated sense of psychological safety that your current development process is almost certainly lacking.
When I first learned about feature flags, none of this was obvious to me. In fact, my immediate reaction to feature flags was, "I don't need that." Over the last 8 years, however, I've come to understand just how powerful feature flags are. In fact, I can't imagine building another product without using feature flags. They've become as fundamentally necessary to me as are technologies like logs, metrics, and databases.
My goal in this book is to take you on a journey: to educate you about what feature flags are, how they work, and how they have the power to change your entire organization. I want to share all of the knowledge and insight that I've collected over the last 8-years; and, give you—and your team—a way to start operating from a place of love and generosity.
Released 2024-02-24
Table of Contents
- Caveat Emptor
- Of Outages and Incidents
- The Status Quo
- Feature Flags, an Introduction
- Key Terms and Concepts
- Going Deep on Feature Flag Targeting
- The User Experience (UX) of Feature Flag Targeting
- Types of Feature Flags
- Life-Cycle of a Feature Flag
- Use Cases
- Server-Side vs. Client-Side
- Bridging the Sophistication Gap
- Life Without Automated Testing
- Ownership Boundaries
- The Hidden Cost of Feature Flags
- Not Everything Can Be Feature Flagged
- Build vs. Buy
- Track Actions, Not Feature Flag State
- Logs, Metrics, and Feature Flags
- Transforming Your Company Culture
- People Like Us Do Things Like This
- Building Inclusive Products
- An Opinionated Guide to Pull Requests (PRs)
- Removing the Cost of Context Switching
- Measuring Team Productivity
- Increasing Agility With Dynamic Code
- Product Release vs. Marketing Release
- Getting From No to Yes
- What If I Can Only Deploy Every 2 Weeks?
- I Eat, I Sleep, I Feature Flag
Notes
Each chapter in the book is accompanied by a discussion forum URL hosted on www.bennadel.com (the author's blog). Asking questions about the chapter content is encouraged and appreciated.
Recent Changes
2024-03-13: I updated the "Have questions" links to show the URL inline. I'm trying to create a print-friendly version of the book in which links won't work. As such, all primary links need to have visible URLs.
Feature Flags: Transform Your Product Development Workflow