Wireless Applications: A Radical Shift in Software Development
Wireless development presents the daunting task of writing applications that must work across multiple device types while depending on unreliable networks. IDC analyst Alex Slawsby explains why being a successful wireless developer will require a departure from how you're used to coding.
by Glen Kunene, Senior Editor
Mar 18, 2003
n a recent interview with DevX, Alex Slawsby, research analyst for smart handheld devices at IDC, laid out a challenging roadmap for developers preparing to take the plunge into wireless development. "Developers have to be aware that unlike a PC environment with everyone running on Win2000 or XP, which is somewhat easily translatable, if you have different device types, different battery lives, different performance characteristics, it's a radically different paradigm for development," he said.
You'll need to adjust your thinking to truly move forward with your wireless initiatives. Many aspects of your organization's development environment that you take for grantedupgraded PC and laptop clients, common operating systems, five-nines reliabilitybecome potentially confounding variables when you enter the fray of wireless development. Slawsby said, "Instead of being able to say 'I've got XP on my PCs, XP on my laptops; everything is a PIII, 500MHz minimum, with a half a gig of RAM, so I can just plow away,' [with wireless] solutions it's much more a strategy where you have to build a very basic app that puts up a very small window with limited information to ensure that a broad range of devices can access it."
Where as if you have a machine running an outdated OS that won't allow a user to run an application you just wrote, you can simply upgrade that client and then deploy your application, in wireless development you have to bring the application down to the level of the client. "In some ways you have to get the lowest common denominator to ensure that the solution will work across a range of devices," Slawsby explained. "You have to pick the lowest-end device you support and ensure your app works there, and then do what you have to do to make it support higher-capability devices."
Even if you follow the lowest common denominator strategy, however, some case-by-case customization is inevitable "because each device will present you with a different set of capabilities," said Slawsby. "Even if you write an app in Java, you're still going to have to edit it and adapt it in different ways to make it succeed across devices. And [it] also has to be very reliable in the sense that the software has to be able to deal with different methods of connectivity, different bit rates, different size screens, different size resolutions, different display capabilities, and things like that."
Write Once, Run Anywhere? Maybe Someday
How can you best overcome the multi-device hurdle in your organization? While he acknowledges that the write once, run anywhere concept is not yet reality, Slawsby said Java is "one the best ways to go right now." Although a Java app written for a Palm device won't run the same way on a PocketPC or Symbian device in many cases, according to Slawsby, "you can be sure that a lot of those products will be able to run Java. You can write an app and at least have a relatively easier progression from the way it runs on the initial device to having it run on a range of deviceswithout having to rewrite that code completely."
Slawsby also stressed the importance of standards in easing the accommodation of multiple device types. He stated that standards are currently limited and still have a long way to go, but they can help get around the multi-device problem. One standard in particular, XML, shows promise for wireless platform independence. "If you stick with a standard like, say, XML," he explained, "then you could develop an application in XML form and as long as the end client has access to a browser that can view XML, it doesn't matter which carrier they're on," which device type it is, or which OS it's running.
Asked which current wireless technology standards developers will encounter as they begin to build mobile apps, Slawsby listed a number he believes will be around for the long haul. "It's pretty clear that the wireless standards are going to stayBluetooth and 802.11x will be there. The cellular frequencies will be thereGSM, GPRS, and CDMA will be the major ones. You'll clearly see color screens. Expansion cards, secure digital cards, and multimedia cards have a lot of legs. I think CF (CompactFlash) will follow PC cards in terms of its use in mobile devices down the road. SD (Secure Digital Card) and MMC (MultiMediaCard) are quite strong."
The Burden of Reliability
Beyond standardizing for greater ease of transferability, the issue of ensuring wireless application reliability is a challenging one because much of it is out of the developer's control. It rests instead with wireless networks, which according to Slawsby, "are not nearly as good as they need to be to deliver the kind of reliability that's traditionally expected." He stated that "network stability and reliability is by far the toughest thing to deal with" in the wireless world.
Because developers can't just throw up their hands and concede to unreliable service, Slawsby says developers have to pick up the slack. "There's a greater dependence on the intelligence of the software or the solution itself to make up for the fact that wireless networks are not as reliable as one would like them to be," said Slawsby.
He cited the need for wireless message acknowledgement in an SMS exchange as an example of this dependence. The developer needs to force the receiver, the network, or the solution itself to positively acknowledge that the message was received. If that received message is not acknowledged because of a dropped network connection, then the solution has be smart enough to wait a little bit and then reconnect. "The software itself has to be more intelligent and has to be more tolerant of a lack of total reliability," he explained.
The Low-hanging Fruit of Wireless Development
So when you do get the call to develop wireless applications, which solutions will your organization most likely need you to build? Slawsby sees e-mail synchronization as the most obvious choice. He said, "E-mail is the low-hanging fruitand it's more broadly applicable than other solutions." A solution that enables a user to have a single mailbox that they can view on their handheld, as well as on their PC or laptop, is a key mobile deployment.
Another solution Slawsby suggested is mobilizing traditionally paper-based processes, such as inputting data to a form or referencing data from a book. "These are tasks that can be mobilized rather easily and that a lot of companies can use, because many are relying on paper forms and reference books," he said.
When's the Wireless Revolution Coming?
To this point, only vertical enterprises have fully adopted wireless solutions. Companies such as SAP, Siebel, and PeopleSoft employ mobile devices for their customer relationship management (CRM) and sales force automation (SFA) solutions. However, unlike e-mail and paper-based processes, which are broadly applicable across nearly all enterprises, CRM and SFA are specialized concepts in which most enterprises don't have a vested interest.
Identifying applications and real solutions in the enterprise that could leverage the capabilities presented by mobile solutions is a process most companies have yet to undertake, according to Slawsby. They have beenand will continue to beslow to launch any wireless initiative unless the solution instantly demonstrates a savings of money or an improvement in employee or business-processes efficiency and productivity.
Slawsby does, however, see potential for a ubiquity of wireless devices in the enterprise several years down the road. A reality, he said, that might've happened sooner had "the economy and the market for information technology spending not slowed to a halt."
Alex Slawsby is a research analyst in International Data Corp.'s (IDC) Smart Handheld Devices program. Mr. Slawsby is primarily responsible for researching, analyzing, and forecasting Technology within the Smart Handheld Devices space. Reach him at firstname.lastname@example.org