There are three primary adoption criteria for the success of a mobile solution deployed in the enterprise landscape be it on Windows Mobile, BlackBerry, iPhone etc.
1. User acceptance determines the efficiency and productivity gain for the enterprise in rolling out the mobile solution. If the users do not use the mobile solution then expected efficiency gain in an enterprise would not be achieved.
2. Total Cost of Operations (TCO) i.e. cost incurred in running a mobile solution covering all the aspects of manageability like rollout, upgrades, troubleshooting, security, data cost etc. of the mobile assets in the landscape.
3. Ease of adopting mobile solution to changing business process of an enterprise.
With the above three criteria I would summarize fundamental technical qualities required for a mobile solution
Application running on a device should gel well into the native user experience of the device. This will result in less or no training for the users to start using the application. Also response time for doing any activity should be instantaneous. I list down some of the examples.
- CRM activity could be represented as calendar events
- CRM contacts could be represented as local contacts in the device
- Business approval requests like discount approval could be represented as tasks
- Business Events like new leads could be represented as mail alerts with link to business data
- Ability to call contact phone number directly from the local business application
- Ability to navigate to maps directly from the local business application
Seamless offline / online and Alert based
Users should be able to work with the information regardless of connectivity. Connectivity should not be a barrier when it comes to the usage of the application both from the user action perspective and from the application response time perspective.
- Users should be able to do all the mission critical tasks on their device whether there is connectivity or not
- If there is connectivity local changes would be synchronized with the back office system automatically and also users would be able to do additional activities like online lookups, search, ATP check etc.,
- Changes in the back office system that are identified to be relevant for set of users should be pushed to the user’s device automatically provided the device is in connectivity zone
- Users would be alerted about critical events needing their attention
This means availability of minimal local data, which is required for completing a task, is critical for providing such an experience. In case of exceptional cases of erroneous inputs by the user, proper error handling mechanism has to be put in place. More importantly users should not be bothered with errors once they finish their tasks locally, they should be handled centrally.
All the device assets in the enterprise landscape should be manageable centrally and in a mass way. This is a crucial TCO driver. Following are some of the critical aspects that needs to be put in place for enabling it
- Centrally controlled over-the-air deployment of applications
- Unified provisioning of data along with applications, otherwise will lead to lots of error conditions
- Centrally controlled phased upgrade support for both data and applications. This is crucial otherwise will force the enterprise to do a complete big bang upgrade of the whole landscape, which is not practical. This also means there should be a way to handle multiple versions of interfaces and data in order to avoid business down time.
- Central inbox for error resolution to relieve the end users from the handling exceptions
- Troubleshooting tools – End to end transaction/message monitoring, root cause analysis, statistics, alerts, system health etc.
Limited resource considerations
On the device resources like processing power, memory and battery life are all minimal. Also bandwidth utilization should not be ignored. Based on the device type that is chosen, application should incorporate all the aspects that are relevant for these resource constraints. I am listing down some of the drivers
- Data volume cached on the client should be controlled through the business process rules. These rules should be changeable in a flexible way
- Delta communication. It is essential to communicate just the modified fields between device and the server instead of communicating complete instance every time when there is a change
- Efficient compression including technical and semantic compressions
- Reduce request-response cycles by efficiently caching relevant data on the local device
- Being event driven instead of polling on the device
Scalability & Flexibility
Solution should be able to scale with respect to the growing needs of the enterprise. Following aspects are the good pointers
- Scale with more users and devices
- Scale with more business data
- Flexible to change the solution based on business process needs. E.g. Enterprise might decide to reorganize their workforce based on product lines instead of territories. It should be possible to effect this change in the system in an easy and fast way without compromising on resource constraints