Written by Andrew Burgess, solutions engineer, OutSystems UK
Having recently attended Enterprise Apps World, I thought I would share my key takeaways from the show. It’s clear that most organisations 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 that they are built for mobile. As a result, Agile development is now a reality and as an industry we have started to move away from the old ‘waterfall’ development days when very 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.
There was also quite a lot of discussion at the show around how you achieve an Agile approach and whether high-productivity tools and platforms such as OutSystems 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 (such as OutSystems) 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, which needs to be extracted so developers can work on the real business functionality. There are two ways of doing this. One 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 the organisation builds its own platform. However in my experience this is rare, very resource intensive, and expensive.
When we’ve talked to our customers who are doing their first project with OutSystems sometimes they have approached the project with an old-fashioned ‘waterfall’ mind set, not really realising the capability of a visual modelling environment. However when they see and experience this visual approach, more often than not, they open their minds as they explore, learn and understand how a high-productivity platform can help them. In my experience, once you use a high-productivity platform it actually helps you to become more Agile because the shortened development and release lifecycle make it easy to obtain feedback and respond to changes.
So how does the debate around development methodology translate for organisations looking to go mobile? Analysts firms currently estimate that approximately 50% of enterprise apps today can benefit from going mobile. However, when enterprise apps are taken mobile, their numbers multiply by a factor of 5-10X. Current mobile app dev approaches, whether that be hand-coding and/or waterfall, simply will not scale to this magnitude.
Coming away from the event it is now 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, you can take a web-based (HTML5) approach, or you could take a hybrid approach. Here is where and how the industry believes these tools and methodologies should be applied:
- Native Applications – When building highly specialised consumer apps, the native approach is generally the one that organisations believe they should take. Native apps are mobile applications that are 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 each device to be supported, 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 specialise in this.
- Mobile Web Applications: For enterprises whose aim is to rapidly build apps that increase staff and business productivity, utilising a web-based (HTML5) development approach helps. HTML5 is not device specific and you can develop once and deploy across multiple platforms – so it is 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.
- Hybrid Applications: 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 very popular 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. At OutSystems, we have customers using our application platform to develop and deliver all three application types as different situations always call for different approaches. A recent Forrester report addresses the growing need for new low-code development platforms that accelerate app delivery and help enterprise organisations deliver mobile and multi-channel apps. If you are interested in reading the report here is a link http://www.outsystems.com/1/customer-facing-apps/.There is no doubt that mobile app development is a key priority for organisations 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.