CRO

Common Organizational Blockers to A/B Testing

The seven organizational blockers that stall A/B testing programs, why each one survives, and the specific move that removes it. With live calculators.

Flat illustration of a stepping stone path seen from above with three large boulders blocking the middle and a small flag at the far end

Most A/B testing programs do not stall because the statistics are hard. They stall because of organizational blockers: no traffic to size the test, a release process that treats testing as a gate, a senior stakeholder who reverses results, no owner for the primary metric, an engineering queue, serial approval gates, and a team with no memory of what it already tested. Six of those seven are process problems, which is why replacing the tool almost never unblocks anything. This article walks through each blocker, what keeps it alive, and the specific move that removes it, with live calculators for the two that are actually arithmetic in disguise. It is part of the guide on how to build an experimentation culture.

The seven blockers, and which ones are real

Before working through them one at a time, it helps to see them sorted by what kind of problem they actually are. The distinction matters because the fix is completely different: an arithmetic problem is solved with a calculation and a decision about what you are willing to detect, while a process problem is solved by changing who decides what and when.

Blocker How it sounds in the room What it really is Where the fix lives
Not enough traffic “We are too small to A/B test” Arithmetic, plus an unstated expectation about effect size Sizing the test and renegotiating the MDE
Testing slows us down “We cannot wait three weeks for every release” Process: testing applied as a gate instead of a filter Deciding which changes deserve a test
Results get overridden “The data says B but we are shipping A” Governance: no rule for when a business veto is legitimate A decision rule agreed before the test runs
No metric owner “Marketing says it won, product says it did not” Ownership: two teams reading two different numbers One named owner per primary metric
Engineering queue “The variation is in the backlog for next quarter” Process: every variation treated as a product feature A build path that does not consume sprint capacity
Serial approval gates “Legal has to review each variation” Process: approval placed after the work instead of around it Pre-approved guardrails instead of case-by-case review
No institutional memory “Did we test this already? Nobody knows” Knowledge: results stored by test name, not by question A repository organized by page and hypothesis

Only the first is genuinely a statistics problem, and even then not in the way people expect. The rest are decided by how the organization is wired.

Blocker 1: “We do not have enough traffic”

This is the only blocker with a calculable answer, and the answer is usually more nuanced than either side of the argument expects. The sentence “we do not have enough traffic” is almost never true on its own. What is true is “we do not have enough traffic to detect the effect size we implicitly assumed, in the window we implicitly assumed”. Once those two hidden assumptions are stated out loud, the conversation stops being about feelings.

Take a signup flow with a 3.1% baseline conversion rate and 9,200 visitors a week. At 95% confidence and 80% power, with a two-sided test:

Relative gain you want to detect Sample per variation Duration at 9,200 visits a week
10% 51,438 79 days
15% 23,387 36 days
25% 8,796 14 days
Sample size calculator
-Visitors per variation
-Total (2 variations)
-Estimated duration

Two-proportion normal approximation, 2 variations (50/50). Tweak the inputs and watch it update live.

Set the calculator to a 3.1 baseline rate, a 15 minimum detectable effect (relative) and 9,200 visitors per week to reproduce the middle row. The shape of that table is the whole lesson: the required sample scales with roughly the inverse square of the effect you want to detect, so halving your ambition on effect size does far more for feasibility than doubling your patience.

Test duration by the relative effect you choose to detectOn a 3.1% baseline with 9,200 visitors a week, detecting a 25% relative gain takes 14 days, a 15% relative gain takes 36 days, and a 10% relative gain takes 79 days. Duration grows steeply as the target effect shrinks.14 daysdetect +25%36 daysdetect +15%79 daysdetect +10%Same traffic, same baseline of 3.1%: only the ambition on effect size changes.
A low-traffic site does not have a statistics problem, it has a menu. It can detect big changes quickly or small changes slowly, and pretending otherwise is what produces underpowered tests read as conclusions.

There are three honest exits from this blocker, and one dishonest one.

The dishonest exit is running the test anyway and reading it early. That is covered in detail in the guide on CRO for low-traffic sites, and the next blocker shows the exact shape of the damage.

