Mobile Enterprise Applications – Don’t Try This At Home!
Thinking of developing an in-house mobile solution for your enterprise? Think again.
I’ve been dealing with software development for over 11 years, working on some challenging applications such as ClickSoftware’s famous ClickSchedule as well as others, and I can easily say that nothing matches the fascinating complicated world of mobility.
Following the 10 common mistakes in enterprise mobility, I would like to examine some of the obstacles an enterprise mobile application deals with.
Mobile enterprise application – do not try this at home!
So let’s start with the fact that if your developers are inexperienced with mobile development, they probably have a few assumptions about how things should work, when in fact, their only assumption should be that those assumptions are wrong… (OK, let’s read this sentence one more time… )
Here are just a few examples:
Most client/server architecture products assume a server exists, available to serve the client. In mobility this is not the case. A good mobile application will work seamlessly in occasionally connected environment.
That’s right. No matter if the mobile device is in coverage or not, the end user will need it to operate. The field users will have to continue navigating though the application, dig into details and most important – fill in long reports, no matter how the network behaves. In rare cases I’ve seen the need to work completely offline for days.
This means that the classic client/server architecture will not work, and there is a need to add some data storage capabilities in the client side as well as in a middle-tier to store and forward the messages.
Something that makes the design patterns much more complicated, creation of new objects are not trivial when the server is unavailable to generate keys, and other problems that are hard to expect..
Sounds interesting? That is just the beginning!
If you own a modern smartphone, you probably know that today’s networks are very fast. 3G, Wifi, are everywhere, but still, when speaking of enterprise applications, the amount of information that needs to find its way to the mobile device is big. A good mobile solution should find ways to solve the need to access as much information as possible together with minimizing data traffic. It’s not an easy task.
In some areas of the world, enterprise companies are still using older networks and struggling to save data traffic. Mobile applications which are not for consumers must be optimized in terms of network consumption.
Mobile security is completely different than back-end tools security. First of all, the devices are out there, in the field, which means – they could get lost. Secondly, data is transferred outside the boundaries of the organizational; network, therefore requiring better security, stronger authentication, encryption of not only the messages but also the data stored on the device.
Security should be taken into considerations from day one of working on the mobile application. Security aspects can also dictate certain architectures, working with VPNs, proxy, SSL, connection managers, device managers and more. Most in-house developers will probably not have the kind of security knowledge required to build a proper mobile application.
Multiple Devices Support:
Used to debugging your applications on windows? ha ha ha! forget about it!
In the enterprise world, mobility means you should support other operating systems like Windows Mobile and BlackBerry. Oh, I completely forgot about the iPhone. Now that everyone has it, enterprise companies find themselves deploying more and more iPhones so you should better start working on an iPhone version.
Oops, funny, while I was writing those lines, Google’s Android just gained additional popularity and a new OS version was released, amazing! Now you should build another version to run on Android based devices…
And we haven’t gone through the different screen resolutions that should be supported.
A mobile device is nothing like a desktop:
Experienced developers can reuse existing code, patterns, designs, UI Controls, but nothing matches the challenges a mobile application creates:
Usability is always a challenge, but when you don’t have a full keyboard, mouse, or even two free hands to use when manipulating the application – usability become critical.
Most developers are too technical to understand how hard it is to use their own application, mobile applications take this challenge to the next level.
Small screen makes no room for mistakes, and when the mobile usability standards are reaching the level of the iPhone, your users will settle with nothing less.
Mobile trends come and go very fast, forcing the mobile applications to adjust to the new standards: few years ago, PDA applications were manipulated by styluses, then single hand navigation was the trendy way of working with a smartphone, today you do not get to see a lot of hardware buttons, it’s all about touch screens and touch-based UI. Mobile vendors such as ClickSoftware invest a lot in keeping up with the modern standards (see ClickMobile’s recent facelift, optimized for touch-only devices), can your organization invest in user interface every 1-2 years?
Thinking of the obstacles mobile developers encounter, I can add some other bullets this this frightening list: limited memory, weak performance, integration with multiple back-end systems, complicated user flows, minimal typing and more. But you get the picture…
Does it mean mobile development is such a nightmare?
In fact, now that I crossed the lines, I would never switch back to “simple” products. What it means is that when it comes to developing mobile applications for your enterprise, you should consider best of breed solutions, rather than trying to re-invent the wheel all over again.
Over the years I’ve seen many home grown mobile solutions being replaced by enterprise grade products like ClickMobile.
Flexibility, extensive configuration capabilities, wide range of supported devices, robust architecture, scalable servers, and most of all, continuity of investment in mobile products that can progress along with technology. All of those are important when developing a mobile application, and usually home grown solutions cannot compete with the professional applications.