PurePerformance - How AI is shaping Flag-Driven Development with Todd Baert

Episode Date: September 28, 2026

Feature flagging is almost as old as software engineering – but only since the increased adoption of AIDLC (AI- Delivery Life Cycle) it has really taking off like AI has taken off as the default way... to generate code!In this episode we welcome back Todd Baert, Maintainer of OpenFeature, and learn about the many different use cases of Feature Flagging. Todd explains how feature flagging evolved from simple variables that pivot code execution towards dynamic evaluations that are supported by modern frameworks like OpenFeature and feature flag management systems that are based on that cloud native standard.Tune in and learn what the biggest competitors of OpenFeature are, why feature flagging requires less thinking during development than you think and how it mitigates the risk of AI generated code having negative impact on your systems resiliency!LinksTodd’s LinkedIn: https://www.linkedin.com/in/toddbaert/OpenFeature: https://openfeature.dev/Introducing OpenFeature Podcast: https://www.spreaker.com/episode/introducing-openfeature-stepping-into-the-footsteps-of-opentelemetry-with-mike-beemer-and-todd-baert--50043067

Transcript
Discussion (0)
Starting point is 00:00:00 It's time for pure performance. Get your stopwatches ready. It's time for Pure Performance with Andy Grabner and Brian Wilson. Hello everybody and welcome to another episode of Pure Performance. My name is Brian Wilson. And as always I have with me, my fantastic, wonderful flag-waving co-host, Andy Grabner. Hello, Andy Grabner. How are you doing today?
Starting point is 00:00:39 Oh, you know what? Is this podcast, is this episode airing in October? It is. So that means you might be Andy Candy Grabner now. All right. Let me think. Let me think. Actually, no, I think it's the last episode in September.
Starting point is 00:00:55 Oh, okay, okay. Yeah. That's his Halloween name for grabbing candy. Yeah. No, no candy for me in September. Yeah, all good. I got three flags with me. Why do I have three flags?
Starting point is 00:01:09 Because today's topic magically happens to be about flags, not the flags that we wave in front of in our yard. or when there's a holiday, but the flags we put into our software. But the question is, why do we put flakes? Boom, boom. The question is, why don't we put flakes in our software? Brian, do you know?
Starting point is 00:01:29 So that we know what country, the lines, the software belongs to? Maybe we not. So we can control, so we can control different features and turn things on and off. Ah, look at that. Maybe we should ask somebody
Starting point is 00:01:45 that really knows this stuff. I think that's a great idea. It's a great idea. We are happy to have back on the Pure Performance Podcast, Todd. Todd, you look like you have aged. At least your hair just this away. Yeah, I've definitely aged since the last time I was on here. And my hair is probably aged three or four times as rapidly.
Starting point is 00:02:12 But your hair is at least much thicker than mine. because I age too, but my hair doesn't turn gray because there's just some little hair left that could turn gray. Yeah, I probably have more hair since the last time I was here, but it's definitely gone gray or no question. Hey, Todd, back in 2022, which is four years ago, we had a session that was called Introducing Open Feature, stepping into the footsteps of Open Telemetry with you and Mike. And we also had another session on. feature flagging with Ben, Ben Aromage from Flexsmith about a year and a half ago. So this is not the first time we talk about feature flagging and open feature,
Starting point is 00:02:57 but I'm sure it's the first time that some of our listeners hear about feature flagging and open feature. And so if you could do me the favor and maybe just give us a quick pitch on what is feature flagging in software engineering? Yeah. Yeah, the people you mentioned actually are hugely involved in the space and in the project, the Open Feature Project. To answer your question, basically feature flags are putting a pivot point more or less in your code so you can control how it behaves remotely and dynamically. And this is a practice that probably any software engineers familiar with SREs, maybe even product managers, they're going to be familiar with the idea as well. And like the basic kind of iteration of it is just, yeah, like let's put a pivot point in the code, maybe control it with some kind of environment variable.
Starting point is 00:03:54 And depending on how that's set, the code is going to behave differently. That's like the most naive version. I think everybody's done something like that. If you've done any software engineering in the real world, you have to have that kind of dynamism. but things can get much more interesting, right? So we can have flags of different types. Where things get a little bit more mature is where not only can you change the behavior of your software, but you can change it at runtime.
Starting point is 00:04:23 So an environment variable, it's read once at startup and the application for the rest of its lifetime behaves one way or another. But being able to say without deploying the software, without changing a Kubernetes config map or something like that, change the behavior. That's very powerful because that allows you to, you know, open circuit breakers, cut off access to a vulnerable segment of code, perhaps. So you can see how that is immediately more valuable than something as naive as an environment variable.
Starting point is 00:04:58 And then the next level is something we like to call dynamic evaluation. So not just dynamically changing flags, but using contextual information to control that pivot. So things like, well, you were talking about flags, flags of countries earlier, things like geographic and jurisdictional requirements. Maybe I want to turn something on for everybody, except for people in a particular legal jurisdiction,
Starting point is 00:05:26 because there's some ongoing GDPR compliance thing or something like that. So you can easily create targeting rules that are outsized, side of your application that could specify things like this, say like allow users who are from Ireland only, or allow users who are of this age group.
Starting point is 00:05:46 So anything you know about the user, about the request, whether it's technical or personal, you can use that as a basis for a flagging decision in a mature feature flagging platform. And that's really where a lot of the power comes from for devs and for SREs and for
Starting point is 00:06:02 PMS. Yeah. So Todd, if somebody that listens in it might not be familiar with software engineering, obviously this still means actually a little bit of, I guess, more heads-up thought work and implementation work because these features and these changes of behavior, obviously, don't just magically happen because you put in a feature flag. That means you obviously need to build that feature, but you kind of hide it behind the flag and then you can dynamically, as you said, turn it on and off. I just wanted to obviously, you know, make sure that people,
Starting point is 00:06:33 also understand. And for me, it feels almost like, from an engineering perspective, you need to put more thought in on how you put these features into your code, but maybe at the time of deploying the code that contains this new code, that it's still not enabled or released. So I'm just thinking about the whole mechanism of software delivery. Obviously, that has completely changed, right? Because you're deploying something that is not really,
Starting point is 00:07:03 least, meaning it's behind the flag, and therefore it's not enabled yet. Yes, I would say it allows you a lot more free range, but I think at development time, it actually means you have to think a lot less. And I'll tell you why that is. So when I, this is standard now in Google, in Cloudflare, for example, is another one. And we're starting to do the same thing at Dimetrace, where every feature just gets a flag. What I like to say to people is the developer is deferring and delegating the decision of if that flag is going to be on or off to later. I don't think about that when I'm writing. I don't think about who's going to see this when.
Starting point is 00:07:47 I don't think about the rules that govern this release at all when I write it. I just put my feature behind a flag. And then later, an SRE, a PM, whatever, or maybe me is going to, before we release it, say, this is going to be on for so-and-so. maybe we're going to do a scheduled rollout, maybe we're just going to turn it on. The only decision I make when I write the flag is what the default is. So I choose a default, and then I'm delegating and deferring that decision to later. That's really the beauty of the whole thing is you don't have to bake in at development time, any kind of jurisdictional rules or, you know, like I said, like age-gating rules or subscription rules, even.
Starting point is 00:08:27 All of that can be deferred. Cool. I never thought about this this way. So is this kind of like, if I think back 20, 30 years ago, when we talked about test-driven development, you basically wrote the test first and then the code. In this case, you always start with the flag. So it's flag-driven development. So every feature-driven development,
Starting point is 00:08:47 feature-flag-driven development, that means every feature always has to be baked into a feature that can be turned on or off with a flag. I mean, this makes a lot of sense. And I really, what you also just said is really, cool because the developer who builds a feature does not need to make the decision when or for whom this feature will be available because that's decoupled on the rule set that you have behind the scenes where you say hey you know we've developed this but it will only be needed during their
Starting point is 00:09:20 black Friday holiday campaign or something like that right and I can and maybe only for certain states in the US or maybe for certain countries yeah yeah absolutely. Like, being somebody who has written enterprise software for a long time, it adds a lot of cognitive complexity to have to be thinking about releasing as you're actually writing code. And so I think if you just go into this flag-driven development paradigm as you're calling it, which I think is a great name, then you basically just remove that from your mental model. And instead you just focus on writing the code, just put the flags in at the right pivot points, which is a really generally a pretty easy decision to make.
Starting point is 00:10:02 And then document it. And then like, yeah, you say like here's all the flags. Here's my manifest of flags for this feature. We can control them in a complex way or make it really simple and just turn them all on. Whatever it is, it's as the business and release dictates later down the road, make those decisions. And I also, I had a conversation last night. So we had a little achievement celebration here in the Dandreys office. and I talk with one of our colleagues,
Starting point is 00:10:29 and he said it took him a long, long time to understand really the power of feature flagging, feature flag management and open feature. Because he said back in the earlier days, at his career at Dinotrace, we had feature flags, but they were always very granular. Sorry, not granular, but they're very broad. So you turned on a feature for a complete cluster
Starting point is 00:10:48 or for a complete tenant. You had no option to say for that particular user that opted in to do a certain thing or that user that had a certain capability already turned on and then the other feature also made sense. And he said now that you can do this, that fine grain, that dynamic, I think you talk about evaluations where a feature flag can be evaluated based on the conditions we have not only about the software that runs, but also about the end user, then this gives you so much more flexibility. Yeah, absolutely. Yeah, I think one of the things that really empowers that
Starting point is 00:11:25 kind of delayed and robust decision making you're talking about. And this is where you do need to put a little bit of forethought in it, but it's a one-time cost, is what ambient data do you want to feed into the evaluations? So you make this kind of decision usually once or twice. And I mean, as you mature your application, you might add more data there. But basically, like, into the rules engine, you feed all of this contextual data. So request specific data, data about where the server is running, the geof-the-the-geor of users that serves, that kind of thing.
Starting point is 00:11:57 You feed that in. But as long as you have that information, you can make any of those decisions later. Cool. So that means to sum it up, if the three of us would have a great idea. We have built a software company. We have already some features.
Starting point is 00:12:11 I mean, we have five new features ideas. We can build these five new features. We put them all behind the flag because that's what we do by default. And then we can individually decide or have somebody else decide for us. when is the right time to make these features available. We even have the power to say, let's not turn it on for everyone because we want to first want to experiment. We want to give it to maybe some users that are friendlier to us, that want to give us feedback and don't just run away if something breaks because this is also something. New features can also break experiences.
Starting point is 00:12:48 So we want to contain the blast radius. Yeah, or our most excited users who are always excited to try, latest thing and like they don't mind if it if it maybe goes wrong like yeah that's that's a real use case that we see a lot of we have enthusiastic data trace customers right yeah so so some of it sounds like um there's some semantics just in terms of clearing up the the concept right because i guess some confusion coming because there's also things like blue green testing and all that right i would think blue green testing is a methodology that can be controlled with feature flex might be a good way to say that. Would you say that's a good?
Starting point is 00:13:26 It could. I'd say that's true. I get this question a lot from SREs. So I'm going to, I'm going to use this opportunity to like give my perhaps controversial take. I think bluegreen solves a different problem. So blue green most of the time when I hear people talk about it, I think it's it's trying to do something different. So blue green is in my experience, usually making an assertion that an implicit assertion that two binaries behave in the same way, when we don't maybe know that. So that's one reason, one of the probably the main reasons that people use blue-green is like, I did a big refactor and I think this should behave the same, but I'm not entirely confident. So what I'm going to do is deploy this new thing
Starting point is 00:14:13 and I'm going to slowly shift traffic from blue to green. And if everything looks good, that's fine. But that's a fundamentally different thing than saying, I want to target a specific user demographic, which, as in the example you just gave, has nothing to do with a new binary. We're not talking about anything about a different binary or different running code. We're talking about known ways we know our code can behave differently
Starting point is 00:14:37 and then controlling those. So I think that's probably the thing I would say is fundamentally different between blue-green and feature flagging. But yes, to your point, you could use feature flags to do blue-green and people have and do all the time. Wouldn't you use blue-green though for the deployment part and not the release part? So coming back to the example earlier, we have existing software that is running, and now we have a new software bundle, but that includes five new features.
Starting point is 00:15:04 They're all by default turned off because they're behind a feature flag. We still need to get this code auto running, and we assume we have put everything behind a feature flag, and everything will be just working as before if they're turned off, but we don't know. So this is why you can also do a blue-green deployment, then slowly shift traffic to validate. Everything still runs stable. Hopefully it does, because then you have code running where you can turn on these feature flags.
Starting point is 00:15:31 Exactly. And 100%. That's exactly how I see it. So the implicit assertion in that release, right, is what you said. We assume these things are going to behave different, or going to behave the same. So that's where blue-green is really the most valuable,
Starting point is 00:15:44 but it's fundamentally different from feature flags. Or at least maybe I would say blue-green is like a subset of all the things you can do with feature flags. Hey, Todd, you mentioned that obviously the practice of feature flagging is nothing new, right? I mean, the idea behind feature flagging is nothing new, right? I remember my early days, I had environment variables that I put on the process, and then when I needed to change something, you know, stop the process, changing that environment variable, launch it again.
Starting point is 00:16:15 Obviously, this is the, it's very static, but it basically got the same thing. And I think, as you mentioned earlier, some people implemented it with environment variables. Some people may have implemented their own version of feature flex and controlling them by storing things in the database and reading it from a database. And now my question is open feature.
Starting point is 00:16:40 We've introduced open feature four years ago in the podcast. We unfortunately forgot in the very beginning of this podcast to give you more time to talk about your role in feature flagging. So let me give you the opportunity now to talk about open feature, your role in open feature, and why open feature is really, was really needed and why it's taking off and how it's currently, what's the status of it right now. Sure, yeah. So I think the project is about, it might be approaching about five years old at this point.
Starting point is 00:17:15 But it basically is kind of, yeah, and it was started by kind of a consortium of different interested parties. A couple of people from Dinah Trace, myself and Mike Beamer, some folks from eBay, some folks from Launch Darkly, who's a, I would say, like, the incumbent vendor in the space, yeah, and a few others. And so we basically saw that, like you're saying, there was this great thing somebody from Lash Darkly said early in the process. They were like, listen, our biggest competition is homegrown solutions. And that's a really interesting thing to note.
Starting point is 00:17:59 Like, that's an interesting problem space. And so the idea was like, let's try and develop a standard to make it easier for people to use their homegrown solution. and also to migrate to vendors if they want to. Because vendors see the SDKs. So these are the things that you put in your code to actually do these feature flag evaluations. They mostly see them as commodities. They need to maintain a whole bunch of them for a whole bunch of different languages.
Starting point is 00:18:28 That's a huge development burden. And it requires a lot of people who really know the ergonomics of the language that they're using. So why not kind of do some of the stuff that O-Tel has done and kind of just say, like, let's develop these as a community of people who use feature flags, and then control the feature flags, which is where all these vendors, you know, where they have their specific strengths and things that they're good at, the backends. Like, let's just front those backends with a common SDK. So that was like the start of open feature.
Starting point is 00:19:04 And it exploded. So everybody really got on board with that idea quite rapidly. We have a huge buy-in. I mean, and now there's open-feature native offerings on even some hyperscalers, like GCP has one. And basically every vendor in the space is fully open-feature compatible. Some are even open-feature native, so they don't have their own SDKs at all. They just rely on you to use open-feature, which is how our new Dinotris offering works as well. Got to drop that in there.
Starting point is 00:19:40 Yeah, so that's basically how the project started. And then it kind of got even bigger. So we have a whole bunch of really cool integrations now. Native integrations with Kubernetes. We have an operator so you can control your flags as custom resources. We have native integrations with open telemetry. We've contributed to the open telemetry standards for future flags. Tons of vendors have what's called OFREP compatibility.
Starting point is 00:20:08 So you can actually use our line. protocol to evaluate your flags, the line protocol and Rest API defined by Open Feature. And what a lot of that means, really, is you essentially get for free all of this collective momentum. You know, if one vendor wants to write an integration with Snowflake, so you can see all of your flag evaluations there, that vendor can do that. And then 10 other vendors have to do the same thing. If you're using Open feature, the integration is written once and then every vendor benefits. So you can see how this benefits vendors.
Starting point is 00:20:46 Obviously benefits end users because they have full portability. They're not locked into anything anymore. So it's really just like a win-win. I think that's how I would summarize the whole idea of the project. Yeah. And I think back when we had the podcast four years ago, we also compared it with the open telemetry moment or kind of like a parallel where open telemetry was standardizing the way you instrument applications, making it easier for the
Starting point is 00:21:15 end user in case they want to switch and opening up an opportunity for vendors to focus on what to do with the data and not having to implement each of them, their own agent and maintaining it, but basically putting this into a standard. Yeah, it's very similar. And we've seen to take off. So we're now the biggest SDK over. vendors in terms of downloads. So Open Future is now the dominant SDK out there in the real world, which I'm quite happy to report. Cool. What are the numbers? What do we talk about? The last time I checked, the CNCF has like an aggregate download count. So it's 25 million downloads a month across all of our different SDKs. JavaScript is, you mean, that's
Starting point is 00:22:09 publicly available on MPM. We have about six or seven million downloads of our JavaScript core bits. So that's for server and web workloads, which is, yeah, like I said, in the last couple of years really taken off. I think about, if I can recall correctly, about a year ago, we had about 10% of both of those numbers. So impressive. Hey, and because you mentioned JavaScript, that means this is heavily used on the front end.
Starting point is 00:22:39 more so than on the back end or what do you see? Is there a parody or? I say overall it's 50-50. Yeah, I'd say it's 50-50. What I would say is generally users bias in one direction. So some users do a lot of the stuff on the server for various reasons. It means that you have to expose less to your users. If you're really secretive about your features,
Starting point is 00:23:03 it's much easier to do that on the server. And then some people really, don't care, they can, they don't mind kind of exposing that there is some of these flags in their code to their end users, because obviously if you're doing evaluation on the client, there is some communication happening that people can see that's showing that flags are being evaluated. So some people favor that. It really depends on your specific business requirements. One last question on Open Feature and the adoption, because I've seen this with Open Telemetry, that vendors of SDKs, vendors of runtimes,
Starting point is 00:23:41 SaaS vendors, they basically pre-instrument everything with Open Telemetry so that if you're using their service, if you're building on top of their runtime, then you also get the benefits of good instrumentation. Have you seen this with Open Feature as well? So are there maybe frameworks and libraries and runtimes that I would use as a software engineer
Starting point is 00:24:03 to build my software on top that already come with open feature support, meaning I can change certain behaviors dynamically through open feature? Rucel has some built-in open feature support, for instance, yeah. Yeah, and GCP, like I was mentioning earlier, they have some, it's a bit higher level,
Starting point is 00:24:22 but yeah, they have some built-in support. You would still need to install the SDK yourself, but yeah, it's something like what you're saying. Cool. And I've said one more question, one more use case question. Do you see this more for features? being used? Like really, let's make a feature available, or do you also see this for configuration
Starting point is 00:24:41 changes? One classical example would be the size of a thread pool, connection pool sizes, buffer sizes. Do you see this use case as well where you can then dynamically adjust it? Definitely, definitely. The challenge with those is like you need to build your applications such that they can actually reinitialize those things, right? So there's some, There's some challenges associated with doing that, but absolutely 100% we see that all the time. Cool. So now my next question is,
Starting point is 00:25:17 and this is really why I was so excited to talk about this with you today, we talked about, first of all, we gave an intro about what is feature flagging, hopefully everybody understands this now, why feature flags into the power it brings us. Then we talked about open feature, how it's been taken off and everybody's adopting it. the next thing is when I think about rapidly developing new features behind feature flags in
Starting point is 00:25:42 26 I don't think that most of these features are written by humans but they're most likely written by an AI that is obviously directed by humans but how is feature flagging what's the role of feature flagging in in an AI software development lifecycle what do you see uh I mean, to put it in a nutshell, huge, I would say it's been one of the reasons why the project has become so popular so quickly even in the last year. One is because AIs love standards. They love things that are well specified and can be easily reasoned about and are super well documented, and that's basically how the whole Open feature SDK works. So it's very easy and consistent to use across languages and implementations.
Starting point is 00:26:39 And we kind of take all these different vendors and put them into one API. But I think the bigger point that you're asking is like fundamentally people have a different trust relationship with code and the code that they're running, the code that they're writing, that they're modifying in the last few years that they have in the past. And I think that makes feature flags even more important. So perhaps there's a risk that there could be, you know, PRs have gotten bigger. I think everybody, at least everybody I talk to, that's something they're saying.
Starting point is 00:27:16 PRs have gotten bigger. And maybe to put a really fine point on it, people are writing code faster than it's being reviewed, at least with high quality. And I think that's just an industry chat. challenge. So we're all trying to get better reviewing. We're trying to use AI to help us review. But this all comes down to safety and trust, right? And so if you can know confidently that, well, there's a lot of new code here and it's been reviewed, but I'm still nervous that it was written a lot by a bot. I can at least put it behind a feature flag and control it. I can control its rollout. I can control the blast radius. I can turn it off and revert it. I can change the behavior. I can keep the old implement. even and just switch it on or off. And then if something does go wrong in production,
Starting point is 00:28:07 I don't have to wait for a whole other deployment cycle or like maintain a release branch. And I mean, that's a big part of this too, is like how this simplifies development so you can consider it trunk-based, right? Because the whole point of release branches is I have this thing in parallel over here and I don't want it to be in the main line yet. So I have to keep this separate code branch running. Well, if you can just keep the feature in Maine but off, it solves that. So I think really what feature flags allow us to do from a development perspective is mitigate some of the trust and speed challenges that we're seeing in the new world that is AI-assisted and agentic development.
Starting point is 00:28:55 So I would say that. I would say that's probably the biggest, most important thing. Do you have skills available for the different coding agents that people can show the developers can just add to their projects that basically instruct coding agents have for every new feature that you build, make sure it's behind the feature flag? We do have some skills available. Yeah, and that's certainly something you can leverage.
Starting point is 00:29:26 We also have skills for like migrating to Open Feature if you're using another SDK. But honestly, like one of the things that's that's so good about Open Feature is it's ubiquity, like I was saying. So you can just say like, hey, agent, add Open Feature and AsinFlex this and it will know how to do it. It's it's so common and ubiquitous at this point that even like even some older models are well familiar with it. Now, for me, my point was, I understand I can ask the AI to edit behind the feature flag,
Starting point is 00:30:01 but I don't want to ask the AI. The AI should be smart enough to know in modern software engineering, every new feature by default is behind the feature flag because we're doing flag-driven development. So that's why I wonder, I wonder if there are best practices around this, so that I have no way around it. Yeah, we do, we do have some skills in that direction. or something that you can add to your agent's MD to get this stuff going. And it can do things like, yeah, evaluate what new context attributes who might need.
Starting point is 00:30:36 Like I was saying before, like you want to make sure you have the right ambient context so that you can make those decisions right. Those are the things that might be a little bit trickier than just putting the flag in the right place. But yeah, absolutely. Agents, agent harnesses can benefit really from like those kinds of skills. Honestly, I think it's something that we need to get better at publishing standards for because we are kind of like thought leadership in the space. So I think it's something we're going to keep revisiting as we support people who are using AI
Starting point is 00:31:11 to develop feature flight code for sure. Do you also see, because you earlier mentioned, coming back to our company, We have five new features. We release them behind a feature flag, and then we make decisions based on external factors, a certain time, a certain legal requirement. But it's basically the humans making the decisions when to turn a feature flag on,
Starting point is 00:31:35 when to turn it off again, because maybe we see bad behavior or maybe that marketing campaign is over and we sold all the products and then we turn it off. Do you see that this is completely automated in the future with AI, that AI controls, also the rollout decision? And then also maybe they're making a decision when it's time to pull it back.
Starting point is 00:31:59 Definitely. I mean, completely, really that's, I think, more of a policy issue. But is it technically possible and is it desirable in a lot of situations? I think absolutely. And we're definitely seeing that happening. And this is part of the reason why I think Dinotrace is even interested in feature flagging, as well as a lot of other telemetry vendors. there's a, yeah, like, we're seeing a lot of telemetry vendors in the space actually come out with open feature native feature flagging because I think that closes the gap that you're kind of talking about, right?
Starting point is 00:32:32 So it's one thing to say a human can turn the feature on and off, but if you have rich telemetry data about the feature flag evaluation, so is this particular variant? And when I say variant, I mean like this particular outcome of a flag evaluation, right? So it could be on or off or it could be one of seven different values, whatever it is. Is this particular variant associated with increased error rates? Is it associated with increased rage clicks if it's a UI and user frustration? These are all things that if you have rich telemetry, you can feed back into an AI, an AI ops agent, for instance, and you can have them govern the rollout based on real data. And I think this is huge.
Starting point is 00:33:18 This is another place where we have a lot of opportunity to instill confidence in people. So I see, I would love to see a world where basically no flag is just, maybe few flags are just turned on in a quote unquote dumb way by just turning the flag, but saying like, okay, I think we're ready to turn this on. Let's turn it on, but let's have it monitored. And so every feature becomes basically a rollout that's governed by some intelligent telemetry and some observability AI, actually making sure that the rollout's going smoothly. I imagine from getting on board with that point of view, we'll probably see more best practices coming out as there's more adoption, right? but a starting point would be find some safe flags that you can put in the hands of the AI, make sure everything looks good, make sure it's operating okay, not flipping flags at random, right?
Starting point is 00:34:19 But the idea would be you can control which ones it has access to, I would hope, right? And then as you get more comfortable and get the policy set, then start rolling that out more and more. Has there been any sort of best practices for this written up yet, or is it more an exploratory phase or experimental phase at this point with giving governance to the AI? I'd say it's experimental. I mean, I'm sure there's people who are doing it, but it's experimental. I mean, humans driving a similar sort of process is something that's decently well explored. But yeah, having it being like fully agentic is really a different thing because when humans have to manage this process, the cost to doing it is very different, right?
Starting point is 00:35:08 So you have to have somebody who's actually making these intelligent decisions, looking at a dashboard, looking at reporting, and so you can't do it all the time because there's an inherent human cost. So I think, yeah, cost and time, that whole decision changes when we have AI models that can kind of do this for us. I imagine if you do this agentically, you're going to have the ability to add in flags for a lot more things that you wouldn't have added in previously
Starting point is 00:35:39 because the effort to make a decision for a human to turn those on or off might not be worth it. But if they're smaller maintenance things or this or that and if the AI is going to handle it, that's going to give you a lot more flexibility on really fine-tuning your application throughout the course of the day or time periods or when things are occurring. So it's really a great prospect, right? Because there's all these things you might not have thought of because I'm not going to, I don't want to deal with that manually. Yeah, it's shifted the cost equation, right?
Starting point is 00:36:11 So it's shifted the metric or the heuristic that you run in your head about whether or not you want to have a flag here and then whether or not you want to manage it yourself, whether or not you want to do some kind of roll it versus just turn it on or do an experiment with it. Like all of those decisions are now impacted by the fact that we have these like pretty intelligent models that are really, really good at gathering lots of data and then making decisions. Todd, one more question on the lifecycle of software with a feature or a flag development style. That means for me, this sounds like over the course of time I will have more and more and more features and feature flags piling up. Is there a consensus now on what happens with those features that will stay?
Starting point is 00:37:02 Will they then just be removed, meaning these control blocks around it will be removed or the code will just be there? But the feature flag management solution basically doesn't allow you to change it anymore. Is there any? So my question, basic, is code cleanup? Or is it you just prevent to turn it off? Yeah, I think the question to that is kind of a both-and, because I think what most really mature users have found is that there's kind of a taxonomy of flags.
Starting point is 00:37:37 There's different types of flags. So there's flags that are inherently temporary. And so these are like release flags. Like I have this new feature. I know that this is a net new feature and has a whole bunch of new parts. and this flag exists just to ease that delivery or make it safer and to maybe experiment with it, do some data, whatever.
Starting point is 00:38:03 Those flags, most people refer to them as like release flags, and they're inherently usually temporary. And then there's like ops flags, and that's kind of what you were talking about with configuration. These tend to live forever. As long as that feature is there, there's no reason to clean them up. You may want to add new variance to them, change the numbers around whatever.
Starting point is 00:38:22 But they're perpetual. There's also like security flags, securely related like circuit breakers or, you know, things that cut off a whole swath of functionality because it has a security issue or because it has a performance issue associated with it, those are perpetual. And then there's flags based on experiments,
Starting point is 00:38:42 kind of similar to releases. They're usually inherently temporary. But they might not actually necessarily relate to a new feature. It could be relating to even an old feature that you want to experiment on whether or not you want to change it or if people use it or whatever. And they're also inherently temporary. So I think it really depends on the type of flag, like the species of flag, I guess, that
Starting point is 00:39:09 you have. But the tech debt is real, right? Especially with the release flags, which are very common. These can build up in your code base and not. Not only do they build up with your codebase, but they build up in whatever management tool you're using, whether you wrote one or you're using a vendor. And this is, again, where telemetry data is a game changer because you can see if a flag is being evaluated. And not only can you see if a flag is being evaluated, because maybe a flag is being evaluated. But is it always evaluating the exact same way?
Starting point is 00:39:40 And has it always evaluated the exact same way for the last year? Well, it's probably doesn't need to be there anymore, right? essentially have like a branch in your code that's dead. So if you have telemetry feedback here, you can feed that back into your management plane and say like, hey, this flag is probably stale. Like you might want to get rid of this. It hasn't evaluated differently for anybody in this amount of time. Or maybe, hey, it has, but it only evaluated differently for this guy named Andy who
Starting point is 00:40:10 was like, you know, manually changed it for himself because he was like messing with something. Who knows? But that's the kind of thing that you get when you have the rich telemetry data for sure. So I think that's another thing that's important. One more question on the AI topic, but not on the code generation, but more on controlling maybe models through flex. Is this also a use case? So if I'm, for instance, building an AI application and for whatever use case,
Starting point is 00:40:40 maybe a jet bot on a travel system, and I may have the option to use different models. Maybe I can only use certain models in certain regions, depending on where the user comes in from. Is this also a use case you that you've seen, that basically feature flags are used to then control which model is used behind the prompt? Of course, yeah. And so jurisdictional concerns are one thing.
Starting point is 00:41:08 We definitely see that a lot. But I would say that it's, there's a lot of, so fundamentally, right, LLMs and models in general that we're embedding into our code. So like you pointed out earlier, I think this is a distinction really worth noting. When we talk about AI, we can talk about AI generated code and how that involves feature flags,
Starting point is 00:41:30 but you're talking about AI embedded in our workloads themselves, right? And so that's a fundamentally different thing. So I think they're equally important and feature flags are equally applicable to both of them. But fundamentally, right, what is a model? It's something that is non-deterministic, right? We're used to as software engineers dealing with determinism. We can say, like, I can trace this code.
Starting point is 00:41:54 If I know all the inputs, I can tell you the outputs. Well, that breaks down fundamentally with large language models. Models are very complex. They have billions of hyperparameters. We're beyond our ability to fully reckon with them in the same way that we would with an algorithm, right? So being able to control those with feature flags is critical. Things like model temperature, things like guardrails, things like the model and use itself.
Starting point is 00:42:25 These are all things that you're going to want to be able to dynamically control. And guess what? Here's the other thing. You can't really understand how a model is going to behave until you see it in production. You can lie to yourself and say that you will in your staging environment, but you won't. because user inputs are way more diverse in production. It has a different level of scale in production. You're never really going to be able to know the behavior of any given model outside of that scenario.
Starting point is 00:42:57 And so this is where inherently a lot of people end up actually testing in production when they don't intend to. So my prescription is test in production intentionally with feature flags because you're going to end up doing it accidentally otherwise. And why not have all these controls around your models? I know you just mentioned things like temperature and guardrails and everything. This is terminology. Folks, if you're not familiar, the way you can basically configure how an LLM should react to your prompt.
Starting point is 00:43:31 And obviously, this is then great when you can easily, dynamically change these things and don't have to roll out a new release to just change one of these flags. Todd, we are getting towards the end of the podcast and I know there's probably a lot of stuff to talk about but this one is going to air. This podcast is going to air end of September which means it's only six weeks out to KubeCon in Salt Lake City. I assume Open Feature will have a big presence there as well.
Starting point is 00:44:03 You will be there. Yeah, we always have a booth in the Project Pavilion and I'll be there. It's one of my favorite things to do is hang out of the project pavilion and talk to users, honestly. Are there sessions as well that you are giving or that you know, I don't know, maybe adopters are talking about? Yeah, there is. There's a session by an adopter from CVS Health, which is a big kind of health care and pharmaceutical vendor in the U.S. if you're familiar with it.
Starting point is 00:44:39 They've been an adopter early of not just open feature, but also are kind of reference backend implementation that's cloud native called Flag B, which is really fun. So they have a talk. I have a talk. I think there's one or two more, and there's also like a maintainer overview.
Starting point is 00:44:59 There usually is one of those as well. So I can try and get you all the links for those. Yeah, it'll be cool because, you know, If we happen to be in Salt Lake City, that's a great way to meet Todd and the team and adopters and talk to them. And, yeah, you hinted to it earlier. Brian and I typically don't want to use the podcast to promote the work that we do in our daily life. We all work for Dinah Trace. But you hinted that there are some feature flag management also coming from Dinah Trace.
Starting point is 00:45:30 Do you want to maybe just slightly pitch it in the... Yeah, I mean, it's a fully open feature native like you might expect. And obviously it takes advantage of a lot of the existing rich telemetry data and observability data that Danetrius has. So it kind of loops those both in together on one pane of glass for you, has all the nice features you'd expect. And I mean, I'm personally really hoping to reach a lot of big vendors with this who maybe don't realize that this is something that they need, but I think they do. And a lot of this technology that also comes in here into the data trace is part of the,
Starting point is 00:46:16 or came in through the acquisition from DevCycle, if I remember correctly. Yeah. Yeah. We're also in almost at the ground floor with open feature as well. Yeah. Yeah. Cool. Did we miss any critical topic? Do you want to do anything we, you want to make sure that people hear about? I really wanted to talk about the AI stuff, but I think we did a good job covering it.
Starting point is 00:46:42 So I can't think of anything to critical. I mean, I could talk about this stuff for days. Like, one of the things I'd like to talk about is like some of the PII privacy security implications of feature flags. But I think it might be a bit too in the weeds for a last minute add-on. Well, maybe an episode too. Yeah, possibly. Cool. All right.
Starting point is 00:47:08 Brian, what do you say? Learn something new about feature play? Yeah, I mean, it's definitely come a long way since its beginnings, right? And I do recall having conversations in the past about the open feature thing, and it's amazing to see how, well, it's been adopted because it seemed just like a no-brainer to, like, you know, it's standardized. But I think the really key thing is how much of a world using feature flags opens within your software, your applications, so that it's key to being flexible, like everything. It's just like it almost seems like it's an imperative for people to use feature flags in their software so they can handle any kind of situations that come up and move on the fly.
Starting point is 00:47:54 and it's great to see that it's so solid now and there's so many ways to, even with the AI interaction, it's going to be exciting to see what people start doing, especially once you take that, as you were saying, the cost budget out of it and you can start thinking about building anything into it. So great stuff.
Starting point is 00:48:14 That's it. All right. So thank you, everybody, for listening. I hope you learn something today, and we will be back with you all in the next episode. Bye-bye. Yeah, thanks a lot, guys.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.