Blocker 2: “Testing slows us down”

This objection is usually aimed at the wrong target. Testing does not slow a team down; testing everything does. Programs that apply experimentation as a gate on all work end up with a release queue behind a statistical process that was never meant to carry it.

The workable rule is that experimentation is a filter on high-stakes changes, not a gate on every change. Three questions decide whether something deserves a test:

  1. Is being wrong expensive? A change to the checkout of a store that processes real revenue is a different risk from a change to a footer link.
  2. Is it hard to reverse? A pricing page change that anchors expectations is harder to walk back than a copy tweak.
  3. Do reasonable people disagree? If everyone in the room predicts the same outcome, a test buys less information than it costs, unless the stakes are high enough to justify verifying the consensus.

Everything that fails all three should ship without a test. That single rule usually cuts the “testing queue” by more than half, and it removes the most common structural cause of the complaint.

The second cause is running tests one at a time. Independent surfaces can run simultaneous experiments without interfering, and a program that runs three tests in parallel on unrelated flows has three times the learning rate with the same traffic per test. The practical limit is overlap: two tests touching the same funnel step can interact, and that is a design problem worth solving rather than a reason to serialize everything. The guide on how many A/B tests to run per month covers how to set that cadence against real traffic.

The third cause is the one nobody says out loud: the team stops the test early because the deadline arrived, and then discovers the result cannot carry the decision. Here is what that looks like with real numbers. The signup flow above needed 23,387 visitors per variation for a 15% relative effect. Suppose it is stopped at 13,200 per variation because the quarter is closing, with 409 conversions in the control and 478 in the variation:

Statistical significance calculator
Control (A)
Variation (B)
Control (A) · Rate-
Variation (B) · Rate-
Relative lift-
p-value-
95% CI of the difference-

Two-sided two-proportion z-test. "Not significant" almost always means not enough sample, not that the versions are equal.

Enter 13,200 visitors and 409 conversions for A, and 13,200 visitors and 478 conversions for B. The calculator returns a p-value of about 0.018, a relative lift of about +16.9%, and a 95% confidence interval on the absolute difference running from about +0.09 percentage points to +0.96 percentage points. The test is statistically significant, and it is still a bad basis for a revenue promise: translated to relative terms, the interval stretches from roughly +2.8% to +30.9%. A finance team told “this is worth 17% more signups” is being given the midpoint of a range that includes an almost negligible gain.

That is the honest cost of the shortcut. Not a wrong answer, a uselessly imprecise one, presented with the confidence of a precise one. The fix is not to stop reporting the number, it is to report the interval alongside it, which is covered in the statistical significance guide.

Blocker 3: results get overridden by seniority

Every experimentation program eventually produces a result somebody senior does not like. What happens next determines whether the program survives.

The mistake is treating all overrides as the same thing. Three distinct situations get confused, and only one of them is actually a problem.

Situation What is happening Legitimate? What to do
Business veto The decision depends on something the test did not measure: a legal constraint, a brand commitment, a partner agreement Yes Ship the override, record the reason in the repository, keep the test result intact
Distrust of measurement The stakeholder suspects the test itself is broken Yes Answer with an A/A test or a sample ratio mismatch check, not with an argument
Pure disagreement The result is valid, understood, and reversed because someone senior prefers the other option No This is the case that kills programs, and it is a governance failure rather than a personality one

The acronym for the third case is HiPPO, “highest paid person’s opinion”, popularized by Avinash Kaushik and Ronny Kohavi around 2006. The problem is never that an executive has an opinion. The problem is reversing a published result without a reason outside the metric, because in a single decision it teaches everyone that running the test was theater.

The structural fix is boring and effective: agree the decision rule before the test runs. Who decides, on which metric, at which threshold, and under what conditions a business veto is acceptable. A rule written before anyone knows the outcome is a rule everyone can accept. The same rule written after the result is a negotiation. The article on getting executive buy-in covers how to establish that agreement without turning it into a confrontation.

Blocker 4: nobody owns the primary metric

This blocker is quiet and expensive. It shows up as a meeting where marketing says the test won and product says it did not, and both are right, because they are reading different numbers.

