The Best Way To Develop Mobile Apps? Don't Develop Mobile Apps!

Nothing like starting off the day with a koan, right? How would one develop a mobile app without developing a mobile app? In my latest piece of research on the future of mobile application development, I make the point that if developers overrotate their focus to building mobile clients, we risk creating the same sorts of vertical stovepipes we’re trying to work our way out of right now with all the web apps we built to run on Wintel in IE6. Rather, I think it’s time we broadened our focus and shifted our efforts toward building modern applications. Mobile apps are an important component of a modern application architecture, but only part of the whole picture.

So what’s a modern application? A modern application is:

  • Omnichannel. Modern applications are designed to work across tablets, smartphones, phablets, heads-up displays, automobiles — and, yes, desktops and laptops. They are designed to anticipate new client demands and new methods of interaction, including voice, touch, mouse, and eye tracking. Modern apps may start with a consistent cross-channel expereince, but they quickly move beyond that to a cross-channel and a channel-optimized interface.
  • Elastic. Successful modern applications are designed to spin up or spin down as needed. They take advantage of cloud economics. They comprehensively use open source software because it adds licensing flexibility to scale-out architectural flexibility.
  • API-oriented. Modern applications compose and expose APIs everywhere. They build on open web techniques and use REST, XML, and JSON to make it easy for all types of devices and clients to easily consume data. Any visible service or piece of data has a “headless” API counterpart so that alternative views can be provided. In many cases, the APIs that a modern application exposes form the basis for a public, third-party developer community that enables mash-ups, plug-ins, and innovation on a core set of data and services that drive a company’s business.
  • Responsive. Modern applications are built to deal with the realites of a public network topology that is increasingly out of IT's control. Application state management is pushed to the edge of the application. Asynchronous service design enables scale-out infrastructure to deliver information to clients in a stateless manner. Alternative system design patterns like broker and pipes and filters become better alternatives than a model-view-controller approach. In-memory databases are used to aggregate information from multiple service endpoints and cache it as close to the carrier networks as possible, in public cloud infrastructure, often alongside CDNs.
  • Organic. No, modern applications aren’t singularities (yet). But modern applications tend to evolve more like a biological organism than a big-bang product release. Individual pieces of the application change all the time. A new feature on the client is deployed here, and a new algorithm that makes a service more efficient is deployed there. Modern applications are complex machines; they span systems of operation, systems of record, and systems of engagement (see Figure 1). Changing out all of the components in a single release would be incredibly risky. Dev-ops practices and continuous deployment capability are critical adaptations for organizations that want to build modern applications.
  • Contextual. One of the biggest opportunities developers have when they make the mobile shift is the increase in contextual data at their disposal. There’s the immediate device context and data from sensors, but there’s also the extended context of a modern application, which includes machine-to-machine (M2M) data, and complex events. There’s also historical context, and the possibility of using all three to predict what a customer wants, before they know they want it. 

Building modern applications is not as simple as learning Objective C or buying a mobile middleware tool. And since modern applications are composed of  systems of systems, you shouldn't separate your mobile strategy from your cloud strategy or your big data strategy.

If you’re a Forrester client, check out the deeper analysis that I’ve written with Julie Ask. I’d love to find out what you think. 

 

Figure 1: Modern Applications Are Systems Of Systems

 

Comments

Wonderful vision - is it real in enterprise?

Hi Jeffrey,
I'm wondering how many clients are as advanced as the vision you've painted of a modern enterprise architecture? Other than maybe some newer Web services companies (AWS, Twitter, Facebook, etc.), are more established companies evolving this way? I see many who are still struggling with having outsourced so much of their custom work.

Greg Chase
@GregChase

Building robust, integrated,

Building robust, integrated, native applications is quickly becoming a requirement across the enterprise, but not having mobile programming skills in Objective C, Java, Javascript, and/or Mobile J Query no longer has to be a roadblock. All developers can now build, test and deliver data rich, native apps quickly and easily without any mobile programming skills required. Those developers with mobile programming experience can leverage their skills to extend development further and significantly faster than ever before.

It's a reality, but often not in IT

Hey Greg,
You're right that "outside the firewall" companies seem to have the edge on modern application development, but I think it's more a point in time statement, based on appetite for innovation and culture. Some of these same companies are huge, complex beasts in their own right - but they understand the shift in economics that modern architecture represents and are moving to exploit it.

I often hear from established companies that innovation is "on the agenda" - but when you peel back the covers on the statement it's all about technical innovation, not cultural innovation or business model innovation. I find the folks that are building modern applications are blending all three. They use the cloud, and mobile devices - but they use them to multiply their resources and change the status quo.

