OutSystems product leader defines the shape of ‘modern’ software

The way we think about the constructs, conduits and connections shaping the modern age of software in the cloud-first data-centric world has changed - in his role as head of portfolio marketing at OutSystems, Prakash Vyas has a special view on the shape of the new stack.

People interacting with laptop, charts and analysing statistics. Software development concept
Shutterstock

Software evolves constantly. By its very nature, we can say that the moment any given piece of software hits live production deployment and goes into the hands of users, it starts to be out of date.

This inconvenient truth has (thankfully, due to the birth of cloud computing) been addressed to a degree, through new approaches to Continuous Integration & Continuous Deployment (CI/CD). Today we can use the massively connected nature of the cloud backbone to update, enhance and augment software long after it is first created.

But even with cloud and its compendium of continuous continuity, there is still a huge amount of technology vendor discussion surrounding the idea of so-called ‘modern application development’, whatever the term itself is really supposed to mean.

Legacy software still works

Is it even fair to talk about modern software? One school of thought argues that we should be a whole lot more courteous and respectful of older software; after all legacy software is only legacy because it still works.

Legacy stalwarts have a valid point, but it’s a point that wears thin. While legacy software is indeed still functional, the lion’s share of it is arguably in place because it is some behemoth chunk of (often public sector) systems code that nobody has figured out how to unravel and modernise as yet.

The size, shape and velocity of today’s data flows mean that we will all inevitably have to think modern at some stage. The efficiency offered by today’s approach to containerised compute structures is equally inevitable, as is the need to engineer for Application Programming Interface (API)-first connectivity. The impending arrival of quantum will further shake things up. Ultimately, we need to think modern.

But even with this above contextualisation, have we really validated what this term means? Modern application development still sounds like a marketing-spun term without any real substance, so what are the real bones behind this notion? In his role as head of portfolio marketing at OutSystems, Prakash Vyas has a special view on the shape of the new stack.

“When we think about modern application platforms and the types of software engineering they are capable of, we are really talking about a number of key cornerstones. This is where we have to think about big data analytics, cloud-native services, ubiquitous connectivity and the advantages that come from low-code development. We could put another twenty items on that list in a heartbeat (scalability, observability, AI and Machine Learning etc.), but that gives you the idea - we need to embrace modern application development as a sort of new creed encompassing every element of the new engineering playbook,” said Vyas.

Shifting legacy hangovers

Given this position then, what element of application modernisation is about shifting legacy hangover technology out of the stack? Deeper still, what elements are new and modern because they embrace AI and cloud containerisation and other post-millennial technologies?

“The biggest shift is when legacy applications - even if they’re still functional and useful - must be modernised because the underlying platform and its operating system is out of date and has security and performance vulnerabilities. High-performance low-code development platforms are sensitive to this and offer methods to modernise applications in practical ways, enabling them to be refactored and replatformed (into containers) without always needing a full ground-up rewrite. This makes modern application development platforms particularly suited to fast-paced businesses reliant on software to define and underpin their business,” explained Vyas.

If we accept the idea that modern software isn’t just a label and that we need to apply these advantages to the current enterprise stack, then do we start at the presentation layer, the networking layer or the backend?

In Vyas’ view, when we think of modern software, it is designed, built and evolved in a more functionally composable way (modular, easily changeable) that aligns with the user and the business purpose; rather than, say, the seven-layer model which is more suited to describing monolithic software applications.

“Modern development of software categorises applications into frontend development capabilities to deliver a pixel-perfect UI that can adapt across platforms and scale as needed. Integration capabilities need to tie in and leverage your legacy data sources, publishing and consuming API and services. Backend logic, process and data management capabilities need to deliver the most complex applications,” said Vyas.

With these three major sets of capabilities, Vyas and the OutSystems team suggest that IT departments are able to quickly build what they call the ‘serious apps’ a business needs to differentiate. In this world, modern development platforms provide rich services in UI/UX, logic, processes and data to enable these applications to be easily changed, extended and replaced across their full lifecycle.

