Reimagining DORA Metrics & Leveraging Feature Flags | Split's Ariel Perez

11 Jul 2023 · 47 min

Ask about this episode

Ask anything about it. ChatGPT or Claude reads this page and answers with the times it was said.

Connect VO and ask about every podcast you hear, including the moments you saved. Add to ChatGPT · Add to Claude

In short

Dev Interrupted Podcast Episode Notes

Episode Title

Reimagining DORA Metrics & Leveraging Feature Flags | Split's Ariel Perez

Hosts

  • Dan Lines: COO and Co-founder of LinearB
  • Ariel Perez: VP of Engineering at Split.io

Episode Summary This episode focuses on the intersection of DORA metrics and feature flags, highlighting how feature flags can reshape the interpretation and utility of DORA metrics in software development practices.

---

Key Concepts Discussed

  1. DORA Metrics
  2. Definition: DORA (DevOps Research and Assessment) metrics measure software delivery performance. They include:
  3. Deployment Frequency
  4. Lead Time for Changes
  5. Change Failure Rate
  6. Mean Time to Recover (MTTR)
  1. Feature Flags
  2. Definition: Feature flags are switches that allow developers to enable or disable features without deploying new code. This practice enables safer deployments and faster rollouts.
  1. Impact of Feature Flags on DORA Metrics
  2. Feature flags allow for:
  3. Increased Deployment Frequency: Code can be deployed in an "off" state, allowing for continuous deployment while reducing risk.
  4. Reduced Lead Time: Teams can merge and ship changes more frequently as they are not waiting for features to be ready.
  5. Lower MTTR: If a feature causes issues, it can be turned off quickly without needing to roll back an entire deployment.

---

Insights and Discussions

  1. The Value of Code
  2. Reality Check: Approximately 70% of features released have little to no value, highlighting the importance of measuring impact rather than just productivity.
  1. Collaboration vs. Individual Contribution
  2. The podcast emphasizes the shift from individual contributions towards collaborative engineering practices, such as pair programming or ensemble programming, to improve code quality and reduce long-term costs.
  1. Mindset Shift in Engineering
  2. Emphasizes shifting towards outcome-driven metrics rather than output-driven metrics, focusing on the impact of features on customer experience rather than simply the speed of delivery.
  1. Experimentation and Learning
  2. Encourages engineering teams to adopt a culture of continuous learning through experimentation, measuring both qualitative and quantitative impacts of features.

---

Recommendations and Takeaways

  • Balance Efficiency and Effectiveness: Engineering teams should focus on both shipping frequently and ensuring quality through effective collaboration.
  • Measure What Matters: Implement causal analysis to measure the impact of features on user behavior and business outcomes effectively.
  • Embrace Change: Encourage teams to experiment with new methodologies and practices that can improve overall performance and collaboration.

---