That's what so interesting about our brave new world - nothing prevents established companies from following the digital upstarts - save rules, regulations, fear, uncertainty and doubt. Some folks seem to get it - my take on Jeff Immelt's comments here (http://www.siliconvalleywatcher.com/mt/archives/2012/12/general_electri.php) is that he gets it. Others will too - in time.

It is true that the shift in

It is true that the shift in building modern applications can be observed in the major fields of technology. Although the process of developing modern apps seems to be challenging, it is also a very exciting experience for the app developers.

Mobile App Developer

Mobile app developers have to build extra modern apps with the latest technologies and for new users because today competition is going on high.

The Best Way To Develop

The Best Way To Develop Mobile Apps? Don't Develop Mobile Apps!
It's really true - there are so many app builders that demand no programming skills, so you do not need to develop anything. E.g. I made my app with Snappii app building service and it was easy, cheap and fast. Really nice app maker!

A bit off the mark

Although I think managed services for building apps do have a place - that's really not the point I'm making here. Be careful that you don't lock yourself into a platform that won't grow as your needs grow.

* Will the platform support new devices as they come out?
* Will it allow you to integrate other services if you want to incorporate push messaging or feedback management systems?
*What about 3rd party analytics?

Make sure you spend some time understanding how a managed platform vendor scales. They may use the principles and architectures I've discussed here, so they can pass that flexibility through to you as a developer. Or they may not be able to achieve the elasticity and effective pricing required to survive in the long term.

Place your long term bets on architecture that is elastic, asynchronous and that embraces web standards. That approach is likeliest to survive the coming shakeout in mobile development approaches.

Android Development

Excellent post about mobile apps. A community for How Android Forum.This is the forum for help and discussion on Android Development, Galaxy, Nexus, Droid, HTC, IPhone, Media, Carriers, Games, Media, Development, Evo and all your favorites Android phones and tablets.
Android Development

Mobile Application Development

Hi,

Thanks to sharing latest mobile application development tips. It was very much helpful for my client.

Development of mobile apps

Development of mobile apps have come up to the great heights due to growing demands of user..Many new things come everyday which plays very important role in development of mobile apps and helps to increase knowledge of the developer.
Top Software Company

Mobile apps are hot today.

Mobile apps are hot today. But hiring a programmer is too expensive. I used snappii.com to make apps. It's really easy, the web service allows to make mobile apps in minutes, and without programming skills at all. If you are short of time, they can make an app for you very quickly.

Reply:

I must say being an android app developer that you need to first research of the famous mobile apps that people adore then hire android developer to develop the best apps.

Android

This is very inspiring, as getting from the start & Having no real background in programming (aside from making some adventures on ZX-81 and MSX), I want to get started on developing something for my own Android based eBook reader and android app development training even this online course seems to be interesting http://www.wiziq.com/course/13599-professional-android-app-development-t.... Has anyone tried any online courses so far. Please do provide a light on this also.

I found

I found Thishttp://appstorebuilder.net being a great way to learn how to build apps

Creating native and HTML5

Creating native and HTML5 apps is no longer a problem. Due to user friendly and flexible online app building platforms it is really easy to get an app in the Appstore and Google Play even if you have no programming skills. Among the services I used myself I would recommend Snappii as their opportunities in mobile app development seem to be endless and can suit any business needs.

My 10 cents...

Hi Jeffrey,

First off, great insight!

Being in the mobile space I agree that a mobile app is (often times) a lot more than a simple piece of software that sits on your smartphone.

The apps we generally develop (even many of our game apps) are connected to larger online systems. By 'connected' it doesn't even suffice to say that the connection is via 3/4G or wifi because some apps are a whole lot more advanced than that and can often require hardware and bluetooth connectivity between the handset, the online server and for example 'a home automation system'.

In response to Greg Chase's comment: Most (nearly 100%) of my clients are in no way as advanced in their technical understanding to suggest the use of a 3rd party service, or a cloud based server, etc.
And that's where we come in, to make those sort of recommendations.

In support of your comment regarding app builders:
My experience with these is limited, but I know enough to say that they are good...for apps that are designed for very basic functionality. Now there are even app makers for game apps and the result of these is a very generic game.
If you want to develop an app that stands out, you need to include a bit of flare. Something cool that makes it different from the run-of-the-mill apps that crash and burn on the app store.
Once again, I'm limited by experience as we tend to work on the developing apps with the latest technology (AirPlay for iOS, etc.) to create world-class experiences. You don't get that from template apps. And I'm pretty sure you don't get any pats on the back either ;)

Thanks again Jeffrey,