Every year software developers get less experienced
That might sound odd, but it’s one of many conclusions draw from our biannual study, and presented in our (free) State of the Developer Nation report. The report draws on data from our most recent survey of those working in software, which reached nearly 22,000 respondents, and found that [tweetable]software developers have less experience than they did a year ago[/tweetable].
Not individually of course; there’s no memory loss involved here, but the developer community is growing, and new programmers inevitably bring down the average level of experience, and that has serious implications for the future of the industry.
If we take mobile developers, who are typical, we can see that right now 40% of them have been developing software for more than six years, but a year ago that proportion was 43%. Conversely, at the other end of the spectrum we have 17% of developers with less than a year under their belt, up from 14% this time last year.
That pattern is repeated across all sectors, even IoT (which is so nascent it often bucks the trends). While a good proportion of software developers have built up their skills over time we are going to have to adjust to a world where more software is being created by developers with less hands-on experience, and understand the implications of that trend.
On the cloud the trend is less pronounced, but still evident. Java is growing, but so are all the other languages. PHP… C#… Python… in fact all the top languages have gained mindshare as cloud developers become increasingly polyglot while giving up on some of the niche dialects.
One area on the rise, across all the sectors, is the use of visual tools for software development. These drag-‘n-drop environments are often looked down upon by “proper” programmers, who respect the digital hierarchy (where Assembler is king, dialects of C make up the court, Java is left outside the room, and scripting languages aren’t permitted into the palace). These visual tools are still only used by a minority (25% of mobile developers, 19% of cloud) and fewer still rely on them as a primary tool (5% across mobile and cloud) but that proportion is growing steadily, and relentlessly.
The fact is that there aren’t enough low-level programmers to go around, and most applications don’t need them. Visual tools, and scripting languages, are good enough for the vast majority of applications in any sector. That applies across consumer and enterprise markets, as users of all kinds start creating apps with a few clicks, but there is a question about how long can we consider those users to be software developers, and the tools they use to be designed for software development.
“If This Then That” (IFTTT.com) is a marvellous tool, enabling anyone to create “recipes” where an event (“this”) triggers an action (“that”). So an incoming email can trigger the (Philips Hue) lights to flash red three times, making the owner feel like Batman while simultaneously aggravating his whole family. IFTTT users can chain recipes together, creating actions that seed multiple events, loop back on themselves, and even branch based on inputs, so at some point we have to accept that the IFTTT user has become a software developer, or that IFTTT shows us what the future of software development might look like.
Not all applications will be written that way of course, lower-level languages will still be needed to plumb the functionality together, but there will come a time when the vast majority of applications will be created by developers with no software development experience at all.
That day is a long way off, but with every year it gets a little closer and our data shows that process in action. You can see more by downloading our State of the Developer Nation report, or talking to us about drilling down into the survey data.