This is a guest post for the Computer Weekly Developer Network written by Klaus-Michael Vogelberg in his capacity as chief technology officer at financially-focused Enterprise Resource Planning (ERP) company Sage.
Vogelberg is perhaps somewhat unimpressed by the gadgets and gizmos being displayed at the Consumer Electronics Show (CES) in Las Vegas this month.
He insists that it is vitally important that we aren’t fooled into thinking that technology innovation in 2018 is all connected cars, talking robots and face-recognition smartphones.
Instead, Vogelberg is rather more impressed by the code that goes into these shiny new devices.
He insists that the ‘constant evolution’ will be in the software developed to connect those devices and the new forms of software engineering that will underpin the devices launched in 2019, 2020, 2021 and beyond.
So with that in mind, here’s a snapshot of Vogelberg’s software trends to watch out for in 2018 — Vogelberg writes from this point forward.
The rise of the application cloud
Cloud computing has been a game changer for consumers and businesses across the globe over the past decade. However, this year we will see the market for cloud platforms compete on customer benefits rather than technology capability.
Few cloud platforms are pure technology platforms and could be more accurately described as application clouds delivering app-centric user experiences. The Apple iPhone pioneered this concept of an application cloud and Salesforce adopted it for business with its Lightning com platform (aka Force.com) and AppExchange. Microsoft is taking Office 365 and elements of Azure in a similar direction, while Facebook and Google remain customer experience platform providers to watch.
The implication of this shift in 2018 is that platform choices in the cloud will only be partly driven by technology considerations; application clouds provide access to customers and markets. This becomes just as important a consideration for an ISV as the technological merits any given platform may provide.
End of the architecture monoliths
Software used to be designed for a given technology platform, leveraging and extending the architectural features of the ‘stack’, resulting quite literally in monolithic software products.
The shift to customer-centric ‘experience’ platforms makes the monolithic approach less attractive as it creates a dilemma.
Implement an application on a particular platform and it will only ever work in that environment; design in a monolithic fashion, and it will lack the architectural flexibility to embrace customer-experience platforms.
Expect to see this debate played-out in software labs across the world this year.
Serverless event-driven programming
Microservices require infrastructure to operate in a layer typically referred to as ‘platform as a service’ (PaaS). 2018 will see a generational shift in PaaS to ‘serverless’ environments, a technology in which the cloud provider dynamically manages the allocation of machine resources.
Serverless applications do not require the provisioning, scaling and management of any servers and pricing is based on the actual processing consumed not on capacity provisioned. Amazon Lambda and Microsoft Azure Functions are two leading examples of this technology. Serverless, event-driven programming models are set to revolutionise software architecture; it is the secret sauce behind many of the headline-grabbing technology exhibits in Vegas.
Yet this move is not without controversy; one market observer noted that “serverless is one of the worst forms of proprietary lock-in that we’ve ever seen in the history of humanity” — which are perhaps rather strong words, but it illustrates the force of change sweeping through the software world.
All of this helps make technology smarter, more connected and of greater value to the users.
When we talk about invisible accounting, taking advantage of artificial intelligence, machine learning and neuro-linguistic programming – it is because of the innovation that is happening in software architecture and application programming that is making it all possible.