Alexey Shurov.Insights
Bottlenecks

Your Developers Are Not the Bottleneck in Software Delivery

Review queues and environment waits consume more calendar time than coding in most pipelines. Here is how to see that in data you already have.

16 September 2026 . 7 min read . Alexey Shurov
Your Developers Are Not the Bottleneck in Software Delivery

The Complaint Is About Speed. The Problem Is Not Where You Think

In almost every pipeline audit I have done across finance, manufacturing, and distribution, the operations or technology leader opens the conversation the same way. Developers are slow. We need more of them, or we need them to move faster. By the time we pull the actual data, coding time is rarely the constraint. It is usually sitting at thirty to forty percent of total cycle time at most. The rest is waiting.

Waiting for a reviewer to pick up a pull request. Waiting for a test environment that is shared across three teams. Waiting for a deployment approval that requires two signatures because a compliance rule was written in 2019 and nobody has revisited it. That waiting is invisible unless you measure it deliberately, and most teams do not.

What the Data Actually Shows When You Look

I worked with a regional bank's technology group that was frustrated with their release cadence. They were shipping roughly one meaningful feature per sprint to production, and the business wanted three times that. The instinct was to hire. Before they did, we pulled ninety days of ticket and version control data they already had sitting in their project tracking system.

Median time from first commit to merged pull request was eleven days. Median active coding time on those same tickets, measured by commit frequency and story point estimates, was under two days. The other nine days were review queue time, back-and-forth comment cycles, and two mandatory environment promotion steps that required manual sign-off from a team in a different time zone.

No new headcount was needed to find that. The data was already there. Nobody had looked at it as a flow problem.

Review Queues Are a Queue Problem, Not a People Problem

When a pull request sits for four days before anyone looks at it, the instinct is to blame the reviewers. That is usually wrong. In a distribution sector client I worked with, the senior engineers who owned most review assignments were also the same people getting pulled into incident response, architecture decisions, and vendor calls. Their review queue was not a motivation problem. It was a capacity allocation problem made worse by a single-reviewer policy on all changes regardless of risk level.

Once we tiered changes by risk, low-risk configuration and UI changes went to any qualified engineer on the team, medium-risk changes required one senior reviewer, and high-risk data or integration changes kept the two-reviewer rule. Median review wait dropped by more than half within six weeks. The senior engineers did not work more hours. The work was just distributed more rationally.

The pattern holds across sectors. Finance tends to over-apply compliance review requirements to changes that do not actually touch regulated systems. Manufacturing operations teams tend to have environment promotion gates that made sense when deployments were monthly but create unnecessary friction when teams are trying to ship weekly.

Environment Waits Are the Constraint Nobody Talks About

Shared test environments are a quiet killer. In a field operations technology group I worked with, three squads shared two pre-production environments. Booking was informal, conflicts were common, and when one squad's integration tests ran long or broke the environment, everyone downstream waited. The teams had normalized this. It was just how things worked. When we mapped actual environment availability against sprint timelines, we found that each squad lost an average of one and a half days per sprint to environment contention.

That is not a developer productivity problem. That is an infrastructure allocation problem. Solving it does not require faster developers. It requires either more environments, better isolation, or a formal booking system with automatic teardown. All three are cheaper than hiring.

The reason environment waits go unmeasured is that they rarely show up in standard velocity metrics. Story points completed per sprint looks fine because teams adjust their estimates to absorb the wait. The wait is baked into the baseline and becomes invisible.

How to See It in the Data You Already Have

You do not need a new tool to find your real constraint. You need to look at the timestamps you are already collecting with fresh questions.

  1. Pull every ticket closed in the last sixty to ninety days and record three timestamps: when work started, when it first moved to review, and when it merged or deployed.
  2. Calculate time in each stage separately. Do not just look at total cycle time.
  3. Sort by time in review and time in environment promotion. Look for the long tail. Tickets sitting at the ninety-fifth percentile in review wait are telling you something specific.
  4. Cross-reference long-wait tickets against reviewer assignment. If the same two or three names appear repeatedly, you have a capacity concentration problem.
  5. Look at environment booking logs or deployment pipeline timestamps if you have them. Count how many deployments sat in a pending state for more than four hours. That number will surprise you.
  6. Map your findings against team or squad boundaries. Bottlenecks are often localized. One squad's pipeline can be broken while another's runs fine, and aggregate metrics hide that entirely.

This analysis takes a few hours with someone who knows how to query your project tracking data. It does not require AI, a consultant, or a new platform. It requires treating your delivery pipeline as a system with measurable flow, not a collection of individual contributor performance scores.

What Fixing the Real Constraint Actually Looks Like

When you find the real bottleneck, the fix is almost always operational, not technical. Tiered review policies. Environment provisioning changes. Approval workflow simplification. Explicit work-in-progress limits on review queues so reviewers have a defined daily obligation rather than an open-ended one.

In the bank example I mentioned earlier, the team also discovered that one approval step in their deployment pipeline was a manual checkbox that had been automated in their tooling eighteen months prior. Nobody had removed the manual step. It was adding two to three days to every production deployment for no reason. Removing it required a fifteen-minute conversation with the compliance team and a ten-minute configuration change.

I am not saying coding quality or developer skill does not matter. It does. But if your pipeline has a nine-day review queue, improving coding speed by twenty percent does not move your delivery cadence in any meaningful way. You are optimizing the wrong stage.

The Practical Takeaway

Before your next conversation about engineering headcount or velocity improvement, run the timestamp analysis above. Find the stage where time is actually going. In my experience across sectors, the constraint is in handoffs and waits at least twice as often as it is in active development work.

The teams that ship consistently fast are not teams with faster developers. They are teams that have looked at their pipeline as a flow system, found where work piles up, and made operational changes to keep it moving. That is a management and measurement problem before it is a technology problem. Treat it that way and you will get results faster than any hiring plan will deliver them.

Common questions

How do I convince leadership that the bottleneck is not developer speed when that is the prevailing assumption?

Show the timestamp data, not an argument. Pull ninety days of tickets, break out time by stage, and put the numbers in front of the room. When leadership sees that the median pull request sat in review for eight days while active coding took one and a half, the conversation shifts on its own. Data from your own systems is harder to dismiss than a framework or a consultant's opinion.

What if we do not have good timestamp data in our project tracking system?

Start collecting it now and accept that you will have a gap. In the meantime, run a two-week manual observation. Have each developer log when they submit work for review and when it gets picked up. Even two weeks of that data will show you the shape of the problem. Imperfect data collected quickly beats perfect data collected never.

Is a long review queue always the bottleneck, or are there other common culprits?

Review queues and environment waits are the two most common constraints I find, but not the only ones. Deployment approval chains in regulated industries can be just as bad. So can unclear acceptance criteria that cause tickets to bounce back from QA repeatedly. The method is the same regardless: measure time in each stage separately and look for where work accumulates. The specific answer varies by team and sector.

How do work-in-progress limits on review queues actually work in practice?

The simplest version is a team agreement that each engineer reviews a defined number of pull requests per day before picking up new development work. Some teams make this explicit in their daily standup. Others use their project tracking system to surface review assignments automatically each morning. The mechanism matters less than the commitment. The goal is to make review a scheduled obligation with a predictable service time, not an interruption that happens whenever someone gets around to it.

Want this in your operation

I build and run production AI agents that take repetitive work off operational teams. Tell me what your team spends too long on.

Tool guides

Choosing software for this problem space, see the guides on bottleneck detection tools and AI analytics tools for mid-size companies.

More insightsshurco.ai