Some decades ago, software was a niche domain of programmers and mathematicians. Today, we live immersed in software; we carry it with us in our pockets, we wear it, we use it to work, stay in touch with each other, and even control the lights at home.
Exploding demand over the last years has led to more and more software being created faster than ever before. In 2016, software revenues amounted to around 420 billion USD worldwide. By 2026, this figure is projected to almost double to 824 billion USD.
The software we work—and code—with also is becoming ever more complex as we strive to solve bigger problems of increasing complexity at a faster pace. MS-DOS v1.25 (1983) had 13,587 lines of code, whereas Windows 11 (2021) has more than 50 million. And if you own a smart fridge, you have more computing power in your kitchen than we needed to put a man on the moon.
The growth in demand for more and better software is unbroken. And that is a good thing. Software is the key driver to progress and essential for enabling us to together tackle the various challenges facing humankind.
But to do so, one crucial question remains: How do we serve the tremendous demand for software?
A lever to improve software development
Building software requires several things; the main are hardware (to code on), tools (to code with) and software engineers (to write the code).
Looking at these key ingredients for software, the most obvious solution for producing more seems to be to increase the number of software engineers.
Depending on which source you trust, there are currently between 24 and 27 million software engineers in the world—and the number is increasing. But with established tech companies hiring more engineers, enterprises boosting their development budgets, and more venture capital flowing into startups that need software, demand for developers far exceeds the available talent. In other words, even if every school and bootcamp outperforms expectations, there still won’t be enough graduates—not even close—to keep up with demand in the coming years.
What about providing existing software engineers with (even) more and better training or improving the processes they work with? Obviously, our methods and methodologies have continuously improved, increasing developer teams’ productivity—and they are still being optimized. The latest significant breakthrough, however, was the agile landslide based on the Agile Manifesto written in 2001. And Scrum dates even back to the early 1990s. There might be more leverage in teaching and continuing to develop these methods, but progressing beyond agile, Scrum and other methods is definitely not a low hanging fruit anymore.
If we can’t satisfy the growing demand by training more and better engineers faster, would improving the hardware they work with make a difference?
We don’t think so.
In the last ten years, hardware (such as laptops, workstations, monitors, etc.) has become largely commoditized—and affordable for businesses. Much of it has even been replaced by software running in the cloud and accessed via APIs. Whether engineers work on a PC or Mac does not matter much anymore: Prices might differ, but in terms of improving software development, the hardware selection of developers—if not done completely wrong—has little leverage on their output.
Since neither increasing the number of software engineers nor a further optimization of hardware or development methods can satisfy future software demand, it’s worth considering our remaining lever: the tools developers code with.
Developer tools in the spotlight
For each stage in the software development process—planning, building, testing, deployment, running and monitoring—software engineers have a range of development tools at their disposal to support them in their work. Beyond that, there is an increasing number of low code and no code platforms and tools available. But while at first glance it seems like developers have everything they need, a closer look reveals much room for improvement.
As software becomes more complex, the tools to build it must evolve in parallel. In the days of assembly, engineers needed to write every single statement executed by the CPU. Then came C, abstracting away so much that engineers could solve much more complex problems. Object-oriented programming, garbage collection and virtualization; innovations like these multiplied the amount and complexity of real-life problems a software can handle within its domain.
To keep up with the demand and improve developer productivity, investing in state-of-the-art software development tooling is essential—imagine if we had never progressed beyond binary code! Without the most innovative and up-to-date tools for the job, developers must make do with what they have, increasing development time, costs and risks—and decreasing the quantity and quality of their output.
So, if the benefits of adequate tooling seem so self-evident, how much is the world spending on software development tools? Approximately $24 billion in 2022.
This sounds impressive, but it’s a drop in the ocean when compared with the overall IT market: In 2022, we are projected to spend over 4.4 trillion USD on IT.
So, while companies spent almost a third of their budgets—in total 1,280 billion USD(!)—on third-party providers, they spent only 24 billion USD on ensuring that their developers have the tools they need. In total, only 0.5% of all IT costs account for investments into proper developer tooling.
This stunningly low figure has a strong limiting impact—in the form of wasted potential—on our global software output.
Instead of a niche market, developer tools must become key drivers for the future growth of the software industry. It is therefore our goal to multiply the money spent on proper developer tooling by at least 10x.
In part 2 of our series, we will show you how—stay tuned!