Exploring the Future of Modern Software Development

What tools and practices define modern software development?

What does modern software development mean or stand for in 2020? The answer isn’t straightforward as the software development landscape is littered with a cornucopia of technologies, processes, tools and existential considerations and concerns.

I’m often asked if modern software development is about building cloud-native, cloud-first and multicloud applications. The short answer is yes, it is that. But it’s also about embracing big data insights and making inherent use of artificial intelligence and machine learning. It also involves granular code reuse, low-code tools, and a whole lot more.

The hidden question here is: what does it take to be a software developer in 2020 and beyond?

First, let’s consider what’s become somewhat of a recognized principle in the creation, deployment, operation and management of software solutions: it’s about people, processes, tools and technology.

Take technology, for instance. An overriding theme in various market sectors is the spectrum of digital technologies enabling new levels of operational capacity and business reach. The list is long, spanning from cloud computing and mobile connectivity to Internet-connected products, integration strategies of APIs and new application models such as blockchain and microservices.

Organizations of all sizes are looking to take advantage of digital technologies to innovate and deliver products and services faster. These technologies also enable more engaging experiences while fostering greater levels of productivity and personalization.

The boundaries of an organization are no longer confined to the physical place of work; they extend to an edge that shifts and flexes according to the company’s end points. Underpinning processes such as DevOps focus on finding a new working relationship that benefits the entire software process and are the de facto standards for successful delivery. Implicit in that goal is the quick, stable and repeatable release of software into the field with greater frequency and control.

Today’s software developers have access to a wealth of tools and services that are just better because they have evolved and adapted with a new wave of guard rails to keep them in check. These tools incorporate greater support for automation, self-service provisioning and broader scope of training services. There’s flexibility and contextual application with features that abstract complexity and provide the necessary plumbing that makes things work.

Supported by no-code and low-code tools, businesses aren’t limited by their access to traditional developer skills. They can broaden the scope of participation to include employees whose knowledge focusses on specific domains and tasks and who are more attuned to specific requirements.

“Give the people what they want, when they want it” is hardly a controversial rallying cry. But it’s surprising how long it has taken for such an ethos to become a leading principle of software delivery. The outcome matters, whether a solution is for business, operational or customer use. Perhaps a defining feature of modern software development for all ages is the delivery of software solutions that simply don’t “suck”, and that are intuitive to our needs and concerns.

In short, modern software development consists of building solutions that take advantage of all that technology has to offer, using the different architectures, services and capabilities available to maximize the benefits. It calls for interpersonal skills and a collaborative approach that’s in harmony with the context of use and the customer.

Modern software development practices must pay attention to fundamental concerns such as security, privacy and ethical responsibility. The challenge with this is selecting people, tools and technology that won’t hold you back. The good news is that open extensibility and interoperability is the modern lingua franca that will keep you current.

A version of this article was first published by Computer Weekly on 19 August 2020.