Artificial intelligence could trigger a massive leap in software development productivity. What impact might this have?
Let’s assume we manage to improve productivity in software development by an order of magnitude — so by a factor of ten. To make this more concrete, consider a thought experiment: A project manager wakes up one morning and realizes that her project now requires only 10 people instead of 100. She also knows exactly who those 10 people are. This is as certain to her as the sky being blue.
What will the project manager do?
One option is to continue the project with just 10 people and either reassign or lay off the remaining 90. However, implementing this is difficult because it means admitting that too many people were working on the project in the first place. Moreover, managing a 100-person project carries more prestige than leading a team of only 10. There’s also a risk: once these employees are let go, it may not be easy to bring them back if a new need arises.
Another option is to let the 10 people work on the original project while assigning the others new tasks. This could involve expanding the project’s scope, which is often feasible since the demand for additional features is common. Alternatively, the excess staff could be assigned to a different project. Both approaches ultimately generate more value for the organization and, consequently, more prestige for those involved.
Perhaps the additional staff could accelerate the project, but this is unlikely. Adding people to a project can actually slow it down due to the increased need for onboarding and communication. Fred Brooks pointed this out in his book The Mythical Man-Month.
Realistic?
But is such a thought experiment even realistic? Fred Brooks had an answer to this as well: In his paper “No Silver Bullet”, he argued that no single measure can improve software development productivity by an order of magnitude. However, he left room for the possibility that a combination of measures might achieve this. And, much like this blog post, his statement was a hypothesis rather than a proven fact.
One reason the scenario might actually be realistic: As mentioned earlier, larger teams bring more prestige, creating an incentive to structure projects around many people. Parkinson’s Law states that work expands to fill the time available, and similarly, available employees tend to be assigned to projects. Given that software development is highly communication-intensive, a bloated team can lead to communication bottlenecks. Since communication structures influence software architecture (as per Conway’s Law), excessive complexity can lead to architectural breakdowns. Conway also suggested that inflated projects with poor communication result in poor architecture.
Thus, a leaner team with a well-structured architecture and fewer communication hurdles might achieve the same results just as quickly. Perhaps this thought experiment isn’t entirely unrealistic after all.
Artificial Intelligence?
The real motivator for this thought experiment is a different trend: AI could significantly boost coding efficiency, as discussed in another blog post. This raises an important question: What happens if coding productivity increases tenfold?
The thought experiment suggests that even with such a boost, more software would likely be produced rather than fewer developers being needed. As a result, software could be applied to areas where it currently isn’t economically viable.
Economics has a name for this phenomenon: the rebound effect. When cars become more fuel-efficient, for example, they are driven more, potentially increasing overall fuel consumption. AI might lead to a similar effect: Software development becomes more efficient, but as software is deployed in more domains, the total effort spent on it remains the same. Indeed, software is already permeating more areas, and AI could accelerate this trend.
In the extreme case, people without traditional programming skills might be able to develop software. This promise has surfaced before with technologies like COBOL, as well as low-code and no-code platforms. But even if AI succeeds in democratizing software development, history suggests certain outcomes. Desktop publishing, for instance, allowed far more people to create printed materials compared to the 1980s, but while accessibility increased, overall quality often declined. Meanwhile, professionals in the field continue to find work.
This might suggest that the software industry is shielded from AI-driven disruption. But the future remains unpredictable. One could argue that the current downturn in the IT job market is just a prelude to what AI might bring. The future is open.
tl;dr
Even if AI boosts software development productivity tenfold, it won’t necessarily reduce the number of people working in the field. Instead, it’s more likely to expand software’s reach into even more domains.
This is a translation of my German blog post at heise Developer.