I recently gave a presentation on Android Integration to a local Java User Group and I got to talking with one of the attendees after the presentation on some of the points I had brought up in the presentation. One question was “How did I see enterprise mobile development different from how mobile development is done today?”
Right now, mobile application development mimics very closely the open-source environment. You have a developer who wants to create a fun/cool mobile application and has an itch to scratch in terms of supporting some functionality they don’t have on their smartphone now. A couple of weeks of work, an upload to some Marketplace, and voila! However, enterprise mobile application environment is not very different from traditional software development:
- It still needs to be business-need driven. A developer has to begin by validating and refining the business needs around the mobile app. A significant investment could be wasted otherwise.
- Get the user perspective. If the user is not defined and engaged early, that audience will abandon the application shortly after use. It goes back to the statistic that 1 in 4 applications downloaded to a smartphone is opened only once and abandoned.
- Architectural strategy. Just as we had to make recommendations to the client around .NET versus J2EE, the focus has shifted to native versus web-based based on criteria such as response time, richness of the user interface, cross-platform, need to use built-in hardware, etc. Just as in recommending .NET or J2EE, recommending native or web-based as an architectural approach will have a long-term impact.
- Security is paramount. This is especially true as most of the traffic between the mobile app and the enterprise will most likely be over open WiFi or cell carriers. Smartphones have a high incidence of being lost and stolen.
- Mobile technology is changing rapidly. Developers and architects need to stay on top of mobile trends in order to develop and deploy the best mobile applications possible just as they had to stay on top of enterprise application trends when it was J2EE or .NET
Understanding and managing mobile application variables such as device synchronization, security needs, and differences in handsets, user interfaces, and operating systems requires a high degree of skill across many different skill sets. These people are normally found in larger enterprise IT shops and consulting firms because they juggled a myriad set of technologies and issues getting the latest HR web-based application out the door. Same stuff, different platform.
The main different that I saw is the how the mobile application is distributed. Depending on the platform (iOS, Android, Blackberry, Windows Mobile), you have to be aware of what the OS provider deems acceptable if their Marketplace is the only way to distribute the mobile application. Determine if there are ways to distribute the mobile application internally, an internal Enterprise Marketplace, for example. You want to be able to control the timing of upgrades as they may need to be in sync with internal enterprise applications that the mobile application is relying on.