Mobile apps development projects are posing new challenges for software teams. No longer simple productivity tools, enterprise mobile applications are becoming central to how companies do business. Salespeople, for example, rely on them to place orders and check inventory, as well as carry out more complex tasks, such as targeting promotional offers to prospective customers. As a result, developers in the application process are discovering that mobile apps are not simply mini versions of their desktop and Web counterparts, and this has a big impact on how teams should define requirements.
Requirements and mobile experts said there are three critical issues that are unique to mobile apps and should be addressed in the requirements phase: choosing a platform, security and usability.
It's all about the platform
When defining mobile app requirements, teams first need to determine which hardware and operating system the application will run on. This is a nonissue when you're developing enterprise desktop applications. If the organization uses Windows desktops, the application is built to run on Windows. But this isn't always the case for mobile applications; many organizations allow employees to access corporate resources from their own mobile devices.
As an enterprise application developer, you must make sure that security requirements aren't making the user experience awful.
"The variety of mobile devices, especially for Android, is increasing continuously, and it is no longer possible to give an overview of the mobile device market," said Sourav Panda, practice director of mobility testing services at Endeavour Software Technologies in Austin, Texas.
It gets worse when you throw in all the tweaks that hardware manufacturers have made, said Dave Hatter, president of consultancy Libertas Technologies LLC in Cincinnati. In some cases, you can end up with 60 versions of the platform. "Will you build an app that will run on every platform or focus on only one? What will you do if the app runs on one version of Android but when you tweak it to run on another version, it doesn't work on the first?" Hatter said.
The platform you choose will dictate the development skills your team requires, as well as the way you address other requirements. "This is a great challenge while defining requirements for quality management, because the limiting factors like display sizes and formats, operating system versions and basic device characteristics vary," Panda said.
Hatter agreed, saying there is no getting around researching platforms.
"Knowing how to work with one does not necessarily mean you know how to work with another," Hatter said.
Security matters for mobile apps development
Security requirements for mobile apps are not the same as those for enterprise apps, Hatter said. That's because people are regularly taking sensitive data outside the corporation. "Not only are they exchanging data on insecure networks, the devices themselves tend to be insecure and tend to get lost," he said.
A number of requirements must address how data will be protected. "How do you ensure that data remains secure on a device that the organization does not own? How do you wipe that data without touching personal data? How do you maintain visibility of corporate data without visibility of personal data? You have to accommodate all those constraints while ensuring that data loss is prevented," said David Barkovic, senior product manager at MobileIron in Mountain View, Calif.
Security requirements must also address authentication and authorization, allocation of data in offline mode, protection of the file systems, options, and hardware and network resources, Panda said.
Unfortunately, it isn't possible to write requirements for every issue -- there just are too many variables. "It is very organization-specific and, in some cases, industry-specific. It depends on how sensitive the data is that you're dealing with and how rich the data is," said David Nyland, president and CEO of Blueprint, a software requirements tool vendor in Toronto.
Don't forget about usability
Regardless, your requirements must strike a balance between protecting data and maintaining user-friendliness. "As an enterprise application developer, you must make sure that security requirements aren't making the user experience awful," Barkovic said. "If you require users to enter a complex password every time they open corporate information, that iPad is coming back at your head with the speed of a Frisbee -- and it should."
It could even spell success or failure of an app, Panda said. "The user experience will be mirrored by the rating of the app in the app store, and negative ratings can be the source of significant sales losses."
Let us know what challenges your team is facing with mobile apps development projects.
Dig Deeper on Software Development Fundamentals