Understanding the key trends in application development
Having recently attended Enterprise Apps World in June, I thought I would share my key takeaways from the show. It's clear that most organizations are looking at the implications of going mobile and are considering how enterprise apps will work within their mobile strategy.
IT teams are working to increase the productivity of their developers to build enterprise apps faster and more cost effectively, ensuring that they are multi-channel and built for mobile. As a result agile development is now a reality, and as an industry we have moved away from the old "waterfall" development days when big projects included long delivery times. Now businesses are looking for rapid response to change and incremental releases, as well as a time boxed development approach.
The agile approach
There was also a lot of discussion at the show around achieving an agile approach and whether high-productivity tools and platforms can help complement or accelerate an agile methodology. In the past, the challenge with agile has been connecting enterprise apps to multiple systems and a large and complex infrastructure.
For complex systems to integrate and work seamlessly together careful planning is needed and IT teams from various parts of the business all need to co-operate. More recently however, this has changed with new tools and platforms that allow developers to build enterprise software faster, tackling it in smaller chunks.
The traditional way of building software required time to be spent on what we call the "plumbing", creating lots of underlying infrastructure before a developer can get to the useful part of the software. The useful part of the software then needs to be extracted so developers can work on the real business functionality. There are two ways of doing this. The first is by using a high-productivity platform that does all the plumbing for you and lets you focus on creating business functionality. The other way is for the organization to build its own platform. However in my experience this approach is rare as it is resource intensive and expensive.
The debate around development methodology
So how does the debate around development methodology translate for organizations looking to go mobile? Analyst firms currently estimate that approximately 50 percent of enterprise apps today can benefit from going mobile. However, when enterprise apps are taken mobile, their numbers multiply by a factor of five to ten. Current mobile app dev approaches, whether hand-coding or waterfall, simply will not scale to this magnitude.
Coming away from the event it is apparent that there is broad consensus around which approach and tools are most appropriate for the different methods of mobile application development. For example; you could go down the native route, take a web-based (HTML5) approach, or you could take a hybrid approach. Here is how to apply these tools and methodologies:
When building highly specialized consumer apps, the native approach is generally the one that organizations believe they should take. Native apps are mobile applications written in the sometimes-proprietary language(s) prescribed or allowed by the mobile OS manufacturer. Usually these apps provide a very rich user experience, because they are built specifically for a particular device's hardware.
On the downside, for every supported device you'll need to build a specific version of your app. This approach tends to carry with it specific teams dedicated to each platform because of the uniqueness of each language and device or outsourcing to companies that specialize in that platform.
Mobile Web Applications
For enterprises whose aim is to rapidly build apps that increase staff and business productivity, utilizing a web-based (HTML5) development approach helps. HTML5 is not device specific and you can develop the app once and deploy across multiple platforms, so it's great for mobile.
HTML5 is also good for developing enterprise applications where changes need to be made often and immediately. Rapid advances in HTML5 mean that web apps can now do most of the things that native apps can do with much less overhead in terms of development and maintenance resources. The web app approach enables IT teams to use what they already have, as opposed to the native approach, which requires new skills to be learnt.
The main goal of a hybrid application is to leverage the power of native and the simplicity of mobile web. This is achieved by building a thin native shell around a mobile web application or applications. Companies frequently use this technique to get the mobile app listed on a variety of app stores or do device-level integrations. Hybrid is becoming popular for when you need to combine elements from the native approach but you want all the benefits of web.
It is quite likely that the approach you ultimately take in mobile won't be native, mobile web, or hybrid, it will be native, mobile web, and hybrid. A recent Forrester report addressed the growing need for new low-code development platforms that accelerate app delivery and help enterprise organizations deliver mobile and multi-channel apps.
There is no doubt that mobile app development is a key priority for organizations going forward and the faster IT teams can accommodate new mobile projects into their workload, the more responsive IT will be to meeting business needs.
Andrew Burgess is a solutions engineer at OutSystems
Published under license from ITProPortal.com, a Net Communities Ltd Publication. All rights reserved.