Mobile development guide: Testing, requirements and security
A comprehensive collection of articles, videos and more, hand-picked by our editors
In software organizations everywhere, groups of developers and testers are coming together to form "team mobile."
Coined by me, the term "team mobile" nicely captures the key conclusion I've drawn in the course of reporting a series of articles on mobile development and testing. The mainstreaming of mobile applications has profound implications for enterprise development teams. Accustomed to working on Web and desktop projects, team members must now quickly master the new design, coding and testing challenges -- and the compressed timeframe -- that enterprise mobile applications demand.
"The people being tasked to build mobile apps are the same people who worked on desktop and Web apps," said Todd Anglin, executive vice president for mobile toolmaker Telerik, based in Sofia, Bulgaria. "For the last 20 years they dealt with one platform, one form factor. Now, with mobile, all that is gone."
In this article, experts outline four key technology and cultural shifts occurring as mobile app development moves into the enterprise and "team mobile" takes shape:
- Mobile takes top priority, followed by Web and desktop projects.
- Field testing on many different mobile devices is the new normal.
- User experience skills, once peripheral, are a crucial skill for "team mobile" developers.
Why are mobile teams taking shape now?
For many organizations, the earliest enterprise mobile apps were essentially marketing projects. Designed to build brand awareness and alert customers about upcoming sales, for example, outside agencies typically developed these simple apps. That meant they remained far afield from enterprise development teams, said Genefa Murphy, director of product management and user experience for HP Software. "A lot of people outsourced their first mobile apps. They were simple, task-based systems, often designed for marketing events."
By contrast, mobile applications emerging today are true enterprise applications, in that they connect to key company databases and legacy systems, Murphy said. "You have to have an understanding of the back end in order to develop the front end that users see on their mobile devices." Early mobile apps didn't require that skill set, added Nathan Clevenger, chief technology officer for iFactr Inc., a St. Paul, Minn.-based firm that sells mobile tools for Microsoft developers. "They just were brochure-ware. They were built so companies could say, 'Yup, we have a mobile app.'"
HTML5 has been criticized as too slow, compared to a native approach, which lets developers take better advantage of mobile device features, such as the GPS and the camera. But "a native SDK for every mobile platform" can be too costly and time consuming to be practical, said Anglin. The native approach requires developers to create a separate app version for each mobile device, he added.
Cross-platform mobile development tools offer another alternative. From a single codebase, they generate code that is then compiled to different mobile operating system platforms. But fine-tuning that codebase for each mobile device is not trivial. "You still end up writing a lot of platform-specific code," said Clevenger.
Mobile first, then desktop
A native SDK for every mobile platform can be too costly and time consuming to be practical.
For team mobile, testing is a whole new ballgame
As "team mobile" comes together, testers face challenges that simply did not exist with desktop or Web applications. Mobile apps run on different devices and operating system versions, and they are deployed under a wide range of connectivity conditions that testers simply cannot replicate in traditional environments. Mobile teams are meeting those challenges in a variety of ways. "Some are outsourcing testing projects," said Murphy. Others are getting up to speed on mobile test strategies, such as using analytics to determine which devices to test on and where to deploy field testers. "With mobile apps, teams have to take a more strategic approach to testing than ever before," iFactr's Clevenger said.
User experience skills crucial for "team mobile" members
User experience (UX) skills aren't essential for developers of desktop and Web apps. But as enterprise mobile teams take shape, the ability to design the right experience for users of mobile devices is crucial. "With mobile, there is more focus on design and usability," HP's Murphy said. As enterprise development groups redefine themselves as mobile teams, they are acquiring UX skills by learning basic usability techniques and by engaging mobile usability experts to train team members, she said. Mobile developers must abandon the desktop app mentality, added Telerik's Anglin. "They are used to throwing things on the user interface and waiting to see what sticks." Enterprise mobile apps demand that software pros acquire a lot of new skills, he said. "But it's a fun space. They are working on what's next, not on what is last."