Ask mobile software developers "What is BYOD?" and, along with answering "bring your own device," they are quick to add "but some restrictions apply."
Mobile experts have begun to question whether it's realistic for software teams writing and testing sophisticated mobile applications to support unrestricted company BYOD policies. In spite of cross-platform tools for mobile development, producing apps for virtually any device running any operating system is too costly and time-consuming to be practical, they say. "BYOD is a lot more complicated than most enterprises realize," said CIMI Corp. CEO Tom Nolle.
Four operating systems, for a sophisticated mobile application? Probably not.
vice president of strategy, MobileIron
This realization comes at a time when BYOD policies are being widely adopted. TechTarget's annual IT Priorities Survey of IT managers worldwide confirms that BYOD policies are increasingly the norm. More than 55% of respondents said they currently implement or plan to implement policies that allow users to purchase their own smartphones.
BYOD policies emerged from the idea of adding company email and calendar apps to employees' smartphones and tablet computers. That approach works well enough because "there is a known universe of clients running on different operating systems for these apps," Nolle said. But as organizations progress to custom mobile applications that are closely tied to the business, a wide array of software development challenges make unlimited BYOD support unrealistic.
"I want to give the guy with the tablet a different screen to take advantage of the larger real estate [a tablet offers]," Nolle said, offering an example. "But now the application has to recognize what device the user is on, and nonstandard browsers can't always detect that."
The first challenge software teams taking on a mobile project face is deciding how broad a span of devices they will support, said Ojas Rege, vice president of strategy at MobileIron, which sells software for mobile application management. "Four operating systems for a sophisticated mobile application? Probably not," he said.
The challenges of supporting BYOD policies from the standpoint of security and data protection are not trivial, but they are well understood. BYOD policies also place a sizable burden on test organizations, which need to take a wide range of device and operating system combinations into consideration. Strategies for addressing that challenge are also well documented. But the challenges of writing code that runs properly on different platforms is only just now coming to the fore, Rege said. "BYOD policies are happening everywhere, but their impact on application development is not well understood by most organizations."
In this article, mobile experts outline these challenges and explain why it's difficult for mobile application developers to comply with BYOD policies.
Dealing with APIs
Sophisticated enterprise mobile applications -- sometimes called "fusion apps" -- typically take advantage of mobile device features that enable such things as location-aware services. Developers enable applications to take advantage of these services by writing to application programming interfaces (APIs). "The problem is that the APIs for the services are different. They write to the display differently. They write to the GPS differently. So, you almost have to have different codebases for iOS, Android [and other mobile operating systems]," Nolle said.
Writing high-quality mobile apps requires developers to understand the ins and outs of the APIs for each of the operating systems, Nolle said. The challenge is significant enough that mobile developers often support each targeted platform through separate codebases and development teams.
More application platform combinations mean higher costs
In theory, mobile cross-platform development tools make it possible to produce applications for the iOS, Android, Windows Phone and BlackBerry operating systems through a single codebase, compiled for each platform. But fine-tuning that codebase for each mobile operating system is not a trivial task. "You need one developer to write the code and one developer to port the code to each targeted operating system," Rege said. Supporting multiple operating systems and devices for mobile projects drives up development costs, he said.
Developers need to understand the nuances of not only of each operating system, but also of each version of it. For instance, Android versions 4 and later support data encryption. Earlier versions don't, which means developers must write their own code to encrypt data, Rege said. "Mobile developers have to be experts in their operating systems."
Going the Web route is no panacea
Some software teams address multi-platform mobile projects by making mobile versions of Web applications, Rege said. That approach has two drawbacks: Poor or lost connectivity makes the application unavailable, and the user experience is constrained by the Web browser, he said. Browsers that support HTML 5 are improving that experience -- and mobile app development in general. But many developers believe the HTML 5 approach to mobile applications lags behind native development approaches.
Mobile apps don't comply with BYOD
Mobile development approaches remain a work in progress, Nolle said. As a result, the more sophisticated the enterprise mobile application is, the less likely it is to support the company BYOD policy. Organizations develop enterprise mobile applications on one platform, and they are issuing company devices to the narrow set of employees it was designed for, he said. "The more explicitly you target mobile productivity, the tighter you have to control BYOD."
Are you developing enterprise mobile apps for more than one mobile operating system? Let us know what challenges you're running up against.