
At Prefect, our users' voice is important to us. Our products are built on our users' valuable feedback, and we embrace an iterative process of constant improvement. To deliver on this goal, we reflected on our tools and processes, and we identified a bottleneck: our feature flags.
Feature flagging is important for many reasons. It allows our developers to decouple code deployments, reduce risks, enable faster development cycles, and supports a feedback loop by collaborating with key partners in validating new features before releasing them to the general public.
By improving our feature flagging process, we are able to meet our goals:
As our users and product scope grew exponentially, our initial approach to feature flagging was an in-house solution in order to meet our needs and fulfill our deployment goals.
There were several issues to this approach:
Below was our initial feature flag process using our in-house solution:

Today, we've migrated our feature flagging tooling to Launch Darkly. Launch Darkly is a platform where organizations can create projects, and within those projects, they can create feature flags on demand using the Launch Darkly web app.
Additionally, developers can group individual users into segments, which can then be used as targeted groups under a feature flag deployment rule.
Lastly, within a feature flag, you can create different environments per flag, and create targeting rules on how the feature flag should be released depending on the environment.
For our use case, you'll see that we first deploy a feature flag into production, and only target our Internal Prefect Users Segment. Once the feature is an MVP, we enable the feature to our external partners, where we collaborate and iterate based on the provided feedback. This helps us validate if we're building a strong foundation before fully releasing a feature to all users. Once we are feature complete, we then enable the feature flag to all users and begin swiftly cleaning up the feature flag - this step only happens once the release has stabilized.
Below is our current feature flag workflow:

We are extremely satisfied with our migration to Launch Darkly. We are able to closely collaborate with our users, and together, build versatile features that make our product valuable for you to use. This migration is one of the many things that we are re-evaluating so that we can build faster and more strategically. If you would like to partner with us, we invite you to join our community today.








