What's different about Mobile? What's the same?In some ways, mobile device applications are very different from other software. And in other ways, development of mobile apps is the same as for other software. Let's examine the similarities and differences...
- Mobile applications still originate from some set of requirements to solve a particular problem or address a particular need. So it is still important to track and keep the original requirements all the way through until the mobile app is published.
- Mobile apps are still developed by a team of people (maybe a small team) that need to stay coordinated - at least as far as knowing the definitive version of source code for the app goes.
- Mobile apps, especially enterprise mobile apps, are expected to be able to access the same data as desktop browser applications do.
- And mobile apps still have the same requirements for secure access and storage of the application data, including the avoidance of vulnerabilities to hacking and data compromise.
- The features of a mobile app, defined by its requirements, need to be validated as delivered in the version of the app delivered to the market.
These are ways in which mobile application requirements and development are the same as most other forms of software. There are lots of tools in the market for creating mobile application code. But this isn't about code creation tools. It's about the process by which any software gets defined and produced with good quality.
Okay, so what about the things that are different about mobile apps?
- The form factors are different than traditional desktop applications. Screen real estate is at a premium.
- The human input mechanisms are very different (touch, pinch, swipe, etc.). Traditional keyboard typing input is more cumbersome and should be minimized.
- Beyond input mechanisms and form factors, the user interaction style is really different - it is easier to consume information than to (overtly) produce information.
- Mobile devices have a habit of becoming disconnected from the network. So mobile apps cannot be implemented to assume constant network availability.
- Even when connected, the speed and quality of the network varies wildly. So data transfer schemes for the application need to emphasize aggressive retrieval and caching in order to get satisfying user experience performance.
- The attention span of an end user for mobile apps is typically shorter than for a traditional desktop application. Users are more often interrupted and multi-tasking on mobile devices, even more than when they are sitting in front of a dedicated workstation.
I am certainly forgetting items from each list - similarities to other software development and the differences. It seems that mobile users expect ALL of the same quality and services and access to data that comes with desktop applications, but with the added challenge of a much easier, intuitive, "friendly" (touchy - feely?) interaction design.
One should not underestimate the differences in user experience requirements for mobile apps when first starting such a project. But how to reconcile the paradox of the similarities of mobile app development with other software in general, while still designing & delivering an app that meets the expectations of your mobile end users?
One way to accomplish this goal is to integrate commercial application lifecycle tools with mobile-specific application development tools, even when different vendors are involved. That's one idea to address this dichotomy of mobile application development.