Why your software has a front-end and a back-end

Software has evolved over the decades. Here's what's changed, why it's different now, and how its parts are managed in the grand scheme of things.
4 June 2018

Software development seems complex these days, but there’s a method to the process. Source: Shutterstock

Software, like bread, has changed. Up until somewhere around the 1960s or 1970s, bread came in one packet, made of one type of flour, formed into one basic shape – across most world cultures.

In the modern era of personalization and consumerism, that type of standard product or service delivery clearly doesn’t exist anymore. Choice, has become everything.

A similar degree of personalization and consumerism is now impacting the way software is developed.

Although we started with comparatively bland software with limited functionality in the 1960s and 1970s, a fabulous (almost infinite) variety of programs now exists with the power to be custom-aligned and dynamically personalized for each user.

Choice, is also everything.

But creating software (or indeed bread) with this new level of malleability and pliability in multiple form factors requires that we become more granular (bread baking and techie pun intended) in terms of the way we make it.

Baking a new mix

To bake this new mix of software dough, we need to break technologies apart into smaller composable controllable elements.

In software development, this requires that we define both a front-end and back-end for each app that we make.

The front-end elements focus on the user and the use case.

The back-end elements focus on the infrastructure and the logic functions that make the software capable of performing the task it is designed for.

Without mixing our metaphors too painfully, the meat in this sandwich is the data and the analytics intelligence running through the cloud computing layer that allows the software to develop its unique flavor.

So what really happens at the front and back?

Progress President and CEO Yogesh Gupta explained that the front-end of any solid application should be regarded as the engagement layer – and that doesn’t just mean the Graphical User Interface (GUI) on-screen options and functions.

He explains that the front-end is that part of the app that deals with the contextualized and personalized interaction that the user experiences when using it.

The logic here is simple i.e. apps that deliver more intelligently contextualized and more sympathetically personalized interactions will deliver better user experiences.

“Our mission is to provide the best platform for building and deploying strategic business applications and digital applications,” said Gupta.

“Agile and Lean [working practices] have become the terminology for businesspeople that don’t understand what Agile or Lean actually mean in computing terms,” lamented Gupta.

“But whether business people understand these terms or not, we face a complex future for business systems that have to be functional, but also secure and compliant at the same time.”

Implications for new bread makers

If this is the way software needs to be built now, then there are implications for bread makers (we mean developers and programmers, obviously) who fail to consider the number of proving stages involved, the types of components that must feature in the mix and the need to understand the provenance of every ingredient used.

For software developers, those ingredients will be data and information management tools.

Progress wants to be the bakery and test kitchen for all our new front-end back-end applications.

Indeed, the firm’s DataRPM product now comes with a special Research & Development (R&D) license so that experimental R&D project teams can start applying its anomaly detection abilities to Industrial Internet of Things (IIoT) application use cases.

The focus for many software developers today will be a move to build what we could call cognitive-first apps.

This is an application that has been built with an inherent appreciation for types of data (and the regularities and patterns in that data) that will flow through it.

Getting all this right means decoupled (yet essentially connected) application development with a degree of machine learning and AI running through it.

Think of experiences on top, a cognitive serverless cloud layer in the middle and connected data layer (with integration capabilities) on the bottom.

That’s the front-end to back-end all working together in harmony.

Go ahead and take a slice, but you can always have too much of a good thing, so please watch your overall carb intake too.