ios app development agency hong kong

Why would you outsource? A success case from Apple’s Best Music App of 2013.

One million app downloads in the first week of release. Three million downloads over the next three months, and a Best of 2013 Music App award to top things off. This was Jamn Multi-tool.

Jamn is the brainchild of Johnny Quattro and the result of our technical labour. Quattro wanted to develop a mobile app to help musicians and songwriters learn and identify chords in a song. Starting with a paper prototype Quattro brought to us, we spent the next nine months together to bring his idea to life.

Whether you’re an early-stage startup or you’re an established company, sometimes outsourcing just makes more sense than hiring a development team from scratch.

Below is Quattro’s example of how to build a great product through collaboration, transparency and trust. We’ve also included an overview of things to look for when outsourcing to an outside agency/developer.

Decide on your product’s core value before your features

For dream apps, we can brainstorm features all day. For actual product development, focusing on features that deliver an app’s core value is most important. A product’s core value is the solution it offers to a problem that would convert a person into a user.

As a musician, Quattro was already close to his users. Having a music wheel to quickly see keys in a chord helped him add his own spin to cover songs. When he drew up a paper prototype and showed other musicians, they instantly got it. Finding users that instantly “got it” validated the product’s core value, but now he had to prove that a functioning product was someone people would download and pay for. Every iteration (new version) of a product, from paper drawing, to mockup, to prototype app, has to be validated again by users.

Together with Quattro, we then developed a list of features for the first iteration of the MVP that delivered to his product’s core value: enabling musicians and songwriters to teach themselves how to play instruments on their iPhone.

We narrowed down to three core features for Jamn Multi-tool’s first iteration:

  • Providing a dynamic Circle of fifths wheel interface to help musicians with music theory for song writing
  • Play chord and scale sounds so musicians can learn with examples
  • Show guitar finger positions for each cord so musicians can learn instantaneously

Choose core features for one target user group first

Screenshot of Jamn's MVP
Jamn Multi-tool MVP

Once we agreed on the features, we could go into designing. We first created a wireframe to confirm the user experience (UX), and then moved on to user interface (UI) mockups. After we agreed on the designs, we could begin development.

At first, Quattro wanted us to build a product supporting multiple instruments. From a business perspective, it makes sense to offer more options for users. However, every new instrument requires building an additional interface (such as piano keys instead of guitar cord positions) and uploading an additional library of sounds.

Developing all requested features at once is risky for two reasons: features take time (therefore money) to develop, when there isn’t a proven market demand yet. Therefore, we suggested first building a minimum-viable-product(MVP) for only the guitar to verify that musicians wanted to learn music this way.

Build user-requested value-add features after launch

During our 9-month development period for Quattro, we had over twenty iterations. Our project manager would schedule Skype meetings weekly throughout the design and development phases so that we could implement changes quickly.

After the app’s initial launch for just the guitar, we began adding features that were convenient for users, such as introducing scales for types of music such as jazz, blues, Japanese, and pentatonic. We introduced features based on surveys and user interviews conducted by Quattro. We would prioritize features together for each development cycle.

Quattro’s feedback from real users was helpful for improving the app in two main ways:

  • helped ensure a snug product-market fit come each release day, and
  • made sure our dev team focused on features and modifications that were validated by user data and requested by Quattro

We hand over our code and make it easy for our clients to get back in touch

After Jamn Multi-Tool was finished with feature additions, we handed all the source code and ownership to Quattro. He could hand it over to a new development team if he wished. In Quattro’s case, he came back to do further modifications and new products like Jamn PLAYER.

Here is a list of modifications we added to Jamn Multi-tool over the years:

  • A Guitar tuner with an algorithm tailored for iOS devices
  • Scale of different styles is offered (jazz, blues, Japanese, and pentatonic)
  • Illustration of how the chords are played on different instruments
  • UX features such as sliding between instruments
  • UI upgrades
Today's Jamn with an interface illustrating how to play a chord
Today’s Jamn with an interface illustrating how to play a chord

Side note: As there was no Swift at the time, the frontend of the app was developed with Objective-C. The backend was developed with Python. The majority of development was local, only switching to a server in the later stages of development.

What to look for when outsourcing app development

Development team can explain strategic and technical decisions

It is the design and development team’s job to not only understand a client’s vision and product, but to also help them consider what app features add value for users.

Constructive push-back is crucial. A design and development team should be able to explain why a feature was excluded from the wireframe or articulate why a backend can not securely support a requested frontend feature. In Oursky, our project managers (PMs) will discuss features with clients and confirm projects before design or development begin. We also recommend looking for PMs who can discuss the benefits and drawbacks of using various technologies, such as hybrid vs native app approaches for mobile performance.

Iterative development with extensible apps

From design through to public release, the development team should proceed with an iterative development process. Oursky creates multiple builds that we upload to TestFlight or Hockeyapp for clients to check out and create bug reports. Apps that are well architected should be extensible so that features can be added later without breaking the existing app.

Ability to consider UI/UX and technical implications

If you are looking for a design, find a designer who can consider technical factors behind a visually appealing UI. Vice versa, look for a developer who can consider a product as a whole user experience rather than simply write code for every requested feature. Our company’s design and development teams work with each other in mind. However, they do not work directly with a client. They work with our PMs, who liaise with clients and help manage requests.

Clear reports on latest builds

If a development team gives you a fixed long-term timeline, ask instead for a breakdown of how long it will take them to build each feature (login, search, cataloging, etc.) in estimated man-days. At Oursky, no feature should take over two days. Any feature that does should be broken down into smaller tasks so project estimations remain concrete.

When receiving project updates, a client may expect to receive information such as the list of finished items, days spent on the current version, a testable build link, the QA status or scheduled test, and a list of known issues (bug reports).

Clean code handed over upon project completion

Finally, ask a team what they will hand over upon project completion. Will they be handing you the complete repository? At Oursky, we hand over the ownership of the repository to our clients so they can manage or modify as they like. The code also comes with clear git commit histories for future teams to take up. Of course, clients can come back to us for maintenance, version upgrades, or new products.


The key to an award-winning product isn’t simply insourcing or outsourcing. It’s having a team of passionate and experienced designers, developers and project managers who want to create the greatest product possible.

Have your own successful case of outsourced development? What did it look like? We’d love to know in the comments below.

If you found this piece helpful, give us some claps or follow the Oursky publicationfor more startup/entrepreneurship/project management/app dev/design hacks!👏

😻 Oursky is a web and mobile app design and development agency with offices in Hong Kong and Taiwan. We’re all about helping brands and entrepreneurs make their ideas happen. Get in touch if you’re looking for a partner to help build your next digital product.

If you find this post interesting, subscribe below to get notified about our future posts!


About The Author

Sam Elsley

Sam attends York University in Toronto, Canada– where he currently lives, and is a soon-to-be graduate in field of Communications. When he isn't scouring the depths of the web for all things technology, he's most likely reading the most recent Murakami novel, or out exploring the many all-you-can-eat sushi buffets his city has to offer.

Leave a Reply

%d bloggers like this: