Petya Petrova - Fotolia
Exploring the future of modern software development
What tools, programming languages and architectures, defines modern software development
Modern software development is about building cloud-native, cloud-first and multi-cloud applications. But it’s also about embracing data-driven big data insights and making use of artificial intelligence (AI) and machine learning (ML). The definition of modern software development encompasses granular code reuse and low coding tools – and a whole lot more, too.
The hidden question is really: what does it take to be a software developer in 2020 and beyond?
First, let’s revisit a well-known phrase that has become somewhat of a recognised 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 throughout myriad market sectors is the spectrum of digital technologies enabling new levels of operational capacity and business reach. The list is long. By no means comprehensive, it can span from cloud and mobile through to internet-connected products, integration strategies of application programming interfaces (APIs) and new application models such as blockchain and microservices.
Organisations are looking to take advantage of digital technologies to innovate and deliver solutions and products faster. These technologies also enable more engaging experiences and interactions while driving greater levels of productivity and personalisation.
The boundaries of an organisation are no longer confined to physical bricks but out to an edge that flexes according to its end points. Underpinning processes, such as DevOps, focus on finding a new working relationship that benefits the entire software process. Implicit in that goal is the quick, stable and repeatable release of software into the field with greater frequency and control.
Today’s software developer has access to a wealth of tools and services that have evolved and adapted with a new wave of guardrails keeping them in check. These tools incorporate greater support for automation, self-service provisioning and broader scope of training services. There is flexibility with features that abstract complexity and provide the necessary plumbing that makes things work.
Read more about modern software development
- We find out how containerised microservices and automated testing, combined with effective collaboration and communication, can drive innovation.
- Many programmers see themselves as artists – of a sort. Computer Weekly investigates what it means to be a modern software developer.
With low and no code tooling support, businesses are not limited by their access to traditional developer skills. They can broaden the scope of participation to include more employees.
“Give the people what they want when they want it” has become a “first” principle when it comes to software delivery. Ultimately, the outcome matters. A defining feature of modern software development for all ages is the delivery of software solutions and products that simply don’t “suck” but are intuitive to modern needs and concerns.
In short, modern software development means the development of applications and apps that take advantage of all that current technology has to offer. It uses the different architectures, services and capabilities available to maximise the benefits. It requires interpersonal skills and a collaborative approach that is attuned to the context of use and the customer.
It’s important to pay attention to driving concerns such as security, privacy and ethical responsibility. The challenge to being “modern” is navigating and selecting that which won’t hold you back – people, tools and technology. The good news is that open extensibility and interoperability is the modern lingua franca that will keep you current.
Bola Rotibi is a research director at CCS Insight.