Enterprise mobility : Do it yourself or Use Back-end as service

Organizations look at enterprise mobility application to enable handling of business processes on mobile for employees and to equip the customer to reach enterprise using mobile with ease and at their comfort.  To reach the objective level of productive employees and satisfied customers, mobile apps have to be integrated with enterprise system and data. Planning of mobile strategy needs to answer following questions first before deciding the approach.

  •  How easy is it to add mobile platforms on which the organization wishes to access back-end data? Can back end provide support of  a single interface to each mobile platform the organization wishes to support? Or do we need to build a different back-end connection to each platform they target?  With end users (even employees) insist on using their own devices and hence enterprises need to answer this difficult and important question to achieve “platform portability”.
  • How the finished app might look like?  Generally we develop screen mock-ups and position data  to create an experience that approximates what end-users can expect and start real development work only after end-user buy-in. Do we write back end to code to get the data first or just hard-code data
  • How should  the back-end present its data to the outside world? What type of inputs will the client app give the back-end and what type of outputs will the client expect back? What type of API exists on the back-end? SOAP? REST? What’s the connection protocol? TCP? HTTP? How will the back-end handle errors? What response codes will be returned?
  • Should the mobile developer build an interface  that the back-end developer is expecting?  The mobile developer needs to think of customer equally and also the back end developer and the two must negotiate and agree in order for the interface to work.  One classic conflict is how to implement client side caching and another is whether legacy databases and systems should be re-engineered for mobile.
  • How to handle security  and policy management of enterprise in the mobile app?  OAuth is can be used for integrating security for the enterprise and works very well for newly creates users. For existing users of the enterprise, one needs to design for the back-end and mobile app to manage OAuth tokens and support user authentication flow.  the authentication challenge is increases with the need to manage policy that differs with organizations and also differs by department and the hierarchy level  a particular person belongs to in the organization.
  • Should the mobile developer think for offline support in the application?  First there needs to be definition what happens when the app is not connected to the Internet. This  scenario gets ignored and failures has significant consequences in real time. If support is needed,  developer needs to develop a client library
    • monitor the state of the server connection on continuous basis.
    • trap errors when the connection is lost
    • take mitigation steps to make app go offline rather than letting the app simply crash
    • decide course of action once the internet connectivity is restore.
    • what happens during the down time? there could be back-end update and  the mobile app is expected to  work to confirm that the user experience is the same as if connectivity has not been lost.

Let us be aware that a tight coupling with back-end demands that the client app must be rewritten, regenerated and redeployed for all platforms running the mobile app. This need to be true if new fields are added to the back end. The time and cost to produce a polished high quality app matters more to the enterprise  than implementation details. They expect to reduce the risk of incompatibilities between front end and back end and demand a differentiating

At last what matters to the enterprise is a positive experience delivered at far less cost and on a much shorter timeline.