According to independent market analysts, nearly two-thirds of organisations have deployed three or more applications. The challenge of mobility is no longer “How do I build apps?” but rather, “How do I build apps faster and more efficiently?” Mobile app development teams are facing numerous challenges scaling their teams to handle the ever-increasing backlog of requirements for more apps, faster release cycles, and complex back-end integrations.
[easy-tweet tweet=”Nearly two-thirds of organisations have deployed three or more applications” hashtags=”tech, cloud, apps”]
Despite all the focus on mobile and digital transformation, companies are having a hard time delivering on what their businesses are demanding, because mobile application development is still a complex and challenging process. Gartner predicts that by 2017 market demand for mobile app development services will grow at least five times faster than internal IT organisations’ capacity to deliver them. Another survey found that half of the companies surveyed have a backlog of between 10 and 20 apps.
Examples of these challenges include importing apps from a single platform to all the major mobile OSs, which can double or triple the cost with each additional platform port costing an incremental 50 percent to 70 percent. Native mobile app development skills are also expensive and hard to find. Furthermore, HTML5 mobile applications lack native features, suffer from poor performance, and often result in poor user experience and low adoption. Back-end or server side development can also be critical to app performance, and significantly impact end-user experience/adoption, and account for 75 percent to 80 percent of the effort and expense.
Much of the complexity of mobile application development results from the fragmented technologies available today. Building your own back-end, using custom frameworks out of niche point products or leveraging multiple open source tools and plug-ins can increase complexity and costs. These tactics often make sense to get started cheaply, for simple applications, or for extending a web application to mobile devices, but can quickly become a complex custom mobile application development project.
These all leads to a high total cost of ownership that has the potential to grow over time. Therefore, organisations need to find ways to deliver great mobile experiences using predictable and repeatable processes that unblock agile development teams, enable parallel work streams, maximise reuse, and are cost effective to support long term.
This is, of course, not a new problem for large organisations that have been building complex enterprise applications for many years, but the problem is new to mobility projects because it is just now reaching the size and scale that mandates the use of process and methodology to avoid complete chaos. Mobility fundamentally changes the current application model by focusing on breaking a business process into numerous small task-oriented user interactions, sometimes referred to as “mobile moments” vs traditional monolithic approaches. Developing these applications in a reliable, repeatable, and maintainable fashion does not require the creation of a brand-new approach. The answer already exists and has been proven successful in other areas of software development.
[easy-tweet tweet=”HTML5 mobile applications lack native features” hashtags=”tech, cloud, apps, “]
The path to consider is a model-driven development approach, which, is a development methodology for rapid development of applications from software architectural models leveraging smaller, discrete objects. By using a model-driven approach and combining it with a microservices architectural approach to assemble and deploy self-contained independent components into a complete solution, it is possible to develop applications faster and reuse components across multiple applications. One example of the successful application of model-driven development in other technologies is its adoption by Java-based development teams with frameworks like Spring and Struts. These frameworks use an object-based model to abstract the low-level programming complexities and provide a standardised programming approach so that any developer can instantly understand the application structure and safely make changes to it. The wide adoption of these Java-based model-driven development frameworks demonstrates the efficiency improvements model-driven development can provide.
To date, there has not been a similar standardised enabler of model-driven approach for the mobile space. As a result, the mobile application development world is suffering from many of the pain points that the early Java development community experienced: slow and expensive application development, shortage of development skills, low level of code reuse, and high costs for application upgrade and enhancement.
By using a model-driven development approach, optimised for the unique challenges and requirements of the mobile space, companies can apply this path to better address the rapid pace of changes required on the front-end mobile app interface while still bridging to less frequent but equally important changes in the mobile back-end and core business infrastructure.