Is mobile app outsourcing, different?
Yes, it is.
For those who understand outsourcing well, you must now be wondering what could be so different about developing a mobile app than the 100 other web and enterprise apps they have built through outsourcing firms.
In a word (or two) – Form Factor.
When you are launching an app, you are asking the user for the privilege of his/her primary and tiny screen real estate. What follows is harsh usage and a sense of heightened expectation that the app delivers (as I have paid with my time and sometimes money).[tweetherder] This often means it has to be eminently usable, with the constraints of a tiny screen.[/tweetherder]
More words – Performance. Battery + Memory
The more sophisticated user would also want to be assured that his/her system resources are not drained by badly optimized app. He/she will also expect that when the app crashes it does so, gracefully. [tweetherder]The way you load bytes heavy content (like image) is different from how you do it in a web app.[/tweetherder]
And more words – Deployment
Your app, after it is launched is in the mobile device that you have very less control over. So you can not incrementally ‘push’ changes. The user ‘pulls’ updates, if they still trust or use your app.
According the report from Localytics, the percentage of apps that are used just once ever, is increasing. So your app, may never get a second chance, leave alone a chance to push updates, which needs for more engagement from the user.
So the bottom line is, when you outsource mobile app development, you need to be sure that your dev shop
1. Has engineers who have successfully launched apps in a marketplace that is of your choice. It does not matter if they are recent converts to mobile (or) are good generalists. They need to know by themselves or have someone in their dev shop, among whom they can cover the following:
a) Information design for mobile
b) Tools knowledge – Performance tuning, tracking, crash analytics, mobile SEO
c) Marketplace policies (and a big bonus if they know marketplace specific marketing techniques) – Often the latter is a specialist job not done by dev shops
It would be stating the obvious, that they know the respective frameworks and underlying languages without which the rest of the above have no significance.
So why is it important to understand these unique facets involved in building an app?
1. Most outsourced app development shops were not born mobile. They are figuring out. While in itself is not bad, you need to know whether their level of maturity suits your app expectations. How? Shop around and ask questions!
2. It’s one thing to be able to code. It’s totally another to be disciplined about performance and testing. Again, here too maturity levels differ. While there is no need to over-engineer your app for scale and performance, you need to know that your team can scale (or not) on performance, security and incremental(-ly higher-order know-how updates). Being mostly pull, you often don’t have a second chance to improve any of these key aspects, once the app is out of the gate.
3. We are moving into what is being referred as the API economy – One where your app is a node in a network where data flows through. Your developers should go beyond server side coding to delivering ‘X-as-APIs” or consuming other third party APIs for your app. Find out who is the API junkie of your team.
I have not touched upon the visual design aspect of mobile app development. A dev shop by definition is not a design shop. So if they don’t do visual designs, there is no reason to exclude. The frame of reference here is not whether a dev shop can also design.
In summary, when you outsource mobile app development within the US / Europe or the places like India look for teams that can code, make appropriate decisions on performance and security, evolve your API strategy & cut down on your investment where possible with external APIs and be conversant with tools that help track the vital stats under the hood for your app.
Do you have any other suggestions from your experience or do you have better approaches to app development?