Designing Feature Flag Management Tool
The Feature Flags Management Tool (FFM) is a SaaS Infrastructure Common Platform within NorthStar NSX. It wraps code in flags, allowing for runtime toggling of functionality based on user properties. This enhances workflows in an agile style and CI/CD environment.
The NorthStar NSX Feature Flag Management project aims to enhance the user experience, enabling product owners to manage and monitor features while facilitating feature experimentation and delivery by development teams. The vision is to improve in-product feature analysis, suggest service upgrades based on usage patterns, and provide ML-based insights.
My Design Process
As the solo product designer, I took full ownership of the end-to-end deliverables and led the entire design process from conceptualization to delivering.
1) Select Feature Rollout to SaaS Customers - Enable VMware to dynamically enable/ disable features, with granular control over which subset of features to rollout to desired target of customers or deployments in SaaS
2) SaaS vs On-Premise Difference - Enable VMware to control access to SaaS-only features, exposing features only through SaaS while withholding those features from on premise exposure, while leveraging same codebase and release train
3) Internal Developer Productivity - Enable developers to work on the same development branch while maintaining branch stability
4) Error handing and dependency compatibility checks - Enable NorthStar / NSX to identify compatible feature capabilities from the underlying platforms
Research and Discovery
Understanding the people
The Key users for FFM are internal facing roles for VMware as a service provider.
During my research, I interviewed eight VMware employees: three Product Owners, three Site Reliability Engineers, and two Developers. I asked them to share their experiences using the Feature Flags Management Tool (FFM) and highlight any pain points they encountered.
Understanding the products
I conducted a competitive analysis to examine how other products address similar challenges. I selected five competitive products and VMware CPS (Internal tool) to compare their user flows and studied their well-established design systems to understand how to effectively deliver messages within the product.
- Automated Entry: Introduce predefined fields to reduce manual input and save time.
- Bundle Operation: Enable feature flags to control other flags, simplifying scalability.
- Dependency Creation: Allow for flag dependencies to ensure flags are only active under specific conditions.
- Telemetry and Usage Tracking: Implement a feature to track and evaluate flag usage for valuable insights.
- Streamlined Troubleshooting: Simplify troubleshooting steps and provide clear error messages for quicker resolution.
Higher Level Breakdown
Increase product releases and engineering velocity
Enable businesses to offer tiered levels of functionality
Provides more flexibility for the user experience
Northstar Product Owner
1. The PO create a flag with three variants going to parallel market.
2. Rollout the three versions and compare the results of completion rate, accuracy and cancellation
- See how many times user come and modify the policies
- See where they made the changes
3. ML based recommendation on which variation is the strongest.
- Slick to see the real statistics behind them
- Rollback the other flags
1. The SRE discover that the latest release of an application they support has a severe latency problem due to an issue with a new networking feature in the app.
2. If that feature is controlled via a feature flag, the SRE can remediate the issue very quickly by simply switching it off. and don’t have to wait for developers to fix the underlying code issue before they can solve the problem for users.
3. Leverage feature flags as a way of supporting the core goal: Maximizing reliability.
High-level statistics of all flags
Multi-stage flag creation
Insight & Analytics on one specific flag
Recommendation & Actionable Insights
Designing an Enterprise Product:
- Understanding the users is the key to starting a great product.
- For enterprise products, minimize user interaction with the UI. The less interaction, the better.
- Constant feedback, critiques, and iterations are important parts of the process.
User Cases and Presentations:
- Constructing detailed user story can help tell the story in a more systematic way during presentations.
- Structure for presentations: Background story - Challenges - Solution - Design.
Working in a Multidisciplinary Team:
- Ability to work in a multidisciplinary team.
- Worked with designers, engineers, SRE (Site Reliability Engineers), and PMs (Product Managers) to understand their perspectives.