When the end goal is creating the highest quality of user experience possible on a mobile device, there's no debating the fact that native application development is the only way to go. But with at least four major platforms to target in a Bring-your-own-device world, each with its own platform-specific development kits and APIs, how can an organization effectively deliver mobile applications that are specifically targeted to each of the mobile platforms without completely blowing the entire IT budget?
The wrong approach to mobile development
The wrong thing to do is to go all in and dedicate a team for each platform, but sadly, that's exactly what many organizations are doing. The end result is an inevitable duplication of efforts as separate teams independently develop essentially the same services and features as everything gets developed in parallel.
"Many organizations approach mobile by setting up independent teams," said Giles Alexander, lead developer and consultant who specializes in mobile application architecture and strategy at ThoughtWorks. "You'll have an Android team outsourced, your iOS team in-house, and then you'll contract to an entirely external team for BlackBerry or Windows Phone development. These teams are basically delivering the same features, but they're doing it entirely in parallel."
Some people may prefer to be Android developers as opposed to iOS developers, so you may end up with some slight division at the top, hence the Y.
Giles Alexander, lead developer at ThoughtWorks
Anyone who has worked in the IT field knows that there's always a strong probability that any one application development project will fail. With four projects going on at the same time, your chances of any one project failing quadruples. Furthermore, with four different projects supporting four different platforms, fixing bugs and enhancing features become increasingly untenable as time goes on. Fortunately, though, there is a better approach, and more organizations are adopting it.
A new trend in mobile development
In what is becoming a successful trend, forward-thinking organizations are moving away from a fragmented-by-platform mobile development process and are instead adopting a feature-based approach that stresses commonality. Divergences and differences between platforms only end up coming into play as UI development issues come into focus.
This evolving approach is known as the Y-shaped development method because the development stream looks more like the letter Y than it does a bunch of independent columns or silos that stand alone independently. "The Y-shaped delivery method aligns your teams along features rather than along platforms," said ThoughtWorks' Giles Alexander. "You don't restrict your teams to just working on the mobile front end, but you also allow the team to be aligned across a feature throughout the organization."
The end result is that one team efficiently develops a feature from end to end rather than four teams duplicating efforts. It certainly sounds more like common sense than it does a revolutionary idea, but sometimes common sense gets pushed aside in the frenzy of rushing mobile products to market.
Getting started with the Y methodology
Given the sensibility of this methodology, how does an organization that's interested in getting its feet wet in the mobile development space adopt this particular approach?
"You're probably going to have to pick some boundary at the back end to start," said Giles. "Say you have a set of services that expose the data that is critical to your product, and you want to deliver a new mobile feature around this. You should be able to put together a team that can work on those services and work on exposing those services in a way that is suitable for mobile. You then have that same team work on the UI and the actual delivery of those features into your Android, iOS, Blackberry or mobile web -- whichever you feel is most suitable to support."
Of course, you can't completely ignore the reality that there are unique differences between the three or four most popular mobile platforms on the market. Furthermore, it's inevitable that certain members of a given team will have skills that align more strongly with either Android, iOS or Windows Phone. Any good development strategy needs to embrace this reality. This is where the linear-based, feature-driven development approach branches out a bit, giving us the idea of a Y-based development methodology.
"There may be some division at the front end of the team. Some people may prefer to be Android developers as opposed to iOS developers, so you may end up with some slight division at the top -- hence the Y," explains Giles.
In the end, taking this slightly newer approach to mobile application development is going to save time and money and make feature enhancements and long-term maintenance of the applications more manageable. Organizations should start thinking about breaking down the silos and taking a more streamlined, feature-based approach to lean mobile development. "It's about focusing on features, delivering features and learning from that feature delivery."
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
Learn how MBaaS is changing mobile app dev