A look at the key trends in application development

App development
Mobile app development is a key priority for organisations going forward

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.

Getting agile

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 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 cooperate. 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, which needs to be extracted so developers can work on the real business functionality.

Two methods

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 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.

Mobile matters

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 five to ten. 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.