What defines modern software development?

Over the last few weeks Computer Weekly has explored the topic of what it means to be a modern software developer. There are no surprises that cloud first, microservices and DevOps are among the first concepts experts talk about in discussions about modern architectures and the skills software developers now need.

The Linux Foundation’s Cloud Native Computing Forum and KubeCon virtual events, which took place on 17-19 August 2020, mirror these ideas. But there is also recognition that open source is a fundamental aspect of modern software development. The power to create software on a global platform that bridges cultural, geopolitical and corporate barriers offers limitless opportunities for anyone who is eager to make a difference through software.

It is no surprise that some of the most successful businesses ever have contributed their know-how through software and documentation to this open community, redefining computer architectures and IT operations. But open source is not solely about the businesses supporting the community. It is about the individual developers. They clearly earn a living writing software. But these software developers are given the flexibility to spend time doing what they love doing most: contributing and maintaining open source code.

Greater than code

IT architectural trends are likely to come and go, but the collaborative framework and community that encompasses open source will have longevity as it can be applied to tackle hard problems that go way beyond software. For instance, OpenEEW is an open source earthquake early warning system that uses low cost IoT sensors. Source code for many of the coronavirus tracing apps are available as open source, as are datasets, which can be used to understand how to contain virus outbreaks. At a very high level, open source offers the human race a platform to share and enhance knowledge, that is both human and machine readable.

Arguably, actively participating in the open source community is what it takes to be a modern software developer, but what of the future? GPT-3 from OpenAI is a language model, published on GitHub in June, which is gaining a lot of attention. It is a natural language processor that effectively “understands” plain English queries and can respond in English sentences. There are also examples of how it can be used to “write” Python code automatically. The user simply asks a few simple questions and OpenAI generates code. Could something like GPT-3 b replace programmers? It’s unlikely. But AI-enhanced developer tools are set to become more commonplace.