Monday 3 December 2012

How to outsource mobile development


So you've decided to outsource your mobile development independently or after reading our blog on Pros and Cons of outsourcing mobile development.

Start by defining the scope and objectives of your project
The detail of your scope will depend on your skills, available time and resources and development partner. The scope can range from a one page description of the concept to 100 page specifications including use cases, wireframes, mockups and functional and non-functional requirements. It doesn't matter who does the work (you or your development partner) and it doesn't have to be super detailed but these are items you should always have:
  • Objectives / Success factors
  • Target devices (e.g. iPhone 4 and 5 and iOS5+), Smartphones only or include tablets?
  • Core use cases
  • Wireframes
  • Design Mock-ups
  • Non-functional requirements incl e.g. the number of users, expected response times, etc
In some cases you may also want to create a prototype of the app or site for a smartphone to be able to test the concept directly with users.
The level of detail will also depend a lot on your development partner. Offshoring companies usually require extremely detailed requirements whereas a mobile developer that knows the culture of your country and understands the service you're developing might prefer less detail as this allows them to help you shape the service based on their knowledge.

So how do you chose a development partner
We've previously written an extensive blog about this so rather than repeating ourselves read "What is the cost of developing a mobile app or site?"
Since we wrote this article we've noted a couple of things:
  • Mobile is becoming more and more business critical to most companies and therefore it's even more important to chose a long term partner.
  • Many businesses want the flexibility of bringing the development in-house which means higher demands on the developer in terms of system design and code quality and that businesses want to avoid proprietary platforms that tie them in.
  • The number of offshoring developers and small developers have continued to rapidly increase
  • HTML5 adoption continues to grow but faced a backlash when Facebook announced they are switching focus to native apps
  • With the increase in HTML5 adoption almost every web agency now believes they can do mobile development without realising the differences in technology, fragmentation and user experience
Agree on the best technology together with your development partner
Mobile website in XHTML, HTML5 web app, Native apps or hybrid apps? Backend requirements such as middleware, content management, eCommerce, customer databases, logging and reporting and more. There is no right or wrong when it comes to choosing the technology for your project. Every project benefits from an open discussion about the technology.
We've previously written about how every app needs a mobile website and HTML5 vs native. Forget about the technology as such and focus on delivering a solution that is available where you're customers are with a user experience that will make them come back. Discuss the pros and cons of different solutions with your development partner and hopefully you will agree.

How to do agile development with your outsourcing partner?
You will never know exactly what you need until you start developing your mobile solution and see the first results. Over time you will realise that some wireframes were wrong, use cases need to be updated and that the mockups are no longer aligned with the final service. Part of your success is therefore dependent on flexibility to changes throughout the project referred to as agility.
We have spent the past 6 years perfecting how to work with agile in fixed price outsourcing projects. See our previous article on this subject.

What to think about during the project?
You've defined the requirements for the project, chosen a mobile partner and agreed to a certain amount of agility in the project. So time for me to relax and wait for the final delivery? No. Most mobile services will never have a final delivery. Popular services such as Facebook, Foursquare, Youtube, Instagram, etc do updates of their service every month to enhance it, fix bugs and as response to user feedback.
Start testing of the service as soon as possible even if the design is not completed, all features have not been implemented or the developers don't want to share it with you yet.
Be prepared to launch a service that is great but not perfect from day one. Usually it's more important that you get it out there, start listening to the user feedback then that it's perfect. If your project is delayed try to launch with less features instead of delaying the launch.

Fragmentation, fragmentation, fragmentation...
Depending on the platform you're developing for there will be more or less fragmentation but be prepared. A mobile web user interface that works great on the iPhone 5 may be slow and unusable on the iPhone 4 and the differences are even more obvious on Android devices ranging from slow processing power on low resolution screens to super high specification phones. You will never know how you're mobile website or app performs until you test it on each of the target devices. and once you've done this plan for at least 2 weeks of additional optimisation and development for Android whereas iOS or Windows Phone could be just a few days. In some cases it could take a month. Make sure that your development partner has planned for this as part of the QA and Acceptance process.
That brings us nicely on to the next subject which is quality assurance and acceptance.

Quality Assurance (QA) and Acceptance
There will inevitably be some disputes during the acceptance of the project so make sure you've agreed on acceptance criteria before you start development. Ideally the acceptance criteria are described as use cases which are also used for development and QA. A couple of tips before you start final acceptance:
  • Make sure you get the complete test report for QA from the development partner. It's their responsibility and not yours to find all obvious bugs.
  • Dedicate sufficient time for the acceptance testing and plan for 3 rounds as there will be some feedback / mistakes even if you've got great developers
  • Don't just e-mail your feedback, make sure you have a call to go through your feedback
Appstore distribution
Finally, you've approved the app and it's time to upload it to the appstores. There are a couple of things to consider:
  • Start early to prepare to set up appstore accounts and get certificates
  • You cannot change the certificates later so make sure you get them right from the beginning. The certificates should be owned by your business and not the developer.
  • Plan for at least 10 working days for approval of the iPhone app
  • Consider distributing your Android app outside of Google Play and your iOS app virtually (links) outside of iTunes using appstores such as Getjar, Amazon, Samsung Apps, Mobango, etc.
Is that all?
No. This is just a very short overview. We've spent the past 7 years developing mobile services and we are still learning every day. Feel free to contact us for more information through our website at http://www.goldengekko.com