It has one root cause: the primary metric was never named and owned before the test started. When that happens, every stakeholder brings the metric that best matches their goal, and the discussion becomes a negotiation about which number counts, held after everyone already knows which number favors their position.

The fix has three parts, and all three have to happen before the test runs:

  1. One primary metric per test, named in writing. Not a dashboard, one number.
  2. One named owner for that metric. A person, not a team.
  3. Guardrail metrics declared up front. The things that are not allowed to get worse, listed before you can see whether they did.

Guardrails are what let you say no to a winner honestly. A variation that lifts add-to-cart by 8% and drops revenue per visitor by 3% is not a winner, and without a declared guardrail that trade is invisible until somebody notices the revenue chart weeks later.

Blocker 5: the engineering queue

In many organizations the real bottleneck is not statistics or approval, it is that every variation is treated as a product feature, entering the same backlog as everything else. A test idea that takes twenty minutes to design waits six weeks to be built.

Two paths from a test idea to a running experimentIn the blocked path, the idea enters the product backlog, waits for sprint planning, is built by engineering and only then runs, so most of the elapsed time is waiting. In the unblocked path, presentation-layer changes are built directly by the experimentation team and go live, while only changes that touch business logic take the engineering route.Everything through the backlogIdeaBacklogwaits weeksSprintcompetes for capacityBuildTest runsmost of the time is waitingSplit by what the change touchesIdeapresentation layercopy, layout, order, offer framingbusiness logicpricing rules, data model, checkoutruns this weekengineering routethe majority of ideasthe minority that really needs it
Most test ideas change what the visitor sees, not what the system does. Routing those two categories down the same path is what turns a twenty-minute idea into a six-week wait.

The unblocking move is to split test ideas by what they actually touch. Changes to copy, layout, ordering and offer framing live in the presentation layer and can be built and shipped by the experimentation team with a snippet-based tool, with no sprint capacity consumed. Changes that touch pricing rules, the data model or checkout logic genuinely need engineering, and should take that route. In most programs the first category is the large majority of the backlog, which means the queue was never really about engineering capacity.

Two guardrails keep that from becoming a mess: a technical reviewer for anything that touches a page with real revenue on it, and a hard rule that presentation-layer experiments are removed once the test ends, with winners implemented properly in the codebase.

Blocker 6: serial approval gates

Legal review, brand review and compliance review are legitimate. Applying them case by case, after the variation is built, is what turns them into a blocker: every test waits in a queue whose length nobody controls, and the wait is invisible in any velocity metric.

The fix is to move the approval from the artifact to the boundary. Instead of reviewing each variation, agree once on what is pre-approved: which claims can be made, which pages are off limits, which elements always need review. A one-page set of guardrails signed off by legal turns 90% of tests into work that needs no review at all, and concentrates the review effort on the 10% that genuinely carries risk.

Approval design What gets reviewed Typical effect on velocity
Case by case, after build Every variation, individually High and unpredictable wait, invisible in reporting
Pre-approved guardrails The boundary, once; then only exceptions Most tests need no review; risky ones get real attention
No review at all Nothing Fast until the first incident, then usually replaced by case-by-case review

The middle row is the only one that survives contact with a real organization, and it requires an uncomfortable conversation up front rather than a comfortable one repeated forever.

Blocker 7: no institutional memory

The last blocker is the one that compounds. A team that cannot answer “what do we already know about this page” retests refuted hypotheses, argues from anecdote, and loses everything it learned when a person leaves.

The failure mode is usually not the absence of documentation. It is documentation organized around the wrong question. A repository sorted by test name and quarter answers “what did we run in Q3”, which nobody asks. It should answer “what do we already know about this checkout step”, which everyone asks, and that means indexing by page and by hypothesis, not by experiment.

The other half is the habit: consulting the repository has to be the first step of writing a hypothesis, not an optional courtesy. The guide to building an experiment repository nobody ignores covers the structure in detail; the short version is that a repository nobody reads is a cost, not an asset.

The blocker hiding behind all of them: judging the program by win rate

One belief keeps every blocker above alive: the assumption that a good experimentation program mostly wins. It does not, and it is not supposed to.

