Skip to main content

One post tagged with "Case Study"

View All Tags

Case Study: A Feature Flag Seat For Everyone

· 7 min read
Jeff Dwyer
Jeff Dwyer
Prefab Founder & Engineer

Background

Form Health provides medical weight loss experts to help you achieve your goals with a personalized approach backed by science. Form Health recently transitioned from LaunchDarkly to Prefab for their feature flagging needs in: Ruby on Rails, Next.js, Remix.run & React Native. This is their story...

Challenges with Previous Provider: LaunchDarkly

Form Health faced several challenges with LaunchDarkly:

Over-Complexity:

The truth is that many feature flags are quite simple: true/false and perhaps a simple targeting rule. Form Health found the Launch Darkly UX to be confusing and over-complicated, with this complexity negatively impacting the user experience for simple things.

"It just felt very enterprise-focused... it felt very obtuse. If their main selling point is enterprise complexity and our problem is not enterprise complexity, I don't see an upside." - Dan

LaunchDarkly Analytics Trustworthiness:

Trust in the tool and the numbers is critical as well.

There were some issues on the LaunchDarkly side, as far as not being able to trust their, evaluations and their analytics. We had some just really dubious and weird things going on, like flags that we could not find in anywhere in any code base, getting untold numbers, like in the millions, of evaluations that was very nerve wracking for a bit. That turned out to be an issue on their side, - Dan

Cost Issues:

Per seat pricing didn't work for Form Health. It felt bad and wasn't going to scale in a way that felt fair. In the interim, it put pressure on the team not to have seats for everyone.

"Enough is enough with the per seat pricing. If you're delivering real value per person fine. But $20-100 for each of these tools, when people aren't necessarily using it that month... I hate it." - Jeremy

The Decision to Switch & Evaluation

Form Health decided to switch to Prefab after an evaluation process, where they did a proof of concept with a number of other feature flag SaaS vendors.

Evaluation Process

Form Health evaluated 5 different vendors with a mix of hard requirements and desired capabilities.

"Reliabilty is a hard requirement. I want a tool with a transparent architecture that I can trust. And clear thinking about what happens in every failure scenario, no matter how rare. Beyond that, I don't want to pay for crap I don't need, but I am interested in a partner that will grow with us and give us useful capabilities in the future." -Jeremy

Top Contenders

Form Health quickly narrowed to a short-list of options.

"It came down to you guys and DevCycle. The team was far and away most excited by Prefab, so here we are." -Jeremy

DevCycle, and Flagsmith, were the enterprise ones that we said no to. With DevCycle specifically, they put a very, very large emphasis on analytics for their platform, which is cool if you, really want to like, be kind of like married to them, have all of your information flowing through them and be building reports for your superiors and other departments with that. Yeah. That was not what we needed. We had a lot of other tools that essentially accomplished the same thing. - Dan

I think my final takeaway from Devcycle was that they were more of, I wouldn't say like a one size fits all solution, because they picked a lane and they committed themselves to it and they did a really good job with it, but it just like it wasn't providing value in a space that we needed. We just needed like a really, really good feature flag, system. And that just always appealed to me. I'm very much like the VIM philosophy of like, just pick one thing, do it really well. So immediately once I see like, "Hey, we're a feature flag, but we're also a massive analytics engine that's comparable to like other wholesale, like analytics apps that you may already be using", that's a bit of a detractor for me, because I really just need to be able to turn on a boolean for a guy somewhere. That's like the main thing, and I want to do that in the most cost effective and efficient way possible. And so Prefab absolutely won out, in all those cases. - Dan

Benefits of Prefab

The switch to Prefab brought several benefits to Form:

Ease of Use

Doing simple things should be simple. Feature flags can be powerful tools, but most often you "just need to set a boolean for somebody".

"Nobody had to give a tutorial on how to use Prefab. It's very intuitive. There's a button where you would expect it to be that says add flag, and it has all the things you would expect it to do." - Dan

Idiomatic Clients

Feature flag services have a challenge because they need to have SDKs in many languages. It can be tempting to try to automate this away with code generation, but that produces clients that just don't feel right.

"The clients aren't auto-generated crap from some Swagger definition. They were clearly written by someone with a passion for the language." -Jeremy

Customer Support

Prefab and Form Health used a shared Slack connect to communicate throughout the migration process.

"Jeffrey was super cool and continued to be helpful throughout the process." - Dan

VS Code Integration

The Prefab VSCode integration wasn't something Form knew they needed. But once installed it was tough to remember living without it.

"It saved me from having to context switch, which I absolutely hate doing. From a minute-to-minute developer experience standpoint, that is actually huge." - Dan

Migration Experience

The migration from LaunchDarkly to Prefab was straightforward.

Smooth Transition

A process of doing new feature flags in Prefab and then gradually transitioning and verifying old flags worked well.

"It went pretty smoothly on the Prefab side. All net new feature flags started being made through Prefab. We built a wrapper class that could ask Prefab if a flag existed, and if not, find it in LaunchDarkly." - Dan

Unique Use Cases

Form Health had a particularly complex use case due to the complex inter-relationship between patients, schedulers and the medical providers. The optimal solution for them required letting the code in one part of the UI understand the feature flag values for a different user than the logged in user. Form Health was able to solve this with nested React context Providers.

We needed to schedule things in different ways based on algorithms. Prefab’s nested provider feature worked really well for us." -Dan

Final Thoughts

Form Health is very satisfied using Prefab:

"It's a really great experience. If I was starting another project, I would absolutely jump into Prefab." - Dan

Slack integration for feature flags

Form Health’s transition from LaunchDarkly to Prefab was a win all around and shows that the value of a straightforward, cost-effective, and highly functional feature flagging tool, backed by excellent customer support and an intuitive user experience.