What does "software writing software" mean for developers?

This blogpost examines how 'software writing software' is changing the demand for developer skill mix, and highlights implications for developers and business leaders.

November 17, 2017
• by
Vivek Sharma

Earlier this year, Newscientist reported that “Microsoft and the University of Cambridge have created a system [called deepcoder] that could allow non-coders to simply describe an idea for a program and let the system build it [by] piecing together lines of code taken from existing software – just like a programmer might.” From another article in Wired, “Google’s researchers have taught machine-learning software [AutoML] to build machine-learning software … [For] marking the location of multiple objects in an image, the auto-generated system scored 43 percent. The best human-built system scored 39 percent.”

As ‘software writes software’, will we need less developers going forward? Not according to Computerworld, who expects the global developer base to grow to 26 million by 2019, a 45% growth in 5 years. Underneath that overall macro growth in numbers, however, ‘software writing software’ is changing the demand for developer skill mix through three trends – higher software productivity from cloud & public APIs, AD&D (application development & delivery) automation, and an increasing trend towards data driven programming. This blogpost looks at these trends and highlights implications for developers and business leaders. 

More and more of what we do in our daily lives is software enabled. Over the last 2 decades, 1 billion websites and 3 million apps (on both iOS and Android) have been built, and digital is driving the technology stack. In response to that, most large businesses are increasingly transitioning from an in-house full-stack IT to a more efficient shared services model, for both the infrastructure layer (servers, storage, network, provisioning etc.) and application layer (websites, apps etc.), thus cumulatively requiring fewer developers per unit of output. Cloud providers are reducing the need for enterprise data centers, enabling organizations to focus on features and functionalities – in fact, Oracle believes that 80% of enterprise data centers will disappear by 2025. At the application level, micro services and APIs (see earlier blog on What is driving the API economy growth) are reducing custom feature development. 

Even with synergies from cloud and APIs, businesses need to deploy large teams of developers for application development & delivery (AD&D). DevOps is facing pressure from AIOps, and more development teams are automating the software development, testing and delivery cycle. Machine learning takes that pressure to next level as there are no ‘upgrade releases’ per se - the software uses data to continuously improve itself!

Finally, data driven programming is rapidly replacing the traditional rules-based programming approach in fast growing use cases like computer vision, self-driving cars, chatbots and speech translation. Instead of a large team of developers writing task specific programs, a much smaller team of developers write algorithms that learn to solve the problem using data (see earlier blog on How neural networks mimic human brain). The critical resource here is the amount of data and not the number of developers – an average algorithm trained on lots of data trumps a great algorithm with less data training. Jensen Huang, CEO of Nvidia, aptly summarizes the impact with ‘AI is eating software!

The implication for developers is straightforward, but also urgent – keep their skills relevant to the marketplace needs. Forrester predicts that “Web era job roles will creatively self-destruct as new job roles rise. The new roles: Product managers, scrum masters, data scientists, test engineers, rapid developers working on low-code platforms. The fading roles: project managers, manual testers, database administrators, and average developers delivering familiar business apps.” Developer skills are seeing a rapid churn in demand. On one hand, we hear that automation alone could impact 500K Indian IT jobs by 2020. On the other hand, we also hear about a shortage of 1.5 million developers in cybersecurity by 2020 and that only 10,000 people worldwide have the education, experience and talent needed to build AI algorithms.

For businesses, the same 3 trends can help reduce cost (e.g. through public clouds), increase GTM speed (e.g. by leveraging 3rd party APIs) and improve quality (e.g. using mainstream platforms); but cannot be a source of sustainable differentiation. That differentiation will continue to come from envisioning an integrated end-to-end customer experience, and bringing together the ‘best in class’ technology solutions to deliver a unique experience!