05 Jan

The Product Manager’s Guide to Feature Flags

The Product Manager

You are the king (or queen) of the product.  You’re the engineer, the designer, the business mind, the marketer… in fact, you are a little bit of everything.  You are the product owner, but more importantly, you are the leader.

In his article, Prasad Thammineni (CPO of Choose Energy) outlines the 9 qualities of a great product manager:

  1. Strategic Thinker
    • Understanding the current needs of the product and how it fits with the company’s overall vision
  2. Passion for Products
    • Love what you make, love what you do.
  3. Empathizes with the Customer
    • Respect and understand the customer’s wants and needs.
  4. Interviews Customers
    • Gather insights from your customers, learn their pain points and discover opportunities
  5. Aspires to Build Great Experiences
    • Understands that user experience is paramount for product success
  6. Keeps Score
    • Identify the key metrics and track performance, establish baselines to measure success
  7. Ability to Prioritize
    • Keep things in order, understand what needs to be completed first and what needs to wait.  Use customer feedback for prioritization.
  8. Collaborative Leader
    • Management is a collaborative process, you cannot be dictatorial and expect to inspire your team.
  9. Execution
    • Action-oriented, you get things done.

To embody these 9 principles, you’ll typically see PMs use a myriad of tools to organize teams, manage development, QA, and track benchmarks (JIRA, Aha, Mavenlink, and about 10,000 others).  Every aspect of effective product management seems to come with its own suite of tools, except for two: Customer Empathy and Customer Feedback (Interviews, testing), which I’ll explore in greater depth.

Empathy

As a Product Manager, you must empathize with the needs and wants of your target audience.  As Catherine Shyu (PM at FullContact) writes, “The product manager is responsible for knowing the customer like the back of their hand — their frustrations, their daily thoughts, the context in which they use the product, and their needs.”   It’s one thing to ask your customers for feedback, to interview them during development, and to have them test your product before it’s launched.  It’s another thing to have your customers test your product in a real environment or to provide certain customers with a personalized experience.

A key to empathy is the ability and capacity to take action on feedback.  As Jennifer Winter notes, “Collaborative and creative empathy doesn’t equal sympathy. The goal of empathy is to support and understand the intent and purposes of others, which in turn will help you obtain insightful feedback.”

Genuine Feedback

User interviews, in-person testing, assigning tasks, and conducting basic user research are fundamental to development a successful user experience.  However, they each have a common limitation: artificial feedback.

When we sit down with a user and ask he or she to do something, we have taken that user out of their natural environment by forcing them to unnaturally provide feedback.  The feedback we receive is still valuable, but it’s not purely genuine.

Genuine feedback comes from testing real users in a real environment without them knowing they are being tested.  Imagine being able to test a new feature or experience to 1% of your real users before launching it to the rest? Actions often speak louder than words.  If I rolled out Feature A to 1% of my users with the hypothesis that they will use it and then they don’t.. or they use it once and then never again.. that feedback is deafening.  Now, imagine if you could just roll back Feature A completely and then use interviews/testing to figure out why the feature wasn’t being used, and then roll it out again.

Feature flag driven development enables this genuine feedback loop.

Product Management with Feature Flags

 

Feature Flags & Genuine User Feedback

PMs at Google, Facebook, and Amazon have integrated feature flags into their development cycle. This has enabled them to know how users react to a new feature before it has been released to everyone.  It also helps them be more responsive to feedback without having to leave a ‘bad feature’ out on the market for too long.

Let’s say Facebook wants to release a new timeline feature called Timeline Beta.  This feature reorders timeline stories in order to increase user engagement.  Timeline Beta has gone through all the rigors of internal testing, user interviews, and whole gamut of proper UX research.  For launch, Facebook wraps Timeline Beta in a feature flag, allowing Facebook to have complete control over who sees the feature.  On day 1, they roll out the feature to 0.5% of Facebook users to see how they like it.  On day 2, they see a 20% decline in user engagement for those users who had Timeline Beta.  On day 3, Facebook rolls back Timeline Beta via the feature flag and begins the cycle anew.

iterative_rollout

Imagine if Facebook released Timeline Beta to all of its users without an easy mechanism to revert to the previous version.  They could have seen millions in lost revenue, caused a social media uproar, and turned users away.  This is the power of feature flag driven development: the ability to take full control of who sees your new features and to test those features in a real world environment.

Getting Started with Better Product Management

Integrating feature flags into your development cycle does not require a complete process transformation or months of retraining.  If you’re already practicing continuous delivery, feature flagging can become an integral part of your dev cycle in a week.

While there are many open source feature flag resources, they require some substantial integration effort and internal management – and often do not satisfy the performance demands of an enterprise product.

LaunchDarkly’s feature flags as a service is used by PMs at BEHALF, Auction.com, and CircleCI to manage their feature flag driven development cycles.  If you’d like to learn more, check out LaunchDarkly to see how it works.

Share with:

FacebookTwitterGoogleLinkedInReddit


Justin Baker
Lead Product Designer at LaunchDarkly
As a designer who can code, Justin can empathize with a developer's workflow and design intuitive interfaces to address extremely complex functionality. He has built dozens of user interfaces for high-traffic applications — winning the Best of California IT Design award in 2012. He frequently contributes feature flag management and design theory articles to DZone, Tech.co, and DesignerHub. He holds degrees from UC Davis and USC, and is finishing an MS in Information Design at Northwestern. When he's not making developer's lives easier, he enjoys tennis, computer games, and writing.