In the fast-paced world of mobile application development, there is immense pressure to get the next major software release out the door, and quickly. Exacerbating the problem of short timelines and high-pressure deadlines is the fact that organizations who are truly committed to delivering the best user experience for their mobile clients are burdened with developing and deploying applications to four or five different mobile platforms, be it iOS, RIM, Android, Windows Phone or Mamaeo. So what are development teams doing to deal with the insane pressures of the mobile application development market?
A new approach for mobile development?
I can start writing business application code [more quickly] and not have to deal with all of the infrastructure and the plumbing.
Ryan Shriver, analyst at The Virtualization Practice
Best practices never get old. After all, development is development, so taking a lean or Agile approach, something that has proven out to be effective in the enterprise development world, is a no-brainer. The fragmentation of the mobile space means there is the occasional twist to how a lean development methodology gets implemented from end to end (a case-in-point being the "Y-shaped methodology" recommended by the ThoughtWorks' Giles Alexander), but in the end many of the Agile practices that have been practiced and honed in the enterprise world work equally well for those developing handheld devices.
But when the pressure is really on, simply doing things the old way isn't always enough, which is why so many participants in the mobile space are looking at new technologies and approaches that will save them time and money. That's why so many mobile developers and architects of mobile solutions are looking toward the cloud to help them get their applications developed, deployed and out to market faster than ever before.
"For the CTOs that I talk to, especially with the startups, it's a no-brainer," said Ryan Shriver, analyst at The Virtualization Practice and an expert in the arena of Agile cloud development. "They're looking at these sorts of things because they tell me, 'I can start writing business application code quicker and not have to deal with all of the infrastructure and the plumbing.'" And of course, with developers getting to write their code sooner, completed projects get into the mobile app stores even faster.
PaaS plays and the mobile market
Platform as a Service (PaaS) plays have become particularly attractive for many mobile startups because significantly less time is spent on setup and configuration; this is because by definition, a PaaS service takes care of these types of activities for you. "A PaaS play will handle all of the deployment of your software without you really worrying about the underlying infrastructure" said Shriver. Contrast that with an Infrastructure as a Service (IaaS) play such as Amazon EC2, where the client has almost full control over the operating system but also has to do significantly more work.
Full control with an IaaS play is great, but that also means more time is spent doing things such as installation, configuration and optimization, which is why many mobile teams lean toward a PaaS solution. With a PaaS play, "you don't have to worry about operating systems, configuring them or having your tools set up right. All of that stuff is just kind of magically taken care of for you," said Shriver. "Developers tend to like that."
And there's more to the cloud than just supplying virtualized hardware or providing a reliable deployment target and runtime. Many mobile applications also leverage cloud-based web analytics tools at runtime. Cloud-based Integrated Development Environments (IDEs) are being used to develop applications before anyone on the team even starts to think about deployment destinations. Load testing, issue tracking, payment gateways and source code management solutions are all becoming standard problems that are being solved with PaaS plays and SaaS solutions.
Corporate culture and cloud computing
However, not every player with skin in the mobile game is as eager to jump into a PaaS, SaaS or IaaS play as are the venture-funded startups Shriver mentioned earlier. Larger organizations are still often reluctant to accelerate the delivery of mobile applications by leveraging cloud-based services. "Cloud-based technologies may lend themselves to mobile development, but it comes back to the organization and how comfortable they are with them," said Shriver. Of course, the reluctance of larger organizations to leverage cloud-based technologies is something that's gradually changing. Larger companies are becoming increasingly eager to emulate the speed and success of the fast moving startups, and in doing so they are beginning to adopt governance models that are less restrictive and more accommodating for those in the organization who believe development times can be cut and costs reduced by using cloud-based technologies when it makes the most sense.
The bottom line is that success in the mobile market can be driven as much by who is there first as much as it may be driven by the quality of the applications being delivered; as such, minimizing the time to market is paramount. With so many cloud-based offerings available that can help speed up everything from development to deployment to runtime operations, it's no wonder that those who are serious about mobile development are leaning hard on the various PaaS, SaaS and IaaS offerings available on the market today.
Head First Mobile Web by Lyza Danger Gardner
Professional Android 4 Application Development by Reto Meier
Mobile Development with C#: iOS, Android, and Windows Phone by Greg Shackles
What's New in Java 7? by Madhusudhan Konda
The Well-Grounded Java Developer By Martijn Verburg