Rapid mobile app development: the model-driven approach

Business use of mobile apps is exploding, and with good reason. Mobile apps can offer substantial productivity benefits to organisations, cost reductions, and increased customer and staff satisfaction. Analysts also report that around two thirds of organisations are using three or more apps.  Therefore, many companies clearly see the need for apps and mobile development. However, their mobile app development teams face many challenges during the mobile app development process.   

This includes the ability to scale teams in line with app development requirement, complex back-end integrations and faster release cycles. 

App supply vs app demand

In addition to this, Gartner reports that the market demand for mobile application development services will grow five times faster than internal IT teams’ capacities to deliver apps.  Whereas another study found that nearly half of the organisations it surveyed have a backlog in mobile development that ranges between 10 to 20 apps.  

So there is definitely a struggle between supply and demand, and organisations seem to be losing this battle. Part of the driver behind this mobile app development problem is because app development continues to be complex and challenging; which raises a serious question around how organisations can build apps faster and more efficiently?

Mobile app development obstacles

Further, aside from overcoming the time it takes to develop apps rapidly, there are several obstacles development teams face. For instance, being able to import apps from a single platform to all the major OSs is key. Otherwise, it can double or even triple the cost with each additional platform port costing an incremental 50 per cent - 70 per cent. 

Native mobile app developers with strong skills can also be difficult to source; and, HTML5 mobile apps lack native features, perform poorly and consequently provide users with bad experiences, resulting in low adoption. Back-end or server side development can also contribute to terrible app performance, and substantially impact end-user experience, accounting for 75 per cent to 80 per cent of the effort and expense.  

Many of the complexities associated with mobile application development can also be attributed to the vast fragmentation of technologies available. Building your own back-end, using custom frameworks from niche point products, or using an array of open source tools and plug-ins can enhance  both complexity and costs. 

Typically these tactics make sense and are cheaper initially for simple applications, or for extending a web application to mobile; however, they can quickly become complex custom mobile application development projects. With these quick-fix choices often resulting in a high total cost of ownership that have the potential to increase over time. 

This isn’t a new problem for large enterprise to deal with too.  They have been solving software development issues for many years. But, it is an expensive way of building apps, especially when you throw development for mobile into the mix; which now requires specific development processes and methodologies to be factored in so that the development process can be saved from chaos. 

Developing for mobile moments

The answer to this problem, therefore, lies in identifying ways to continue delivering great mobile experiences by using predictable and repeatable mobile app development processes, that free up agile development teams, enable parallel work streams, maximise reuse and which are cost effective in the long term. 

Additionally, mobility has fundamentally changed the application development model that is being used by developers.  Now, developers focus on breaking a business process into multiple small task-oriented user interactions, sometimes referred to as “mobile moments”. They favour this approach over the traditional monolithic one. Proven elsewhere, this more modern approach allows teams to develop in a reliable, repeatable and sustainable fashion that does not require the creation of a brand-new approach.  

What is the model-driven approach?

So, the better path to consider is one that adopts this model-driven approach. Meaning, the adoption of a methodology that enables rapid development of applications from architectural models that make use of smaller, discrete objects. Ultimately, many organisations have found that they can streamline development with this approach.

In addition, by using model-driven development 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.  

What Java developers teach us

To see this in action, you only have to consider how Java-based development teams, with frameworks like Spring and Struts are adopting model-driven development.   They use object-based models to abstract low-level programming complexities and provide a standardised programming approach that enables any developer to immediately understand the application structure and change it with confidence. 

Importantly, too, the wide adoption of Java-based model-driven development demonstrates the advantages that model-driven development can deliver.

However, currently, there is also no similar standardised enabler for a model-driven approach across mobile. So, globally, mobile application developers are suffering from many of the growing pains that the early Java development community came up against; which included slow and costly application development, shortage of development skills, low level of code reuse, and high costs for application changes and updates. 

But, 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 bridging to less frequent but equally important changes in the mobile back-end and core business infrastructure.

Conclusion

Mobile app usage is only set to continue exploding. It is also likely to evolve to include application development across multiple other connected devices (M2M/IoT/wearables) too. As it continues to grow, so must software development teams’ capabilities to rapidly, accurately and cost effectively handle development for these and newer platforms. 

The gains available from adopting a model-driven development approach are undisputable. The sooner teams start to adopt them, the faster they can reap the vast array of benefits offered to their teams, customers and the wider business.

Burley Kawasaki, SVP, Products, Kony
Image source: Shutterstock/Chinnapong