AI Engineer World's Fair 2025
Does AI Actually Boost Developer Productivity? (Stanford / 100k Devs Study)
Read the talk
Does AI Actually Boost Developer Productivity? (100k Devs Study)
Yegor Denisov-Blanch presents evidence from enterprise Git histories showing that AI coding tools increase output on average, but rework, task complexity, project maturity, language popularity, and codebase size determine how much becomes useful progress.
From a talk by Yegor Denisov-Blanch
At a glance
Ideas worth remembering
Count delivered functionality rather than commits, pull requests, tasks, or lines of code; AI-generated repairs can inflate every activity metric without creating equivalent progress.
The talk’s aggregate estimate falls from a 30–40% apparent output increase to roughly 15–20% net productivity after rework and bug fixing.
Low-complexity Greenfield work shows the strongest gains; high-complexity Brownfield work shows indicative gains of only 0–10% and can sometimes become slower.
Widely used languages benefit more consistently than the lower-popularity examples in the talk, where unreliable suggestions can erase gains on complex work.
Treat the codebase-size relationship as a hypothesis rather than a settled result: the talk labels it illustrative and proposes effective-context limits, noise, dependencies, and domain logic as possible causes.
Replace the replacement story with a measurement question
The talk opens with executive pressure to treat AI adoption as a race toward replacing developers. Denisov-Blanch offers a more measured starting point: AI coding assistance can increase developer productivity, but it can also decrease it. The useful question is whether generated code helps a particular team deliver useful functionality faster.
The research group approaches that question with longitudinal and cross-sectional data. Historical Git records let it examine changes over time, including work recorded before a company joined the study. Comparisons across more than 600 enterprises, midsized companies, and startups provide the second dimension. The dataset described in the talk contains more than 100,000 software engineers, dozens of millions of commits, and billions of lines of code.
Most observations come from private repositories. Denisov-Blanch argues that this makes team-level measurement more self-contained than public-repository activity, which may represent occasional or weekend work. That choice improves coverage of organizational coding activity, but the method still centers on changes visible in Git; the talk does not claim that repository history captures every valuable activity performed by an engineer.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
More activity can conceal less useful progress
The first measurement trap is counting commits, pull requests, completed tasks, or shorter intervals between commits. Tasks differ in size, so a higher count does not establish that a team delivered more functionality. AI compounds the problem when generated code creates bugs and therefore creates additional repair tasks. Both the original change and its fix increase activity, even if the team has mostly spun its wheels.
The second trap is generalizing from clean-slate experiments. When one group receives AI assistance and another does not, the assigned work is often a Greenfield task with little prior context. Models are especially effective at producing boilerplate in that setting. Established software work is usually Brownfield: engineers must understand existing code, dependencies, conventions, and domain logic. A result from an isolated new project does not automatically transfer to that environment.
The third trap is self-reporting. In a small experiment with 43 developers, participants placed themselves in five-percentile buckets relative to a global mean or median. Their estimates missed measured productivity by about 30 percentile points, and only one in three placed themselves within the correct quartile. Surveys can still reveal morale, satisfaction, and other experiences that code metrics cannot see. Denisov-Blanch’s narrower judgment is that they should not serve as the productivity measure itself.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Measure delivered functionality, then account for rework
The proposed method begins with an expensive ideal: ask a panel of 10 to 15 independent engineering experts to evaluate a code change for qualities such as maintainability, output, quality, and the effort required to produce it. Denisov-Blanch says these panels agree with one another and that their aggregate assessments predict real-world outcomes. Repeating that process for every commit, however, would be too slow and costly.
The group therefore built a model intended to automate the panel’s assessment. It connects to Git, examines the source-code changes in each commit, and scores the change across similar dimensions. Authors, SHAs, and timestamps locate those assessments by person and time. In this framework, team productivity is the functionality delivered over time—not the number of commits or lines written. The model is an approximation that the speaker says correlates well with expert review; the talk does not provide the correlation statistic or a full validation protocol.
A pilot involving about 120 developers shows why the distinction matters. Monthly output is divided into added functionality, removed functionality, refactoring, and rework. Refactoring changes older code and may or may not be wasteful. Rework changes much more recent code, so the framework treats it as corrective work that reduces the value of the initial output. After AI entered the team’s workflow, both apparent production and rework rose.
The headline arithmetic is simple but consequential. AI-assisted coding appears to raise output by roughly 30–40%, yet bug fixes and other rework consume a substantial part of that increase. The aggregate net improvement presented in the talk is about 15–20% across industries and sectors. That average is useful as a baseline, not a forecast for every team—the distribution matters more than the mean.
Developers produce more apparent output.
AI can increase delivered output while also creating corrective work that reduces the net gain.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Complexity and project maturity move the result
The productivity distributions begin as low as −20%, which immediately rules out a universal positive effect. Simpler work performs better than complex work, and low-complexity Greenfield tasks show the strongest distribution of gains. Denisov-Blanch limits this comparison to enterprise settings; he expects personal Greenfield projects to behave differently and potentially show larger improvements.
High-complexity tasks produce smaller gains and sometimes make engineers slower. Brownfield work also benefits less than Greenfield work. The charts summarize both a central estimate and an interquartile range, with the line spanning roughly the 25th to 75th percentiles. This matters because two teams doing nominally similar work can still land on different sides of the average. Denisov-Blanch also says the causes of the negative cases are not yet clear.
A simplified matrix based on 136 teams across 27 companies makes the interaction concrete: low-complexity Greenfield work shows indicative gains of 30–40%; high-complexity Greenfield work, 10–15%; low-complexity Brownfield work, 15–20%; and high-complexity Brownfield work, 0–10%. The speaker describes these as orientative guidelines. They can help decide where to pilot AI, but they are not precise promises for a project plan.
Language popularity introduces another source of variance. For widely used languages such as Python, Java, JavaScript, and TypeScript, the talk reports gains around 20% on simpler work and 10–15% on complex work. Assistance is less dependable for the lower-popularity examples given—COBOL, Haskell, and Elixir—and complex tasks in those languages can become slower. A tool that helps only two times out of five may be abandoned even if its occasional suggestions are good.
30–40% indicative gain
Approximate guidelines from 136 teams across 27 companies; they summarize observed ranges rather than guarantee outcomes.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A large context window does not equal effective codebase understanding
The final analysis is explicitly more theoretical and less empirically established. Denisov-Blanch presents an illustrative curve in which AI productivity gains fall sharply as codebases grow from 1,000 to 10 million lines. He proposes three mechanisms: finite effective context, a worsening signal-to-noise ratio, and the growing number of dependencies and domain-specific rules in larger systems.
An advertised context-window capacity does not show that a model will use every token equally well. Citing a paper comparison, the talk describes coding-task performance declining as context increases from 1,000 to 32,000 tokens; one illustrated model falls from roughly 90% to 50% by 32,000 tokens despite supporting a much larger maximum window. The extrapolation to 64,000 or 128,000 tokens is rhetorical, not a measured result presented here.
The practical conclusion is selective adoption. Use AI in many cases, but evaluate it against the work actually being done. Teams should segment results by task complexity, Greenfield versus Brownfield status, language popularity, codebase size, and supplied context. Most importantly, they should measure useful functionality and the rework needed to preserve it. A universal license rollout may be easy; a universal productivity forecast is not.
Denisov-Blanch closes by directing interested readers to the Stanford Software Engineering Productivity Research portal. The official AI Engineer talk page provides the recording, chapters, transcript, and a concise reading version.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
The research portal named at the end of the talk, with information about the group’s engineering-productivity research.
The official AI Engineer page for the recording, with chapters, highlights, transcript, and a reading version.
Further reading
- Yegor Denisov-BlanchReference
The speaker’s site describes his developer-productivity research, publications, and subsequent work on measuring AI-assisted engineering.
A later presentation extending the measurement approach with matched teams, usage data, codebase cleanliness, guardrail metrics, and an enterprise case study.
Related talks
- How to Quantify AI ROI in Software Engineering (Stanford Study / 120k Devs)
Denisov-Blanch extends this framework into matched-team analysis, usage measurement, guardrail metrics, and a detailed enterprise adoption case.
- No Vibes Allowed: Solving Hard Problems in Complex Codebases
Dex Horthy examines why coding agents create rework in established codebases and presents context engineering as a practical response to the Brownfield difficulty described here.
- Why Agent Hype can fall short of reality – Joel Becker, METR
Joel Becker contrasts benchmark gains with a randomized study of experienced developers working on messy, context-dependent software tasks.
Read the complete timestamped transcript
- 0:00
[upbeat music] In January of this year, Mark Zuckerberg said that he was gonna replace all of the mid-level engineers at Meta with AI by the end of
- 0:25
the year. I think Mark was a bit optimistic, and he was probably acting like a good CEO would, would to inspire a vision and also probably to keep the Facebook stock price up.
- 0:38
But what Mark also did was create a lot of trouble for CTOs worldwide. Why?
- 0:46
Because after Mark said that, every single CEO in the world, almost, turned to their CTO and said, "Hey, Mark is-- says he's gonna replace all of his developers with AI.
- 0:57
Where are we in that journey?" And the answer probably was, "Honestly, not very far, and we're not sure we're gonna do that."
- 1:05
And so I personally think hopefully this is not, um, you know, gonna, gonna change, but I don't think AI is gonna replace developers entirely, at least, at least this year, let alone at, at, at Meta, right?
- 1:19
But, um... And I do think that AI increases developer productivity, but there's also cases in which it decreases developer productivity. So AI or using AI for coding is not a one-size-fits-all solution, and there are cases in which it shouldn't be used.
- 1:35
And so for the past three years, we've, uh, been running one of the largest, uh, studies on software engineering productivity at Stanford, and we've done this in a time series and cross-sectional way.
- 1:49
So time series meaning that even if a participant joins in twenty twenty-five, we get access to their Git history, meaning we can see trends of data across time. We can see COVID.
- 1:58
We can see AI. We can see all of these trends and, and, uh, things that happened. And then also cross-sectional because we have more than six hundred companies participating, enterprise, mid-sized, and also startups.
- 2:11
And so this means that we have more than a hundred thousand software engineers in our dataset right now, dozens of millions of commits, and billions of lines of code.
- 2:22
And most importantly, most of this data is private repositories. This is important because if you use a public repo to measure someone's productivity, that public repo is not self-contained.
- 2:33
Someone could be working on that repo on the weekend or once in a while, right? Whereas if you have a private repo, it's much more self-contained and much easier to measure the productivity of a team, of a company, of an organization.
- 2:49
So late last year, there was a huge, um, controversial, uh, thing around ghost engineers. So this came from kind of the ser-- the, the same research group, our research group.
- 2:58
And here, uh, Elon Musk was kind enough to retweet us. But what we found is that roughly ten percent of software engineers in our dataset, at the time about fifty thousand, were what we called ghost engineers.
- 3:12
These people collect a paycheck but basically do no work.
- 3:16
So that was very surprising for some people, very unsurprising for others. And so some of the people in this research team are, for example, Simon from industry. Uh, so he was CTO at a unicorn, which he exited, and he had a team of about seven hundred developers.
- 3:34
And as CTO, he was always the last person to know when something was up with his engineering team, right? And so he thought, "Okay, how can I change this?"
- 3:42
Myself, I've been at Stanford since [REDACTED:age], and I focus on what I call data-driven decision-making in software engineering. And in a past life, I was looking after digital transformation for a large company with thousands of engineers.
- 3:57
Part of the team is also Professor Kosinski, who is at Stanford, and his research focuses on human behavior in a digital environment. And basically, he was the Cambridge Analytica whistleblower back in the day, if you recall that.
- 4:11
So today, we're gonna be talking about three things.
- 4:14
We're gonna start off with the limitations of existing studies that seek to quantify the impact of AI on developer productivity. We're gonna showcase our methodology. And lastly, we're gonna spend most of the time looking at some of the results.
- 4:27
What is the impact of AI on dev productivity, and how are ways we can slice and dice these results to make them more meaningful?
- 4:37
And so there's lots of research being done on this topic, but a lot of it is led by vendors who themselves are trying to sell you their own AI coding tools, right?
- 4:48
And so there's a bit of a conflict of interest there sometimes. And the biggest three limitations that I see is that a lot of these studies revolve around commits and PRs and tasks.
- 4:58
"Hey, we completed more commits, more PRs. The time between commits decreased."
- 5:04
The problem here is that task size varies, right? And so delivering more commits does not necessarily mean more productivity. And in fact, what we found very often is that by using AI, you're introducing new tasks that are bug fixes to the stuff that the AI just coded before.
- 5:22
So by that case, like you're kinda spinning your wheels in place, right? So that's kind of funny.
- 5:29
Secondly, there's a bunch of studies who say, "Well, we grabbed a bunch of developers. We split them into two groups, and we kinda gave one AI, and one of them we didn't."
- 5:37
And what usually happens there is that these are kinda greenfield tasks, where they're asked to build something with kinda zero context from scratch. And there, of course, AI decimates, uh, the non-AI people, but that's bo- because AI is just really good at greenfield kinda boilerplate code, right?
- 5:54
But actually, most of software engineering isn't greenfield and isn't always boiler-boilerplate, right? And so there's usually an existing code base. There's usually dependencies. So these studies can't be like applied to, to well to these situations either.
- 6:10
And then we also have surveys, which we found to be an ineffective predictor of productivity by doing this small experiment with forty-three developers whereby we ask every developer to evaluate themselves relative to the global mean or median in five percentile, uh, buckets from zero to one hundred.
- 6:30
And then we compare that to their measured productivity. We'll get into what that means later. But what we found is that asking someone how productive they think they are is almost as good as flipping a coin.
- 6:40
There's very little correlation, right? And so we found that people misjudged their productivity by about thirty percentile points.
- 6:49
Only one in three people actually estimated their productivity within their quartile, o- one quartile. And I think surveys are great. They're valuable for surfacing, you know, morale and other issues that cannot be derived from metrics, but surveys shouldn't be used to measure developer productivity, much less the impact of AI on developers
- 7:10
for pr- p- productivity cases. You can measure it to kinda see how happy they are using AI or whatever, I suppose. Um, great. So now let's dive into our methodology.
- 7:21
So in an ideal world, you would have an engineer who writes code, and this code is evaluated by a panel of ten or fifteen experts who separately, without knowing what every person is, uh, answering, evaluates that code based on quality, maintainability, output, how long would this take me, how good is it, right?
- 7:41
So k- kind of like a, a bucket of questions. And then, um, what happens is that you aggregate those results, and we found two things. The first one is that this panel actually agrees with one another.
- 7:54
So it turns out that one engineering expert agrees with the other engineering exp- expert when they're talking about an objective code in front of them. And secondly, and probably most importantly, is that you can use this to predict reality, and reality is predicted by a panel like this.
- 8:11
The problem then is that this is very slow, it's not scalable, it's expensive. Um, and so what we did is we built a model that essentially automates this, correlates pretty well, it's fast, it's scalable, and it's affordable.
- 8:24
The way it works is it plugs into Git, and then the model analyzes the source code changes of every commit and quantifies them based on a bunch of these dimensions.
- 8:35
And then since every commit has a unique author, a unique SHA, a unique timestamp, then you can kinda understand that, uh, okay, the productivity of a team is basically the functionality of the code they deliver across time, not the lines of code, not the whatever commits, but the func-- like what that code is doing, right?
- 8:55
And so then you can kinda put this in a dashboard and, uh, overlay it across time and get something similar to this. [clears throat]
- 9:05
Great. So now let's dive into some of our results.
- 9:10
So here in September is when this company implemented AI. This is a team of about a hundred and twenty developers, and they were piloting whether they wanted to use, uh, you know, AI in their kinda regular workflow.
- 9:22
And we have here, um, these bars, and every bar is the sum total of the output done in that month
- 9:30
using our methodology, not lines of code. And we can see that in green it's added functionality, in gray it's removed, in blue is refactoring, and in orange is rework.
- 9:41
And so rework versus refactoring, they both alter existing code, but rework alters code that's much more recent, meaning it's wasteful. Refactoring could be wasteful, could be not wasteful. And so from the get-go, you see that by implementing AI, you get a bunch more of rework.
- 9:59
What happens is that you feel like you're delivering more code because there's just like more volume of code being written, more commits, more stuff being pushed. But not all of that is actually useful.
- 10:08
To be clear, I think there... I mean, based on this chart and overall, there is a productivity boost of about fifteen to twenty percent, but then a lot of the gains you're seeing are, uh, basically this kind of rework, which is a bit, you know, misleading.
- 10:24
So if I could summarize it into one chart with many discrepancies, it would be something like this.
- 10:31
So with AI coding, you generate or you increase your productivity by roughly thirty, forty percent. Like, you're delivering more code. However, you gotta go back and kinda fix some of the bugs that code introduced and kinda, you know, fix the, the, the mess that the AI made, which in turn gives you an average productivity gain across all
- 10:50
industries, all sectors, everything, of roughly about fifteen to twenty percent.
- 10:56
There's a lot of nuance here, which we're gonna see in just a second.
- 11:03
So here we have two violin charts, and they plot the distributions of the gains in productivity from using AI. And so kind of like the y-axis is the gains.
- 11:15
It starts from minus twenty percent, take note, and then it goes up. And here we have kind of four pieces of data being shown. In blue is low complexity tasks,
- 11:26
and in red is high complexity tasks. And kind of like your left, uh, the, the chart to the left is greenfield tasks, the chart to the right is brownfield tasks.
- 11:38
So right from the get-go, the first conclusion we have is that, sure, it, it seems like AI performs better in coding with simpler tasks. That's good. It's proven by data.
- 11:48
That's awesome. The second thing we see is that, hey, it sounds like for low complexity greenfield tasks, there is a much more elongated distribution and a much higher distribution on average.
- 12:02
Keep in mind that this is for enterprise settings. This doesn't apply for kinda like personal projects or vibe coding something for yourself from scratch. The improvements there would be much bigger.
- 12:11
This is kind of for like real world working company settings.
- 12:16
And the third thing we see is that if you look at the high complexity tasks, I mean, they're lower than the low complexity ones on average in terms of the distribution, but also in some cases,
- 12:27
they are more likely to decrease an engineer's productivity.
- 12:32
Now, this decrease could be for many things, many reasons, but that's kinda what we see in the data, right? The underlying causes are still not super clear to us.
- 12:43
If we translate this to a chart like this, which is a bit more digestible, you have, uh, in, i- in the bars and the columns
- 12:52
kind of like the average or the median gain, and then the line represents the interquartile range. So the bottom of the line is the twenty-fifth percentile, and the top of the line is roughly seventy-fifth percentile.
- 13:04
And so here it's very clear to see how we have, you know, more gains from low complexity tasks, less gains from, uh, high complexity tasks, and then brownfield, it's harder to leverage AI, um, to make increases in productivity there compared to greenfield.
- 13:22
So if there is maybe a slide that you could show to your leadership team, it could be this one or it could also be this one. So here I have a matrix really simplifying things.
- 13:31
You know, reality is a bit more difficult than this, but here we have kinda on one axis task complexity, low and high, on the other one, project maturity, greenfield versus brownfield.
- 13:40
Kind of we see that, hey, low complexity greenfield, thirty to forty percent gains, right, from AI.
- 13:47
High complexity, but greenfield, more modest gains, ten to fifteen.
- 13:52
Brownfield and low complexity, pretty good, fifteen to twenty percent. And most importantly, high complexity brownfield tasks, zero to ten percent.
- 14:02
These are orientative guidelines based on what is seen... what we see in the data. And I forgot to mention, uh, this slide has a sample size of hundred and thirty-six teams across twenty-seven companies, so pretty representative.
- 14:14
Um, and then that's gonna derive-- or this chart is derived from that data.
- 14:21
Then here we have a similar matrix, except at the bottom we have language popularity. So in low we have examples such as COBOL, Haskell, Elixir, really kinda obscure, obscure stuff, and high is things like Python, Java, you know, JavaScript, TypeScript.
- 14:38
And what we see is that AI doesn't really help even with low complexity, uh, tasks for low popularity languages. It can help a bit, but it's not terribly useful, and what ends up happening is that people just don't use it because if it's only helpful two times out of five, you're just not gonna use it very often.
- 14:54
What's funny or interesting is that for low language popularity and complex tasks, AI can actually decrease productivity because it's so bad at coding in COBOL or Haskell or Elixir that it just makes you slower, right?
- 15:06
Granted, this isn't very, uh... Like, this happens, but it may be five or ten percent of the kinda global development work, if that, right?
- 15:15
Most of the development work is probably somewhere in the lang- in the high language popularity kinda part of the chart. And here you have gains between twenty percent for the low complexity and ten to fifteen percent for the high complexity.
- 15:35
So now moving into something a bit more theoretical, less empirically proven, but more so kind of like what we're seeing in, in, in the data, right? This is like an illustrative chart which has kinda productivity gain from AI on the Y-axis and a logarithmic scale of the codebase size, right, from one thousand lines of code to ten
- 15:54
million on the X-axis. And we see that as the codebase size increases, the gains you get from AI decrease sharply, right? And I think most codebases nowadays are kinda somewhere in the...
- 16:06
depending on, on your use case, right? But they're bigger than a thousand lines of code unless you are a YC startup or something that's like kinda spun out a couple months ago, right?
- 16:15
And that's because, you know, there's three, three reasons for this really. Context window limitations. We're gonna see in a second how performance decreases even with larger context windows. The signal-to-noise ratio is...
- 16:27
kinda confuses the, the model, if, if you will. And then of course, larger codebases have more dependencies and more domain-specific logic present.
- 16:38
And so then borrowing work from this paper called NoLiMa, which shows you on a scale of zero to one hundred how LLMs perform on coding tasks, you see that as context length increases from one thousand to thirty-two thousand tokens,
- 16:56
performance decreases. And so we see all these models here. For example, Gemini 1.5 Pro has a context window of two million tokens, and you might think, "Whoa, I can just throw my entire codebase into it and it's gonna retrieve and then code perfectly," right?
- 17:09
And what we see is that even at thirty-two thousand tokens, it's already showing a decrease in performance from ninety percent to about fifty percent, right? So what's gonna happen when you move from thirty-two to sixty-four or one twenty eight, right?
- 17:22
You're gonna see really, really poor performance here.
- 17:26
And so in short, AI does increase developer productivity. You should use AI for most cases, but it doesn't increase the productivity of developers all the time and equally. It depends on things like task complexity, codebase maturity, language popularity, codebase size, and also con- context length.
- 17:48
Thank you so much for listening. If you'd like to learn more about our research, you can access our research portal, which is softwareengineeringproductivity.stanford.edu. You can also reach me, uh, by email or LinkedIn.
- 18:01
Super happy to talk about this topic at any time. Thank you so much. [audience applauding] [upbeat music]