Ronny Kohavi, Diane Tang and Ya Xu, in “Trustworthy Online Controlled Experiments” (Cambridge University Press, 2020), report that even among well designed and well executed ideas at Microsoft, only about one third actually improved the target metric, roughly a third stayed flat, and the rest made things worse. That is not evidence of a weak team. It is the expected pattern when human intuition tries to predict real user behavior.

An organization that judges its program by win rate will always conclude the program is failing, and will start pressuring for shorter tests, smaller samples and friendlier readings, which is how every blocker above gets reinforced at once. The alternative framing is simple and defensible: the value of the program is the sum of the wins shipped and the losses prevented, and the second half is invisible unless someone reports it deliberately.

What gets measured What it rewards Failure mode
Win rate Testing safe, obvious changes Program looks successful and learns nothing
Tests completed per quarter Volume Underpowered tests run to hit a count
Decisions made with evidence Using the result, whichever way it points Requires reporting losses, which needs governance
Revenue at risk protected Catching the changes that would have hurt Needs the loss estimate recorded at decision time

Make this automatic with Donnu

Almost every blocker in this article gets worse when the mechanics of testing are expensive. If building a variation takes a sprint, nobody tests; if reading the result requires a spreadsheet, everybody reads the number they prefer. Donnu removes that friction: it runs the variation with a snippet that does not consume sprint capacity, and returns a verdict with the confidence interval attached, holding back the winner call until the variation has at least 200 visitors and 7 days on air, so the conversation about what the result supports starts from the same number for everyone.

Start a 14-day free trial and take one blocker off the list this week. For the full framework around it, see how to build an experimentation culture.

References

Read next:

Frequently asked questions

What are the most common organizational blockers to A/B testing?
Seven show up over and over: not enough traffic to size a test, the belief that testing slows delivery down, results being reversed by seniority, no single owner for the primary metric, an engineering queue that turns every variation into a sprint item, serial approval gates from legal or brand, and a team that cannot remember what was already tested. Six of the seven are process problems rather than statistics problems, which is why buying a better tool almost never fixes them.
How do you handle the "we do not have enough traffic to test" objection?
Treat it as an arithmetic question, not an opinion. Compute the sample per variation for the flow in question and see what the traffic can actually detect in a window you accept. On a 3.1% baseline with 9,200 weekly visitors, detecting a 15% relative gain takes 36 days, while a 25% relative gain takes 14 days. The honest move is not to abandon rigor, it is to change what you promise to measure: test bigger changes, pick a metric higher in the funnel, or accept a longer window.
Does A/B testing slow a team down?
Only when it is used as a gate on all work instead of a filter on high-stakes changes. A team that tests everything queues its releases behind statistics; a team that tests nothing pays for its mistakes in production. The workable rule is to test where being wrong is expensive or hard to reverse, and ship the rest, with tests running in parallel on independent surfaces rather than one at a time.
What should you do when an executive overrides a test result?
Separate the two legitimate cases from the illegitimate one. A business veto for reasons outside the metric (a legal constraint, a brand commitment, a strategy the test did not measure) is legitimate and should be recorded as such. Distrust of the measurement is also legitimate and is answered with an A/A test or a sample ratio mismatch check. Reversing a valid result simply because someone senior disagrees is the case that damages the program, because it teaches the team that running the test was theater.
Why does a low win rate make executives lose confidence in experimentation?
Because they are measuring the program by the wrong number. According to Kohavi, Tang and Xu in "Trustworthy Online Controlled Experiments", only about one third of well designed ideas tested at Microsoft actually improved the target metric. A win rate near a third is the expected pattern, not a failure, and the value of the other two thirds is the changes that never reached users. A program judged by win rate alone will always look like it is underperforming.
How do you keep a team from testing the same refuted hypothesis twice?
With a repository that is searchable by page and by hypothesis, not by test name, and with one habit: consulting it is the first step of writing a new hypothesis, not a step nobody takes. The failure mode is not the absence of documentation, it is documentation organized in a way that answers "what did we run in Q3" instead of "what do we already know about this checkout step".