Closing Remarks

  • Ariel Perez suggests engaging with the Split community for further discussions on feature flags and experimentation, and invites listeners to follow Split's blog for regular updates.
  • Additional Resources:
  • [Split Blog](https://www.split.io/blog/)
  • [Split Community on Slack](https://www.split.io/slack-community/)
  • [LinearB's AI Productivity Platform](https://linearb.io/start-free-trial)

---

Conclusion This episode encapsulates the evolving landscape of software development metrics and practices, emphasizing the importance of adaptability and continuous improvement within software engineering teams. Ariel's insights provide a compelling case for re-evaluating traditional metrics in the wake of new methodologies like feature flags.

Written by AI. May contain mistakes. Listen to the episode to check what was said.

Hear the part that matters, and keep it.Open this episode in VO. Double tap your headphones to save a moment as you listen.
Get VO free

Transcript

Automatic transcript. May contain errors.

0:00The reality is actually that about 70 % of everything you put in production has either little or negative value. 70%. Imagine that. That's crazy. 70 % of everything you ship has little, no, or negative value. So only 30 % of what you're doing actually has value for the customer. It's unbelievable, right? So how do you think about that idea of value? So the Dora metrics and even the reimagined world of Dora metrics with feature flags and that granularity help you ship faster. at Devinterrupted, we work to give engineering leaders actionable ways to improve their teams. That's why we're producing a three-part summer workshop series with Linear B.

0:47Each of the three workshops will explore the processes that elite software engineering organizations and executives use to deliver better business outcomes and reduce cycle time by 47 % on average in just 120 days. You'll learn how to assess your current performance and benchmark it against industry averages, streamline processes through automation, and improve business outcomes through resource allocation. Learn from the best and take your team to the next level. Visit LinearBee.io slash events to learn more and secure your spot today. Hey, what's up, everyone? Welcome to Dev Interrupted. This is your host, Dan Lines, LinearBee co-founder and COO.

1:26And today, we're joined by Ariel Perez, a VP of engineering at Split. Ariel, welcome to the show. Thank you for having me, Dan. I'm very happy to be here. Yeah, super awesome to have you on today. Really been looking forward to having this conversation. You're really passionate about engineering effectiveness, which for me is something that I care a lot about. We care a lot about at Linear B. And I know you also have thoughts on DevOps and some Dora metrics, and of course, do the split feature flags and how they play into these topics. But before we jump into our main topics today, can you give the audience a background about yourself and how you got into engineering?

2:17Definitely. Thank you for that. Well, I'm born and raised in New York. Background, I got into engineering, even I think as far back as high school, dating myself a bit. Those were the days where DHTML was a thing. So it got me really into playing with CSS and JavaScript and making things move dynamically on a page and really pulled out my passion for programming. So I went to college for programming. I was a computer science major at that time. Jobs in New York City when it came to technology were primarily in the financial services space. Facebook had just started. Google had only just been around.

2:54So So people didn't really go to Fangs just yet. Amazon was barely new as well. So I worked in financial services. Did that for many years, grew to many roles, individual contributor, managing teams, lead engineer, got to travel around the world quite a bit working with international teams, then decided to change it up and start going, go back to startups, smaller companies. So bounced around a few startups, built my own startup for a while, was consulting, then came back to big company. I was working at JP Morgan Chase on the Chase side. That's what got me really passionate about feature flagging because I got my opportunity to build my own feature flagging platform there for use at scale.

3:33Fast forward a few years, got to take that to the UK and built Chase in the UK. Awesome experience building a digitally native mobile native bank and then landed here at Split, you know, really putting together my ability to understand feature flags, having built my own and a passion, particularly for measurement and learning. that's amazing i mean one one thing that i really like about that background i mean oftentimes we'll talk to people more so like on the west coast and you know that startup vibe and maybe i'm jumping from company to company until like i hopefully get like a big hit but you were saying like in you're in the new york city area so maybe some of those like financial firms and larger organizations what did you learn the difference between a startup and a much larger company?

4:21And the reason that I'm asking you that is now, of course, you're one of the VPs of engineering, right, at Split. And a lot of people want to progress their career to get to that type of opportunity. So any tips on how we can do that based on your background? Definitely. I think, you know, we can speak about broad, you know, in broad strokes, but in general, one of the key differences I saw in my first move from big company financial services to small startup. There's only you, meaning there aren't more people coming, there aren't more people available. So you tend to do everything. You become a jack of all trades, which is can be challenging at first, maybe daunting, but also you will learn faster than you've ever learned before versus generally being in a larger company where your role is a lot more clearly defined.

5:09You're in your particular area and they have experts in different areas, lots of specialization. So that's the first big thing. I think the second big thing that I tend to see is bigger places tend to move a lot slower. Decision processes take longer. Approvals take longer. Getting projects defined, they might not be as nimble or agile in how they define projects and get them developed. While in a startup is cool, can you ship it tomorrow? And you figure out every possible way to ship it tomorrow. A lot more ability to move fast and remove a lot of processes while also maintaining a lot of rigor in your decision making.

5:43And if I were to say one last thing is that large companies really, really care about efficiency, productivity and efficiency are the things that really stand out to them. So they'll start thinking about how to invest in tools that help make engineers much more efficient because they're so effective. They really care about the bottom line. Startups maybe don't care as much, or at least in this climate now, they definitely do, right? This climate of not growth at all costs, but very paced growth and measured growth. Efficiency and cost is becoming a lot more important for smaller companies as well.

6:18Yeah, that's actually the perfect lead-in to our first topic. And thank you for sharing some of those insights in your background. And I couldn't agree more, especially with those, you know, if you're scaling, let's say your engineering team, you're growing your engineering team or you're working at a large organization. Certainly the business is going to ask of you, especially in this economic climate, what are you doing for efficiency? Where could we cut costs? How do we make people more productive? Because the more engineers that you have on the team, that efficiency can multiply by 100x, 500x, 1000x.

6:59So yeah, I think that's a wonderful point. Some of the things that we were chatting about in like our pre-production meeting and before we got on here, you said something like teams are often pursuing productivity and efficiency at the expense of effectiveness. Can you unpack kind of what you meant by that or that type of mindset? Absolutely. And actually it ties very closely to what you just said where at a bigger company, you might say, let's hire more people, add more engineers, get more value out of that. There's a big aspect of large companies, especially, but also it's bled into every other company as we think about software development.

7:41One thing that has ruled the day for the last, I don't know, almost 100 years is this idea of Taylorism. Taylorism came out of factory work, right? How do we get very efficient at getting the most value, squeezing out the most value out of every single part of this factory that is generating things, building things. You know, that worked in a world where everybody was building widgets, right? And every widget is exactly the same. I cast the die once and I ship the exact widget over and over. Yeah, this is manufacturing, right? Exactly. Manufacturing. I need to manufacture a widget for a billion people.

8:18What do I do? Right. Exactly. So a lot of those ideas came into management space and how we think about managers and how we think about people and people or resources. So how does that translate to the engineering world where, well, I need more engineers that ideally at a lower cost and I need every engineer working individually so I can maximize how much I get out of each engineer because they're an expensive resource. Now, the key thing that that misses. So, yeah, you might be very efficient doing that. Might be. And we can talk about it. Your product is great at highlighting where you're not efficient, but you're definitely going to be productive.

8:55We're going to be busy. Let's keep them busy. Let's keep them maximally utilized. Now, some challenges that occur when you do that, right? You know, and any people working in engineering, you'll know what happens when your machine and your CPU is at max utilization. You know what happens when your RAM is at max utilization. Things fall apart very fast. So the first key thing is software engineering and in general, knowledge work is not like manufacturing work. You cannot reproduce the same exact widget over and over again, you get the same people, the same problem, the same time frame to try to build the same thing.

9:32And you're not going to get the same result because the context is different. It's always different. Software engineering is complex. That's the key piece that we fail to understand. Manufacturing is simple, might be complicated, but software engineering is complex. And what complex means is that you don't know how the parts work together and how they interact with one another. And you change one thing, you don't know what's going to happen. You add one thing, you don't know what's going to happen. You can try to guess, but you will not know. So with that mindset, then saying, let me maximize utilization for every engineer and let me try to reproduce the exact same thing doesn't work.

10:05What kinds of things do you run into when you try to do that? Well, let's maximize work in progress, right? Five engineers take five stories in a sprint, assuming scrum, and they all work individually. They're maximally utilized. But then what happens? Engineer one opens a PR. Now engineer one has to wait for engineer two or three or four or five to go review that PR. So they sit and wait. What do you do when you sit and wait? You go start a new task, right? Because you want to be productive. You want to be utilized. The other engineers have to stop what they're doing to go review that PR. So now I stop.

10:37I go review a PR. In the best case, PR closes and we ship. Most cases, you go back and forth a few times. So imagine how many times we're interrupting each other and we're waiting for each other. So there's a lot of wait, wait time in there when you have max things in progress. So maybe reduce work in progress. Yeah. Just a comment there because honestly, you're, you're, you're hitting on a problem that's like near and dear to me. So I have to make a comment here before you go. I mean, the other thing about the PR and the situation that you're talking about is every pull request is different. It's not like you're getting the same change set every single time, like in a factory, for example, a thing that's being passed from machine A to machine B is exactly the same.

11:23Every PR is completely different. The risk of the PR, the size of the PR, who needs to review it, what does it impact? And that's why I put a bunch of my passion into this GitStream workflow automation tool that I've been working on because of that exact problem. And that's where I think probably where you would say there's a science to engineering, like to software development, and there's an art. And the art is identifying, okay, everything is actually different. What can we do for each one of these different sets? So just had the comment on there. Back to you, to where you are going. Yeah. Thank you.

12:08And again, actually, I'll continue on that just for one moment. Talk about GitStream, right? The things that GitStream is aiming to do, trying to find, define how simple, how complicated or how complex this particular PR might be and help you optimize that. Right. Now, here's the thing I'll say is a drawback, not of GitStream, but this whole PR based flow. It still requires generally asynchronous review of code. One engineer works on this code, a separate engineer when I'm done later reviews my code and we'll go back and forth. So what do many tools try to do? to optimize that and make it more efficient?

12:44Well, give you rules, make the PR smaller, reduce the scope. There's all these things about make these things smaller so that that review and that asynchronous out of context review is easier, which is great. Let's improve that because you know what? 99 % of teams, this is what they're doing. So let's help them do that. But then that gets me into the second thing, beyond work in progress. It's actually a lot more effective, and I'll talk about why effective, to have engineers working together. So what approach might be, well, can two engineers in real time review the PR together? That's often much more effective than I open my PR, I walk away, you come review my PR and you have asynchronous communication.

13:25Already with the asynchronous communication, there's wait time, we miss each other. We might not catch what we're saying. If we just sit and talk through this thing together, so much more effective. You close that PR a lot faster. But let's take that even a step further. Why have PRs at all? Now, that might sound like blasphemy to some teams, but how can I potentially remove PRs while keeping the things that we want from PRs? Quality control, sharing best practices, learning. Well, what if two engineers work on a story together? That sounds like a radical idea to the Taylorists because no, no, hold on.

13:56I have two engineers. I pay them a lot. If they're both working on one story, I'm getting one story out of them. What they're thinking about is the very short term transactional costs of two engineers working on one story. What they're not seeing is that software engineering, you pay the cost at the beginning, and then you have maintenance costs for the rest of the life of that software. That software will be changed by someone else again. And if you have two engineers working on it, the likelihood that you will reduce the lifetime cost of that code drastically goes down. Because here's, I think, something great I've seen in your product.

14:29you can, you know, the rework rate, you'll probably find that that rework rate drastically reduces when you have more people working on that story at once. So you might pair, you might even ensemble or mob program on that thing, three to five engineers. Oh my God, super blasphemous, right? Five engineers working on one story, that cannot be efficient. That cannot be productive. That's right, it's not, but it's effective. When they ship that story, odds are they'll never touch it again from a bug perspective, from an issue perspective. So when it's done, it's shipped, It's out onto the next thing.

14:59No PR needed, merge street to trunk because you have that level of quality and teaching across the board. You know what? It's kind of like you're proposing a different mindset, I think, than most of, I would say the end. You know what they reminded me of? I think something like either pair programming or extreme programming. There were some of these movements early on in Agile to say, hey, let's get some of these engineers working together. Let's put the cost more upfront instead of later on in the life cycle. Do you have any, and it sounds great, right? It honestly sounds great, but at a large, I don't know, an engineering organization that's not used to doing that, right?

15:47I'm not used to doing that. I'm working at, like you say, in New York City, like a large, I don't know, financial company or something like that. And by the way, I don't know if you do or you don't, but like getting to a situation to getting more of that upfront cost earlier, you know, earlier on, have you dealt with that at all? Or like, is it a transformation? Is it a mindset shift? All of the above. It's not easy, right? I think so. There are a few things that we've done in this industry and engineering on top of the fact that most management in any company is also Taylorist. Engineers, you know, We tend to stick to this trope that the engineer is that person that likes sitting by themselves and doesn't like talking to people.

16:29I work as an individual contributor. You've got this trope of the 10x engineer who comes in and builds everything by themselves. And like, I'm amazing. And I saved the company. A lot of these things push people to a culture of heroes and individual heroes of people who don't like working with one another. And we kind of self-select and hire those kind of people. So that's one challenge you run into. Just your teams. I am an engineer because I like working by myself, right? That's a trope and you self-select for that. So that's one challenge to work through, how to get you to work together, different ways to work together.

17:02You can define working together and truly collaborating as opposed to cooperating. That's one thing you have to contend with. You definitely have to contend with the management of fighting that idea that, hey, five engineers working on one thing is better than five engineers working on five things. That's a hard one to sell. Five things sounds better to me. I'm a CEO. Exactly. I'm doing five things. Now you're telling me to do one thing. I'm going to do one thing. Exactly. With all these expensive engineers, right? It's this thing about, you know, this fallacy that seeing progress is better than seeing completion.

17:34I got things shipped as opposed to I'm doing things. I'm busy versus I'm actually having impact. So in general, for anything like this, whether it's to management, whether it's to the engineers, the whole organization, the things that really help is this is an experiment. We're going to try something out. Let's test an idea. Just like any team that has retros, the idea is the way you improve is continuously. You introduce new ideas as something to try out. And what's the key thing about something to try out is you define key success criteria. What do I want to see out of this at the end of it to say if it's successful?

18:05Or we want to continue it. And when's the stopping date? Everybody, generally, everybody can do something that they don't like. If they know, they can see an end in sight. So if you couch it as an experiment, let us try this out. And then what are the evaluation criteria to continue? And you make those experiments small, you find that you can start making those changes. But these are radical changes to both the organization and to engineer. So you introduce them in small steps and keep trying iterating on different things. While you were talking there, there's a few things that came to mind to me if you're someone that, you know, is kind of relating to these concepts and want to try it out.

18:42And I'm thinking about the business because one of the things like all of us engineering leaders kind of like deal with is the business. These are very, very smart people, non-technical people. Oftentimes, you know, you're talking to CEO or you're talking to like head of sales and you're talking about new value and that type of stuff. And you did mention that those types of people usually think of their company in like resources or like the allocation of resources. So a few tips that I could give the audience here or what came to mind to me when I'm thinking about resource allocation. One, that's one thing that you as like an engineering leader should be having a conversation with, like with your CEO.

19:28So how are our people allocated? And a common mistake that I'm seeing within the industry is once you have that allocation report, to your point, Ariel, oftentimes I see, okay, we're working on like 10 different projects in parallel with a very small amount of engineers. And therefore, each project is kind of progressing at a very slow or a non, I guess we would say effective pace. and so what you can do is show, okay, we're really spread thin. Let's make, I propose a change here. What are the top three? And I'd like to allocate more engineers to those top three and take one of them and introduce the concept that you're talking about as an experiment because hey, business, this is a project that is most important to you.

20:25I want to deliver it as effectively as possible. And the other thing that came to mind for me on the allocation side is what most engineering organizations are doing today is thinking of their allocation is like, okay, there's keeping the lights on, there's new value delivery, there's enhancements to the thing that I already released. And then there's like internal productivity, like working on your dev. work. If you see that your enhancement percentage is very, very high, which means, hey, we thought that we released this thing or we did release this thing and we're still actually enhancing it, working on it like six months later, a year later.

21:11That's also, I think, an argument for your case of, hey, we're now paying this long cost, this long term cost instead of like doing it more upfront. So a few tips. I don't know if any of those resonate with you. Oh, well, absolutely they do. And I think the first one, you know, one thing I found that becomes very easy that everyone understands, forget for a second, speaking about 10 projects, 10 engineers, the simplest layman's term version of this that even my grandmother can understand is like, what happens when I need 10 houses? I can start building 10 houses all at once right now. What happens to my risk?

21:48They'll all progress. And if I run out of money in a year, I might have 10 incomplete houses. Instead, maybe I focus on building three houses right now. And in a few months, I'll have three houses. And in a few months, I'll have maybe six houses. I run out of money at the end of the year. I'll have six full houses instead of 10 half built houses. It's the same reality in any project allocation is work in batches, work on smaller things, get more people focused on them, get them done thoroughly and effectively. So same way to explain that same concept. oftentimes the way to present like an allocation of resources is by like, yeah, and you're seeing that enhancement be very, very high.

22:29It means that you're paying a long-term cost instead of the upfront costs that you were talking. Absolutely. And, and the way I think about that, there's two things. One, you know, as an engineering leader, we're pushed to talk about in these terms, how much you're allocating to here, to here, to there. A lot of that often comes from finance, right? You know, things that engineering leaders learn is about, you know, amortization and cost and the kind of, you know, we talk to your accounting and finance people, talk about taxes. You break it down that way. What's lights on versus what's innovation.

23:01But in reality, when, if you start thinking about how you organize your team is get them together to solve the most important problems. And yes, you talk about the long-term maintenance is what do you want to invest upfront? Do you want to focus on quality and value or do you want to work, focus on efficiency and cost? Focusing on efficiency and cost too much early on guarantees that your costs go up over time, guarantees it. If you focus on efficiency and cost, because you're going to get the cheapest resources, spend the minimum amount of time possible rather than spend the time to get the quality and value and reduce your cost of change for the rest of the life of that software.

23:36If you invest upfront to reduce the cost of change, every incremental change, and it will come, will be much, much cheaper over the long run. Yeah. It's almost like there's like a education process here. Like if you are a VP of engineering and usually you need to like justify this way of working again to a CEO or to your senior leadership team a little bit, because when you did the house example, it was amazing. That made sense. But if I just come to you and say, and you know, I'm reporting to you, Ariel and you're the CEO. Yeah, instead of doing 10 projects, I'm only going to do two, three. That doesn't sound good, right?

24:17So there's also kind of like how you present it, the approach, come with some of that data. I think it helps a lot. I'm excited to transition us because I see our second topic has a really interesting title. It's titled Reimagining Dora Metrics and Leveraging Feature Flags. What does that mean to you? I think a lot of our audience knows about the Dora Metrics, right? So we have cycle time, we have deployment frequency, we have change failure rate, we have MTTR, mean time to restore. What does it mean to like reimagine these Dorometrics. Got it. So I have two versions of that. One is the more straightforward one.

25:04One is the more radical one. I'll leave the radical one for later when we get to it. Right. That'll be, I think, I like the radical. We got to get to the radical. Right. But the first one is this idea, right? You know, Dorometrics came in a world where we were just trying to ship faster. Right. And in a world where deployment and release was the exact same thing in order for you to ship a change to a customer, it was a release and a deployment. Same exact thing. I had to put the software in production. And the world has changed a lot since the Dora metrics were published initially, right? And again, Dora metrics are amazing at trying to figure out which teams are very efficient at shipping software.

25:44Shipping software that doesn't break. Shipping software that's high quality. How good am I as an engineer organization at building stuff and shipping it? But the key thing is what happened with the world changing is over the last 10 to 15 years, but even more, the industry really even less so over the last 10 years, feature flags as a term, as a concept for building my applications, right? And not assuming that everyone knows exactly what a feature flag is, although it's a lot more ubiquitous now. It's a toggle, it's a switch, it's a feature flag. It's basically at its core an if statement around your code.

Read the full transcript

26:16If this feature flag is on, this code path gets executed. Otherwise, it's off. Sounds, you know, sounds very simple, but the radical aspect of it is now I can actually ship code off and at a separate time, turn it on. You have different ways to do it. So many, there are UIs, there are database implementations, config implementations, but that's the key idea that I can just ship the code and keep it off. Now, why would I do that? I need the code to be on. Well, there's so many things that you can test and validate while the code is off before any customers see that code. You can imagine how many times you think something is perfect in staging and then you put it in production and it explodes.

26:56You miss some config. You miss some issue. Feature flagging it off allows you to ship it out without it breaking. The other thing that feature flagging really allows you is trunk-based development branch by abstraction. You can just commit your code and not wait for these long-lived branches that just carry risk because they're not being merged. So now, how does that change the door of metrics? The idea then now in a feature flag world, it's not enough to think about how often you're deploying. The idea is how often are you releasing? Because you can deploy over and over and over again with the code off.

27:28So one thing that feature flag is helping you do is deploy more often. Yes, that's great. Because if you're feature flagged off, you can merge more often. You can merge to trunk and just ship the code. So your deployment frequency skyrockets, but you're not delivering anything to users yet. So with feature flags now, you might turn on different features at different times. So then how do you define deployment frequency now? Is it change frequency? Is it change enablement frequency? So it's something to think about there. If I ship one piece of code and then I flip a flag next week and I flip another flag the following week and I flip another flag the last week, did I have one deployment or did I have five deployments, right?

28:04Is it change frequency now? So that's one thing that comes to mind. The other thing that comes to mind is, well, I think lead time drastically goes down when I can feature flag everything off and merge it. But the other major impact is mean time to recover. For elite engineering teams, mean time to recover is primarily constrained by how quickly can I ship a fix. But in a feature flag world, it's how quickly can I flip a flag and turn it off. Your mean time to recover can go down to seconds in the best feature flagging platforms. So that's another massive impact on that Dory metric. Yeah. There's a, and these are the non-radical thoughts, right?

28:45This is not radical. At least in my mind, right? It might be. No, we're going to get, I got it here with the radical art. But no, I think it's really cool. I think, first of all, like feature flagging, I agree, changes the paradigm a bit. I think the Dora metrics, obviously they're great, but they try to describe something at like the highest level possible. You talked, for example, about, I think you said change frequency. And for example, in the cycle time process, there's almost a frequency of every stage. So there's like a merge frequency. There's, you could say like, okay, there is a deployment frequency, but then that's with the feature flag off.

29:30now there's a frequency of how quickly are we entering the stage of that feature being turned on and what percentage of your customer base is it turned on for and what percentage sorry what time does it take to enable it to your entire customer base so for for example i i'm honestly thinking about this all the time you know we're in in linear b we're releasing things to let's say like beta, which means, okay, it's behind a feature flag and it starts out with zero of the cost, 0 % of the customer base has it. And then it eventually increases to everyone. But I'm saying to myself, how long does it take to go from that first release where there's actually no value for the customer because everything's off to full value for the customer base?

30:23So I think we can We can start putting these stages into cycle time. We can start staging out deployment frequency and the control. And therefore, honestly, the metrics around it that feature flags give, because I can tell how many are on or off for my customer base, right? It's amazing. That's great. Let's just bake that into cycle time, more stages, deployment frequency, more stages of deployment. Exactly. It's just the world has become much more granular, right? Yeah. It's not black and white. It's gray. There's a gradient. There's a gradient. There you go. The unit of control was the application.

31:09Now the unit of control is the feature. That's the key thing. Yeah. I love it. I love it. And what I love about it is like the, it's more about value. It's more about value. Like the feature in itself has like usually value to it. And so you can measure that progression of value. Absolutely. And actually, I think that's a perfect segue into my radical idea, right? First, you said it's a measurement of value. And then you said a feature and you quickly caught yourself usually has value. I think that's a thing that you can talk about for a very long time, right? we tend to assume that every feature has value it definitely has value we have we've done research we've talked to customers we validated this and we're like great this thing has a certain amount of value that i'm that i'm expecting when i ship it and then we put it in prod and reality hits you if you're willing to accept reality a lot of people say look i'm just going to ship it we spent the time doing it the reality is actually that and i've got to figure out the exact stat but this is in the ballpark.

32:16About 70 % of everything you put in production has either little or negative value, right? 70%. Imagine that. That's crazy. 70 % of everything you ship has little, no, or negative value. So only 30 % of what you're doing actually has value for the customer. It's unbelievable, right? So how do you think about that idea of value? So the Dora metrics and even the reimagined world of Dora metrics with feature flags and that granularity help you ship faster. So if you take the idea of value, it helps you ship 30 % of value faster. There's actually a win there, right? There is actual benefit to that.

33:00And we should still chase that as engineering organizations. Let's get really good at shipping. Why? Because odds are we're going to be wrong. So the more we ship, the higher the hit rate. If I ship a thousand changes that at 30 % versus a hundred changes at 30%, odds are I can get a better hit rate. I can just get more value out there. I learn something every time I ship, right? Yeah, that's the thing. I can increase my percentage chance of getting to value every time. That's it. Yeah. So then that's the key piece that I'm going to get to in terms of like the more radical ideas. Often teams that just think about the mechanical aspects of shipping.

33:37If you're not measuring, it's really hard to learn. So the idea is how do we measure the impact of every single feature that I ship? So you talked about one way of thinking about like telemetry you get from feature flags, how many users have it on? But that is just a measure of how many, you know, what part of my population is at risk. But it doesn't tell you anything about what is the risk? How are they behaving? How are they acting? What's happening? Should I roll back? Should I roll forward? I'm kind of watching maybe my dashboards and monitoring tools to help me understand, should I roll back?

34:10So I've gotten really good at changing, shipping changes, rolling back changes. So if I can put it in one way, we've gotten really good at building the things right. Building the thing right is I can ship it fast. It doesn't break things. It is scalable. It's resilient. It's performant. All the engineering metrics that you would look at about, is this good software? Does the software work? but it tells you nothing about that we build the right thing. So what I care about in terms of that radical idea is how do we get really good as teams to bake in actual measurement of impact of every change, whether make things better to increase that hit rate from 30%, maybe increase it to 40 or to 50 and accelerate that learning.

34:55If I'm not learning on every change, I'm just shipping more crap out. If I can learn, I can truly improve my hit rate. And those things are like interest. And let's get back to financial services. It's compounding interest. Everything I learn, if I learn at a 1 % rate every single day, the compounding of that learning is massive by the end of the month. So we can really, really learn about our customers. So then what does that look like in a feature flag world? Well, when I think about deployment frequency, let's call it change frequency now, right? You know, new terms. How do I know I'm ready to go from 1 % to 5 % or from alpha to beta?

35:30Today, I'm kind of watching. I'm maybe looking at some dashboards and nothing's blown up. No customers have complained. So I feel safe. I can roll forward. You said something very interesting, though. How do I get from one to 100 as fast as possible? It's really hard to do that without measuring. And this is where causal analysis comes into play. If you can feed telemetry into a feature flagging platform and experimentation and measurement a learning platform that tells you this feature flag is having the intended impact that you wanted or the unintended impact. Here's what happens. So let's say you roll out a feature to 1 % of customers.

36:06Your APM tool that your engineers are looking at will tell you nothing's wrong. No explosions, no problems. I feel safe. Here's what it calls an analysis can tell you for that 1 % of users. There's an 80 % increase in errors. That's the key thing. So it'll tell you, don't go ahead. don't go forward. As a matter of fact, roll it back. You can make that decision much faster because with causal analysis under the hood, you know immediately that feature is having an issue. If you've rolled out a hundred features, that one feature is the one that's causing problems on that 1 % of the population. You've mitigated that and you've quickly rolled that back rather than waiting around for your APM to tell you, because you might have to go to 20 % or 50 % before you start seeing something in your APM because that's just correlational data.

36:49So that's one of the things that says, well, this will help me roll out faster. But I'll tell you one next step and then I'll stop talking for a moment, right? So we can go back and forth, which is, well, what if your goal with this particular change was to improve performance, improve the load time in your screen? Or let's say you actually want to increase, you know, checkout conversions from a business perspective. What if your feature flag is measuring that and it says, hey, for that 5 % of people, performance actually increased. It dropped from, you know, three second load time to one second load time.

37:20Do you want to wait before you roll that out? No. The system, you tell the system full steam ahead, go roll that out to 5%, roll it out to 10%, roll faster. So that data as it's coming in, if I can tell you that for that percentage of people, performance is much faster or cart checkouts went up, well, go ahead, roll it out. You can get from zero to a hundred much faster with the machine learning along the way and the causal analysis leading the way for you. I think about it in two ways. It's like, For the customer base or the service base that I rolled this out for, what is the change within that scope?

37:58Exactly. So is it better performant, less performant, whatever you're monitoring? And then the other thing that I was thinking about is there is, again, I think a customer value kind of art to this. And I'll explain what I mean by that. some of the times, I can just do my own experience. Some of the time at Linear B, when we're utilizing a feature flag, we put that feature flag in the hands of our sales team. We put it in the hands of our customer success team. And we say, hey, at your discretion, you can choose to turn this on or off for X amount. You each have like five tickets to turn it on or off for.

38:44and it comes with a caveat, an expectation setting. There could be bugs, there could be a performance issue. It's you that choose. And what I know this is, because you said earlier, I think if we went with intention, usually everyone, if we went with good intentions, the idea that I have, the thing that I want to ship into production, my intention is it does something better. Like, you know, if we put like malice aside, like I'm trying to like ruin the company, Like, no, but most people aren't doing that. I have an intention that it does something better. And I see, at least for us, the feature flags that get turned on the most rapidly by sales and CS or the customer base is asking for them.

39:29Yes, please enable this for me, like immediately, usually correlate to more value. Once in a while, you know, full transparency, we'll come out with something in product that we think is really cool. We did our validation. We thought it's the right thing. We go and, you know, create this feature flag. We tell sales and CS all about it. And then, you know, it's turned on for 5 % of our customer base. We're saying, hey, why is this not rolling out? Well, we have like a mismatch in value. We ask the customers, hey, do you want me to enable this for you? They say, yeah, it doesn't really matter. It'll care, right?

40:05Yeah. So I think the cool thing about it before we move on to kind of our last topic here is I do think kind of like the speed of rollout can correlate to internal value from your sales and CS department and your customer value. I think there's some type of correlation there that I'm understanding. There's an absolutely strong correlation, right? I think the first part of it, when you're rolling it out to some customers through sales and customer success, I call that, that's more like a qualitative state, right? It's alphas and betas and you're trying to get early feedback from a trusted group.

40:40And yeah, that feedback helps you continue rolling forward or say, oh, no, we need to we need to shut this off. Nobody cares. At some point when you're ready to expand it beyond that initial group, just gathering telemetry on our people engaging with this feature, our people using this feature. Is this driving our business metrics? That's the thing that helps you roll it out past that first beta group to 25 percent to 50 percent. But the other side will be, if nobody cares, if nobody's using it, roll that back to a zero. Because I think going back to the long-term cost conversation is, why am I going to put that feature in prod that nobody uses?

41:13If my long-term maintenance, I'm going to keep paying for this thing for the life of this feature, even though nobody's using it. I've got other things to spend my money on. Let me spend on better hits. Let me increase that 30%. Very interesting stuff. To close it out here, we kind of have like maybe a summary topic around achieving desired outcomes. Somewhat the state around, you know, should teams invest in shipping more or shipping faster? Is it worth it? I have like a paraphrased quote from you here that's saying many engineering teams are not near where their metrics should or could be. What are your thoughts on kind of like achieving, you know, some of these efficiency, effectiveness metrics within the engineering community?

41:58I think I'll try to sum it all up in all these pieces of the conversation. I'll start with we we ideally want every engineering org to be outcome driven and work and and really drive toward actually having the expected outcomes and drive impact, improving the lives of our customers. and have engineers embedded in that conversation beyond just our world of infrastructure and performance and latency and throughput. It's like, well, is anybody using this feature? Are your customers getting value? So how do we, we want to go toward that direction, right? We can only make better decisions and truly move the needle for the industry, for our companies, for our customers, working in that world.

42:39But what does it take to get there? At the minimum, you have two sides of this coin. One of them is, well, we've got to be elite engineering organizations. We've got to get really good at shipping, shipping fast, shipping often, because we're going to fail often. But let's get really good at fixing fast. And let's make sure we balance that with quality while we're building it. The other side of it, and that's Dora Metrics, Dora Metrics Reimagined, let's get really good at shipping and iterating. The other side of it is, let's get much better at being effective engineering teams. And to be effective, we've got to work together.

43:11We've got to collaborate. we've got to think together through the problems to come up with better solutions. So I think those are the key things. It's moving to outcome as opposed to output-driven organizations, using the ability to get really good at shipping and shipping quality, shipping quality faster, because that's critical to get value in front of customers. And then to get better things out there, let's work together while we do it. I think it's a good summary. And obviously, you know, you got some really cool stuff going on at Split. But what I like, I'll just say what I like the most about feature flags, we did talk about some of the more futuristic stuff.

43:49But at the end of the day, I think it kind of lowers my barrier to go experiment and get something out there and shortens my feedback cycle, makes me confident that I can try something. My learning increases, cycle time decreases, deployment and change frequency increases. These are all shown to be positive things. And Ariel, I want to thank you for coming on the show and kind of like enabling the community to be able to unlock these door metrics. We love giving our guests the opportunity to bring awareness to something that you would like the audience to hear about. Is there anything interesting going on at Split that everyone should know about?

44:34Yes, definitely. Thank you for the opportunity, Dan. And we always have many different events that many different things going on at Split. But I think for right now, if you want to stay tuned and understand, hear about the best content in feature flagging and experimentation and measurement and how you can really get the most value out of feature flags and measurement within your life and in your engineering practices. Definitely try www.split.io slash blog. We update that blog regularly. Follow us on LinkedIn. We're on different social media channels on Instagram. I think we have a TikTok channel too.

45:06And if you really want to interact and connect with us, we've built a very robust community on Splat. And that's splitcommunity.slat.com. Join us there and just talk about feature flags and see how we can share knowledge with each other. Sounds great. So everyone, if you're interested in this feature flag stuff, definitely check out Splat and also their Slack community. And everyone, thank you for listening. We're going to catch everyone next week. I also want everyone to be sure to sign up for the Dev Interrupted sub stack. Each week, you'll get the latest episode of Dev Interrupted right in your inbox, as well as articles from some of the best engineering leaders in the industry, upcoming events, and all your favorite DI episodes past and present.

45:52All the insights, none of the fuss. Check it out at devinterrupted.substack.com. and for the last time, Ariel, thank you for coming on the show. Thank you very much, Dan. It was great having a chat with you. I look forward to potentially doing this again. I think we have a lot to bounce off of each other. Again, thanks a lot. It was an honor and a privilege. Love to have you again.

46:29you

From the publisher

Does the emergence of feature flags affect the interpretation and utility of DORA metrics?

On this week’s episode of Dev Interrupted, host Dan Lines and Ariel Perez, VP of Engineering at Split.io, discuss the state of DORA metrics and whether they need reimaging in a world of feature flags. Listen as Ariel explains why he believes feature flags are more than a tool, and have begun to reshape our understanding of software development and the metrics we use to measure it.

Dan and Ariel also touch on how feature flags can drastically reduce lead time and mean time to recover, and conclude their chat with an intriguing look at the granular nature of control in the modern software engineering landscape, where the unit of control has shifted from the application as a whole to individual features.

Show Notes:

OFFERS

  • Start Free Trial: Get started with LinearB's AI productivity platform for free.
  • Book a Demo: Learn how you can ship faster, improve DevEx, and lead with confidence in the AI era.

LEARN ABOUT LINEARB

  • AI Code Reviews: Automate reviews to catch bugs, security risks, and performance issues before they hit production.
  • AI & Productivity Insights: Go beyond DORA with AI-powered recommendations and dashboards to measure and improve performance.
  • AI-Powered Workflow Automations: Use AI-generated PR descriptions, smart routing, and other automations to reduce developer toil.
  • MCP Server: Interact with your engineering data using natural language to build custom reports and get answers on the fly.

More from Dev Interrupted

All 208 episodes
Reimagining DORA Metrics & Leveraging Feature FlagsDev Interrupted · 47 min
Listen in VO