As part of the graduate program we were tasked with a project of designing, creating and deploying a mobile timesheets application to enable Bluefin's consultants to fill in their timesheets on the move using a number of device options. I was heavily involved in the design, creation and deployment of the application and very quickly realised that this type of development was indeed very different to more traditional ones.
Mobile application development and deployment is one of the most talked about topics in the tech world in recent years. However when it comes to developing enterprise mobile applications, it can often be quite a challenge. Users have become accustomed to high quality applications that are easy to use and accomplish tasks quickly and efficiently. This then leaves applications which are simply desktop apps scaled to fit a mobile screen un-used and rejected.
So how do we ensure that our enterprise mobile apps give our users the experience they expect and deserve?
We will start at the very beginning, the design phase. It is of course the most important part of the whole development, and I do not mean how your back end is structured or exactly how we get the data on to the device. No! I mean the user interface. At the end of the day the most used part of this application is going to be the front end UI and if that is not right you may as well forget it.
But designing a UI is easy! Isn't it? Designing UI's for desktop applications and websites is all well and good as you have the luxury of mountains of real estate on which to place your objects, but when it comes to mobile applications - that's a whole other kettle of fish! It is not enough to fit everything from your normal application onto a smaller screen and expect users to simply know how to use it! We need to go more in depth than that.
If it takes 7 clicks or touches to achieve a simple task - why can we not do it in two or three? When you think about some of the applications that we all use on our mobile devices, the most successful are always the ones we do not even know we are using, the apps that allow you to complete complicated tasks, but make it seem as easy as boiling an egg.
Believe it or not, the build phase is one of the easier parts of building a mobile application. I don't mean that coding the application is easy, far from it. However the build is the one part of the process that the user has no visibility of. At the end of the day the user will not care as long as the application works, and if it doesn't work, well then you have bigger problems than how easy your application is to use!
Never underestimate the value of testing your application in the field. As developers, we all know that it is very easy to overlook something that would appear obvious to others. When you are developing an application, you already know how to use it and how it should respond, so you can easily miss something because you know your application too well. The more users you can get feedback from before you go-live, the better your application will be in the long run.
After design this is the most important aspect of any mobile project especially when it comes to enterprise applications that are generally delivered through a bespoke in-house system. Commercially Apple and Google have made it quite easy to deliver applications to users through the app-store eco system however when you are trying to deliver applications in-house, you need to make it as user friendly and unobtrusive as installing Angry Birds.
It is not enough to just consider the delivery of the application, what about future updates? For commercial apps the app store has a nice update feature, but how to you achieve that on your in-house deployment system? There are a wide range of products to help you achieve this ease of use such as Sybase Afaria or MobiDM to name but two and there is even the option to create your own deployment system using a website, Jquery mobile and some blue-tack!
At the end of the day it depends on the number of users you are deploying to, how often it will need to be updated and how mission critical it is that users can access this application for installation at all times. But one thing is for certain, if you do not get the deployment right….users will not use it!
Mobile application development is not simply a standard development with the UI scaled down. Users have come to expect a certain quality and intuitiveness from their mobile applications and any enterprise application has to match that if it is to see major user adoption. The aim of a mobile application is to exist silently as a tool for the user and yet it has to be a tool they do not realise they are using.
If the user has to think about how to achieve their task while using the application then something has gone wrong. The most important thing to keep in mind when designing, creating and deploying enterprise mobile applications is that they should be seen, easily used but not heard!