According to a report released by independent market research company, eMarketer, the mobile phone user base in the Middle East and Africa (MEA) is second only to that in Asia-Pacific, with ‘just over 606 million people in this region having at least one mobile phone, with the total expected to pass 789 million in 2019.’
This shift to mobile devices creates enormous opportunities for organisations 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.
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.
MAD for Mobile
The requirement to quickly, securely and efficiently integrate core systems of record with an increasing number of mobile apps is driving changes to both enterprise application architecture and modes of development. Mobile-first organisations have adopted three key approaches to meeting mobile application development challenges head on – micro-services, 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 ‘micro-services’ has come to the fore, particularly in the context of enterprise mobile development.
In a micro-services 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 mobilise existing enterprise systems, a micro-services 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 micro-services communicate between themselves using RESTful APIs and lightweight messaging, they also provide modern wrappers for legacy enterprise systems.
A micro-services approach has the advantage of allowing app components to be rapidly developed, deployed, updated, and retired, to suit the needs of customers and employees.
In contrast to waterfall methods, which have traditionally characterised 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 organisations 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, organisations recognise the need for greater collaboration between people with different skills. 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.
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.’ This refers to 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.
A study by TechValidate found that 34 percent of organisations it polled cited team collaboration as a key challenge in their mobile application development efforts. More than one in seven organisations that have plans to recruit for mobile app development roles, say they are looking for DevOps proficiency.
As organisations evolve towards mobile maturity, they are recognising 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.
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).