This shift to mobile devices creates enormous opportunities for organizations in the Middle East to improve engagement with their customers, employees, and partners. However, it also creates a problem when it comes to securely linking mobile applications to core systems of record.
Enterprise brings back-end challenges to the fore
Many enterprises rely upon proprietary applications that were developed decades ago, long before mobile devices became ubiquitous. These immensely valuable applications often include ERP, CRM, BPM, database applications, medical records, energy management systems, and flight management systems: none of which were originally designed to interface with today’s mobile devices. Any changes to these "monolithic" applications require costly and time-consuming redevelopment, testing and redeployment of server-side code. Integrating mobile apps securely with these rich back-end data sources and applications is at the heart of successful enterprise mobility.
Not surprisingly, back-end integration was ranked near the top of the list of enterprise mobility challenges in a recent survey of Red Hat (News - Alert)'s enterprise customers, conducted by TechValidate on behalf of Red Hat, second only to security. When asked about hiring priorities, 27 percent of respondents who are on the lookout for mobile development resource reported that they were planning to hire people with back-end integration skills. The survey also found that 55 percent of enterprises are currently using a combination of external sources (libraries, marketplace, and vendor services) and coding from scratch to integrate mobile apps with their back-end systems. In spite of the challenges, the demand for mobile applications is growing. However, businesses will struggle to scale and sustain the development of multiple apps if each app requires custom integration to back-end systems.
Notably, the past few years have seen enterprises adopting mobile back-end as a service (MBaaS), which acts as a cloud-based and on-premise hub between mobile apps and the back-end systems that they need to access. TechValidate found that a third of the enterprises it surveyed had adopted mobile application platforms (MBaaS) to assist them in overcoming the challenges of back-end integration.
MAD for Mobile
The requirement to securely and efficiently integrate core systems of record with an increasing number of mobile apps and to do so at speed is driving changes to both enterprise application architecture and modes of development. Mobile-first organizations have adopted three key approaches to meeting mobile application development challenges head on: microservices, agile development and DevOps.
Many attempts have been made to address the issues associated with monolithic applications using new approaches. Most recently the idea of “microservices” has come to the fore, particularly in the context of enterprise mobile development.
In a microservices architecture, complex applications are decomposed into small, modular, decoupled, independent processes. These fine-grained services each perform a single function and all communicate using language-agnostic APIs.
In the context of using an MBaaS to mobilize existing enterprise systems, a microservices approach has demonstrated its value, from both an agility and a performance perspective. Node.js+Express has become a de-facto technology stack for implementing these services and thrives in a polyglot environment. Whilst microservices communicate between themselves using RESTful APIs and lightweight messaging, they also provide modern wrappers for legacy enterprise systems.
A microservices approach has the advantage of allowing app components to be rapidly developed, deployed, updated, and retired, to suit the needs of customers and employees. A variety of development teams can easily collaborate on building these autonomous services to serve specific business requirements, while enterprise IT teams focus on managing sensitive data, applications and systems in the back-end.
Agile (News - Alert)
In contrast to waterfall methods, which have traditionally characterized enterprise software application development, agile approaches involve shorter, more iterative development cycles that elicit early and continuous feedback across the app development lifecycle. This happens to go hand-in-hand with the mobile ethos of “build fast, build repeatedly.” As organizations try to build an app, deploy it, test it, and iterate on it, they are transitioning from waterfall towards agile approaches. However, it’s a journey and not all companies have reached the point of true agile development – but they are getting there.
In moving towards this more agile approach, organizations recognize the need for greater collaboration between people with different skills, including input from the users, or the business. Combined with continuous development, deployment, monitoring and measurement of mobile apps, this collaborative approach has exciting potential for app success. Apps are constantly evolving, with elements added and retired in response to new requests from business managers and customers. Some app components may only be used for a matter of days before being retired.
Apps also require continuous monitoring of their performance by the business, so that adjustments can be made in a responsive and timely manner.
Traditional monolithic enterprise apps such as CRM, transaction processing, network management, and BPM systems are still critically important to businesses. These core systems must be kept operational, patched, secure, and compliant, while also making data available to mobile apps. So while agile practices have evolved to meet the need for speed to market of mobile projects, enterprises still need to maintain core and stable IT processes, and both need to work collaboratively.
This dual requirement for “fast IT” to accommodate business changes and “core IT” to run IT operations has given rise to the term “DevOps”: a collaborative software development approach involving app developers and operational IT specialists. This involves new working practices, where continuous app development and deployment co-exists with quality assurance and the maintenance of monolithic back-end systems.
Change can cause pain. TechValidate found that 34 per cent of organizations it polled cited team collaboration as a key challenge in their mobile application development efforts. More than one in seven organizations, that have plans to recruit for mobile app development roles, say they are looking for DevOps proficiency.
As organizations evolve towards mobile maturity, they are recognizing that they need to adopt new working practices and IT architectures to enable them to meet the demand for rich mobile apps at speed, while also maintaining secure, operational systems in the back-end, on which these apps depend. Companies that are really succeeding in mobile have actually reinvented a process, to improve the mobile customer experience. They understand that the mobile experience has to be different, not just an existing web app made smaller.
The mobile ethos is to build fast and build repeatedly. Don't try to build the mother of all solutions. Build something, get it out there, figure out what's working, or what's not, and iterate on it.
Common best practices see these organizations begin with a handful of successful apps that perform specific tasks well, gaining support from customers, business unit managers and IT teams. These early successes drive demand for apps that connect into a whole range of enterprise applications. This can quickly accelerate.
To meet demand and maintain control over complex back-end systems, development teams are being forced to move away from custom coding. Just as the cottage industries gave way to mass production during the industrial revolution, I see the mobile revolution driving enterprises towards adoption of microservices, agile, and DevOps (MAD).
The age of mobile is here, if you want to engage effectively with your customers, business partners and employees, you’ve got to be going MAD.