Early low-code vs today

Thinking specifically about low-code and no-code software, Vyas has explained before that many of the first tools in this space were never designed for high-level (yes we need to say mission-critical) enterprise application deployment… so how has the state of the nation changed (and indeed modernised) in low-code?

“Most low-code/no-code platforms were designed and built for the ‘non-IT’ developer. They provided facilities to code customisation into office tools or extend SaaS platforms to enable users to have applications that solve specific use cases in relation to the office tool or SaaS product. These low-code applications were very specific in what they did, often departmental in their scope and would often ‘hit a wall’ if extended to a more enterprise-grade use case,” said Vyas.

By comparison he says, high-performance low-code software development platforms are built for the professional developer, as well as the non-IT developer. They have the attributes to create highly performant, scalable, secure applications that operate on an evergreen platform. Where Vyas says this helps is where we see higher-grade low-code being very well suited to digital organisations who require software to be changed and updated frequently without disruption to their business.

All of which is inspiring, motivating and wonderful, so can we all ‘go modern’ tomorrow and shake off the shackles that have held us back overnight? Hasn’t there been a danger of low-code and no-code being used to tackle short-term application fixes and not used in broader terms for a more strategic long-term platform evolution?

“Because of the advancement in high-performance low-code platforms, we have new opportunities to think strategically about low-code, rather than be forced to use it just for small apps. This type of coding is a true alternative to ‘traditional software development’ in the engineering of enterprise-scale applications, but without being complicated, slow, inflexible and reliant on highly expensive and scarce skills,” said Vyas.

Consequently, he suggests, the better low-code platforms offer long-term capabilities for organisations to build engaging customer experience frontends, modernise their processes through automation, innovate and change their workplace… and modernise their applications at the pace a real digital business operates.

After analogous advantage

In the new age of modern - and with low-code on board as a fundamental advancement to elevate us - enterprises will always be concerned about aspects of lock-in to new engineering precepts, especially if they have come to work with new vendors that promise to help them move onwards from their legacy hindrances. Given this obvious apprehension, can we be sure that modern platforms will exhibit enough analogous alignment to enable competitive advantage?

Vyas thinks we can. He suggests that modern high-performance low-code platforms must function in an ecosystem of open connectivity and not be locked into the vendors’ proprietary technology.

He asserts that many low-code/no-code platforms are locked into specific vendor technology and, worse still, they are interpreters rather than creators of real code. The new generation of (and yes Vyas says high-performance again) low-code systems are built with an analogous alignment to the agility of traditional code. That is, they create real code. This enables the code to be inspected by security and performance tools, as well as being detached from the low-code platform itself.

“We have spoken about modern platforms, their attributes and how they can help organisations transform quickly without the hassle of legacy or traditional software development techniques. There is another very important consideration when considering low-code platforms; applications have a lifecycle and today’s businesses look to manage and build their applications into ‘products’. That’s how they view them and that’s how they treat them,” said Vyas.

“Today’s modern platforms must enable applications to live as products on an evergreen platform with rich services, allowing quick and secure evolution of software. Compared to [the more standard] low-code technologies, this is where high-performance tools offer new capabilities an organisation as it migrates from a ‘true alternative’ to traditional development to the what we might respectfully suggest is now the ‘only alternative’ for modern-day, digital businesses,” he concludes.

The new engineering playbook

When we think about modern application platforms and the types of software engineering they are capable of, we have to think about big data analytics, cloud-native services, ubiquitous connectivity and the advantages that come from low-code development.

We could put another twenty items on that list in a heartbeat (scalability, observability, AI and Machine Learning etc.), but that gives you the idea - we need to embrace modern application development as a sort of new creed, encompassing every element of the new engineering playbook.

We may never physically get to the point where enterprise users ask ‘hang on, is this a modern app?’ before they’re prepared to use it, but that’s okay, the whole process is supposed to be subliminal and eminently usable in the first place.