We need more software. Logically then, we need more software developers. Gartner predictions as noted on TechRepublic back in 2017 estimated a US shortage of up to 1 million software developers by 2020… and the Covid-19 pandemic won’t have done anything to help that shortfall. Even if that figure is off by half, that’s just the US – the rest of the world needs more software in equal proportion.
But this is not an analysis concerning software skills, recruitment or Human Capital Management (HCM), this is a question that attempts to understand the situation one step further back i.e. why do we need more software anyway?
Don’t we have enough apps by now?
Taking a glance at the software industry fervor that typically exists in any one year (with all its product launches, conferences and shows), the average user would probably stand back and wonder why there’s still so much development going on. We have apps for just about every use case you can dream up, so surely we don’t need to keep reinventing the wheel constantly, do we?
It’s true, nobody needs to invent a calculator app and we can create a lot of ‘composable’ software by interconnecting web-services through the use of web development and Application Programming Interfaces (APIs). Nobody needs to build another global mapping application such as Google Maps, Apple Maps or Microsoft’s Bing Maps, especially given that these firms allow a developer to embed mapping services into a third-party application.
Yet, even with all that web composability, we still need more software – so why is that?
The 7-reasons for new software apps
#1 – There are many reasons why we need new apps every day. Sometimes the need arises as a result of departmental realignment inside enterprise organizations i.e. when teams start to work in different ways, they need new custom-built applications to serve changing workflows that may make use of new data streams.
#2 – We need new software apps built to take advantage of new advancements in Artificial Intelligence (AI) and Machine Learning (ML). Since the turn of the millennium, we have had massively improved access to massively more massive datasets. Combine that data mass with ever-faster microprocessors and the advent of cloud computing and you can see why applications we built a quarter century ago might now be classed as legacy software.
#3 – We need more software because users simply ask for it. They want new core functions, connections to new types of devices, additional analytics power, better visualization technologies (such as data shown in management dashboards) and perhaps more hardware-driven augmentations such as better suitability for touchscreen use.
#4 – We need more software because we’re on the road to quantum computing power and this will drive a new level of reinvention. Put in the most superficial terms, where ‘traditional’ computing is based on binary ones and zeros, quantum qubits draw on the ability to use superposition techniques to create a vastly bigger gap in-between one and zero, so much more computing power is accessible inside what is essentially the same space.
#5 – We need more software because we’re developing more real-time applications that work with more real-time data. To be clear, real-time is something of a misnomer i.e. these applications and data streams do need ‘some’ time, otherwise they wouldn’t exist. The reason we use the term is because this software is able to work in milliseconds and microseconds, such that the user perceives them to be able to work apparently instantaneously.
#6 – We need more software because we’ll always need competition. Microsoft continues to develop its Bing search engine despite the fact that Google has somewhere around three quarters of all query volume traffic. When it comes to low-code software (which we will come back to shortly), we have companies like Appian, but we also have Mendix and OutSystems. This is not just a question of ‘me too’ technology, where firms create basically the same piece of software functionality because there’s enough market demand out there to soak it up. This is because a) the companies themselves believe their products are genuinely different and b) these firms might actually create some backend infrastructure innovation that suddenly shakes up the market as users flock inwards. You could even think of it as investment of market insurance.
#7 – We need more software because, quite simply, we’re not done yet as an industry innovating, breaking the current moulds, creating the next Twitter or Instagram, reinventing new form factors for physical devices (e.g. when hologram-based keyboards take off, how much will we need to rebuild?) and we can be fairly sure that the ‘next big thing’ is likely to come forward before the end of the current decade.
The rise of micro-apps & network nodes
Infor CTO Soma Somasundaram has spoken on this subject here on Forbes and says that cloud is driving the further production of software because apps are being continually interconnected through Application Programming Interfaces (APIs). He states that the vast amount of data we have available to automate or optimize or to help us make better decisions will always need to be iterated and improved upon — and surmises that these approaches require ‘micro apps’ that deliver a service.
CTO at Tibco Software Nelson Petracek agrees with Somasundaram’s interconnectivity and application granularity themes. He says that we [still] need more software to support the shift in how consumers and enterprises alike need to share data and drive decisions in a rapidly evolving environment.
“The world is becoming more highly connected, with interactions based on networks, not on point-to-point delivery of information or services. Today’s (and tomorrow’s) applications will need to participate across one or more digital networks in a secure, streamlined, engaging and often autonomous manner. Apps will become nodes on these networks, and this will change not only the applications themselves, but also the way they need to be built, deployed and managed,” said Tibco’s Petracek.
How the industry is building more software
The software industry has long-realized the disparity between the number of coders needed and the number that we actually have to draw upon as a creative resource. This is a good part of the reason why we have seen the development of so-called no-code and low-code software platforms.
Where low-code is still very much all about coding, it packages some of the more repeatable processes up into bite-sized (sometimes big bites) pieces that can be used again and again. Low-code is still very much code tools for programmers. No-code on the other hand offers visual-based tools that some businesspeople will be able to use to create application functionality through drag-and-drop interfaces. Although one is rather simpler than the other, both techniques actually require a good understanding of logic and structure.
As we go forward, we may get better at a more environmentally friendly reuse of some parts of the total global software stack, but don’t hold your breath i.e. the most likely outcome is that, by the end of this decade, programmers and developers of all strains will still be in short supply.