Paula is a software engineer at LaunchDarkly. She worked on prototyping the first version of scheduled flag changes and is currently working on bringing Feature Workflows to LaunchDarkly. Outside of work, she can most commonly be found crocheting amigurumi, finishing wood furniture, or frying up some plantains.
(upbeat music) - Hi I'm Paula. I'm a software engineer at LaunchDarkly, and I'm super excited to share my talk today about a set of new features that my team has been building. And consequently, I've had really early access to using. I'm gonna speak about The. Power of Feature Workflows. So at this point, we all understand the true benefits of feature flagging our software. Feature flags are a powerful and a very responsive way to control software, and they become baked into your development life cycle and your product life cycle. But that product journey from first creating a feature flag to turning it on for all of your users, that can vary wildly. It's often a really windy journey with a lot of steps in between. And we spoke with some of our customers and we found out that like us, the release strategy for rolling out features might and often does look like this. For our larger customers for example, we might see a slow rollout to internal teams just for testing. This is followed by waiting a few days to ensure that there are no bugs, checking those APM tools. And if it satisfies the conversion metrics, then seek approval from two team leads, before turning it on for everybody. While LaunchDarkly does support each individual step of this, we want to make it easier for our customers to define these release workflows that they've identified work best for them, all within LaunchDarkly. So I'm happy to introduce the thing that my team has been tinkering with, which is Feature Workflows. This comprises three new core capabilities that I'm gonna speak about. And I believe that these represent and are going to support the future of Feature Management altogether. These have helped the teams at LaunchDarkly, and soon they're gonna help your team. So they're gonna help to take those processes, that windy journey from on to off that you've determined are the best practices for flag use within your team. And help you manage them all within LaunchDarkly and driven through automated properties. So let's start by exploring each of these individually. Starting with scheduled changes, this has been really fun to work on. This has unlocked the possibility to plan and define your feature rollouts in LaunchDarkly way ahead of time. So this is allowing product teams to schedule their feature releases for a specific date and time, and that not only betters collaboration with go-to-market functions, but it also is providing peace of mind. It's also been really great for managing temporary privilege escalations for debugging or support purposes. It should come as no surprise, right? That at LaunchDarkly we use LaunchDarkly. So I'm gonna give you an example of how we at LaunchDarkly have leveraged the ability to schedule flag targeting changes. So before we had this feature, our Sales and Support team would ask us to enable certain features, maybe through Slack, right? This is an actual Slack. In this case, they're asking for an Experimentation trial for a customer for 30 days. They would then need to create manual reminders to enable and disable these trials for customers, but reminders are subject to human error, and they can be forgotten or overlooked. But however, with the ability to schedule flag targeting changes, they can now do these things with ease. So if you use LaunchDarkly, you might recognize this last screenshot as an LD audit log entry. And here we're confirming that a trial has successfully expired on the intended date. And that's one of the many use cases that we've discovered has been really helpful for us. The next thing that I wanna talk about is really exciting is approval requests. So one of the things that's really amazingly powerful about feature flags, right? Is that they help you to push real time updates to your app. It's great to have that responsiveness, but it's maybe a little nerve wracking when that change is to production. And as more and more teams adopt LaunchDarkly within an organization, it becomes increasingly important to ensure that best practices and security practices are being followed. So we're building approval workflows that allow you to request or require even approvals on a per flag or per environment basis. This helps teams kind of build confidence in the changes that they're making by getting that peer feedback. And it can be applied to market environments, critical environments in production and help you with that SOC-2, FedRAMP compliance where significant change management controls need to be in place. We understand also that a lot of our customers already have maybe some of these controls in place, they might already be using tools. So we will be supporting routing change requests through third party apps, your team may already be using for example, ServiceNow or Jira. So we just started to develop this at LaunchDarkly in order to ensure that breaking changes weren't being made to our production environments, we were previously relying solely on limited roles and permissions. This means adding a product tag to a flag, and here you have several Slack requests with people requesting to make certain changes, or have that product tag added so that they can make those changes. However with approval workflows in place, changes can be looked over for approval. And that means our team is collaborating with ease of mind while still being compliant with all those best security practices. So for example our awesome PMs here can suggest making a change to a critical flag in production without actually making the change until approval has been received. Alright the final piece that I'm excited to share, is Flag Triggers. The simplest way to kind of describe this, is to ask yourself if you've ever wondered, what if LaunchDarkly could automatically do X when Y happens? So with these metric checks, these flag triggers, you can set up threshold checks for any metric that you care about, whether that's an experiment in LaunchDarkly, or an alert with an APM tool. And once the threshold is crossed, the specified tag action automatically takes place. This could mean automatically turning a feature off, if you're seeing too many 500 errors, this can mean automatically changing the default variation for a flag to be the one with the highest conversion rate. Basically this helps you to act quickly, to act automatically based off of the metrics that you've identified really matter. And back to LaunchDarkly. Again we're on customers, we use our own experimentation feature. So here's an example of a numeric conversion experiment that we set up to track how much slower our app would be, if we added pagination to the landing page. Now while the experiment successfully declared a winner pretty soon we went an entire week without turning it on for a hundred percent of our users because no one realized the experiment metric had been reached, right? In cases like these, it'd be awesome to have an experiment automatically roll out the winning variation for a hundred percent of our users, and avoid Slacks where people are asking is there a reason we haven't enabled this to a hundred percent? All of this can be done automatically. So now we've seen these building blocks and how they can help improve your processes individually and how they've helped at LaunchDarkly. And of course you can customize them yourself, right? Like everything at LaunchDarkly, we are building API first, so you can build your own integrations on top of these capabilities. But they're also built to compose. You can use each of these capabilities in isolation to aid in that journey from off to on, or you can combine them seamlessly to create incredibly powerful custom workflows that involve scheduling approvals, metric checks. And that's not all, you can combine them, right? But also once they're combined, you can reuse them. This means you can take that journey from off to on, right? Those best practices that you've worked to identify with your team and standardized them into a release process, that's customized to your team's specific needs. And by reusing you're ensuring consistency for every team, right? That's the power of Feature Workflows. Thank you so much for listening. (upbeat music)