Experimentation Driven Development

This ad is not shown to multipass and full ticket holders
React Advanced
React Advanced 2026
October 23 - 26, 2026
London, UK & Online
Upcoming event
React Advanced 2026
React Advanced 2026
October 23 - 26, 2026. London, UK & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

As developers, we constantly ship new features to production, but how do we know their impact? In this talk, we’ll discuss why it’s important to adopt experimentation-driven development, how to get leadership buy-in, and ways this can go wrong. 

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

FAQ

Experimentation-driven development is a process that focuses on shipping features that positively impact users and metrics by integrating A-B testing to validate product changes.

Graham McNicol is the co-founder of GrowthBook and a speaker on experimentation-driven development.

GrowthBook is the most popular open source platform for feature flagging and A-B testing.

A-B testing is a controlled way of measuring the impact of changes on real users by comparing different variants and tracking user behavior.

A-B testing is important because it provides a causal way to determine the impact of product changes, helping to avoid guesses and assumptions.

Challenges include a low success rate of about one-third for tests in moving intended metrics and the difficulty of predicting user preferences accurately.

Feature flagging allows conditional releasing of features, enabling safer deployments by separating code deployment from feature release and facilitating A-B testing.

The key takeaway is that 'done' should not mean shipped; instead, every project should involve hypothesis testing with A-B testing to ensure success.

Common objections include relying on before-and-after data analysis and small-sample user testing, both of which lack the control and scale of A-B testing.

Companies can integrate experimentation-driven development by defining success criteria, hypothesizing outcomes, and using feature flags and A-B testing in their product development process.

Graham McNicoll
Graham McNicoll
10 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hi, I'm Graham, co-founder of GrowthBook, and in this lightning talk, I'll cover experimentation-driven development. We'll explore how we build products today, the issue of knowing if our shipped products actually work, and the solution: experimentation-driven development. A-B testing is a controlled way of measuring the impact of changes on real users. It involves starting with a hypothesis, assigning users to different groups, exposing them to different variants, and tracking their behavior. Examples from Airbnb and Netflix show the varying success rates of A-B tests. On average, only one-third of tests are successful in moving the desired metrics. Without testing, you're just guessing. Common objections include relying on before and after data without controlled experiments. A-B testing helps control for variants and noise in data, allowing you to determine causation. User testing with small sample sizes may not provide accurate insights. Integrating A-B testing into the development process helps define hypotheses, track metrics, and iterate quickly. Use feature flags to easily test and roll out changes. Feature flags add safety by separating code deployment from feature release. A-B testing allows conditional feature release and provides statistical results. A-B testing replaces differences of opinion and celebrates learning from failures. Hypothesis testing is crucial for determining the success of a project. Experimentation driven development is easy and should be done on every project.

1. Introduction to Experimentation-driven Development

Short description:

Hi, I'm Graham, co-founder of GrowthBook, and in this lightning talk, I'll cover experimentation-driven development. We'll explore how we build products today, the issue of knowing if our shipped products actually work, and the solution: experimentation-driven development.

Hi, everybody. I'm Graham, and I'm very excited to give you this lightning talk today on experimentation-driven development.

So, I'm Graham McNicol, I'm the co-founder of GrowthBook. GrowthBook is the most popular open source feature flagging and A-B testing platform. And the goal of today's talk is to help you understand the fundamentals of what we call experimentation-driven development.

So, we're going to take a look at how we develop products today, and then we're going to take a look at A-B testing and then some ways we can combine them together to make better products. This is an animal-based presentation. That's my dog Nellie, and so if you don't like what I'm talking about, at least you get some pictures of pretty animals.

So, let's take a look at how we build products currently. So, if you're like me, you use some kind of agile system. This is Scrum. If you're unlucky, you get to use some process like this. I feel very sorry for you if you do. But if you look at the whole landscape of different agile processes, they're all missing one thing, which is, what does done mean, right? So, for some processes, you might have something like, you know, done means is a defect-free, or did we accept the user stories, or does the product owner like it? And so, typically, what we mean by done is, like, shipped, right? We shipped it to production, and we are done. But how do we know that thing we shipped actually worked, right? Or bigger picture, like, what if we were wrong for building it in the first place? Like, what if the product we shipped actually hurt our business? And so, this is the problem we're really trying to solve with experimentation-driven development, because we really want to focus on shipping the features that positively impact our users and our metrics, and hopefully both.

2. Understanding A-B Testing and Common Objections

Short description:

A-B testing is a controlled way of measuring the impact of changes on real users. It involves starting with a hypothesis, assigning users to different groups, exposing them to different variants, and tracking their behavior. Examples from Airbnb and Netflix show the varying success rates of A-B tests. On average, only one-third of tests are successful in moving the desired metrics. Without testing, you're just guessing. Common objections include relying on before and after data without controlled experiments.

All right, so with that in mind, let's take a look at A-B testing. So, the definition of A-B testing that I really like is a controlled way of measuring the impact of changes on real users. And so, from a high level, what that looks like is, first, you start with a hypothesis, some idea that you want to test. And then, you assign, usually randomly, users into different groups. You then expose those groups to the different variants. Then, you track how they behaved in your application or product. And then, you use statistics to figure out, was that change we detected statistically significant or not?

So, with that in mind, let's take a look at some examples of A-B testing in the real world. Now, these are web-based ones, but you can A-B test in any product that's digital at all. So, this is from Airbnb, and they wanted to increase conversion rates and decrease the cancellation rates by being more clear about the cancellation policies by showing this timeline. So, take a moment to think about if you think this change was successful or unsuccessful in improving those metrics. Well, it turns out this test lost. So, let's take another look at another example. So, this is from Netflix, and the control version has just one button that says try now, and then they test a new variant that has an email address and then the button. So, go to a registration page after that. So, take a moment to think if that won, and that one actually did. And that kind of goes against some of the tenants of UI where we think that you shouldn't show form fields wherever possible.

So, with that in mind, how often do we think A-B tests win? Like, on average, industry-wide. So, what I mean by win is like how often does an A-B test that we launch, how often is it successful in moving the metrics with which it was designed to improve? And it turns out that actually only one-third of the tests that we run are successful in moving a metric that we meant it to move. That means that two-thirds of the time is actually unsuccessful or hurts our product, right? And it's a little bit worse than that because that one-third is actually a high estimate. It turns out industry-wide, it's usually a little bit lower, and depending on how optimized your product is, it gets increasingly hard to improve it. One interesting thing to take away from this is like nobody ships a product or builds a product that they don't think will win, right? So, that one-third success rate is our best effort. We're building things we think will work and we're still unsuccessful two-thirds of the time. It just turns out we are really not great at predicting what our users want. And the other takeaway from here is that without testing, you're guessing, because there's really no causal way to figure out the impact of what you're doing without running a controlled experiment.

Now, I hear some common objections all the time about why companies don't run experiments. And so, let's take a quick look at some of them now. The first one is, what do we do? We look at before and after data and we just squint at it. So, let's give a hypothetical what this might look like. So, we have some conversion rate over time and we roll out a new feature here and then we track its performance over time.