Tag Archives: how to choose a subcontractor for app development

Outsourcing your App Development: Getting the Best Price

In my prior post, I discussed how to create a business plan for developing a mobile app. Once your business plan is complete and you have determined that your mobile app idea is viable, it is time to get bids from subcontractors for developing your app. But how do you get the best price possible?  Is cheapest always the best?  All of these questions will be answered in this blog.

The price of anything is the amount of life you exchange for it. — Henry David Thoreau

Getting Legal Protection

Before soliciting bids for outsourcing your mobile app development, be sure to have the right legal documents in place. Your idea is valuable, so you want to protect it. First, require bidders to first sign a Non Disclosure Agreement (NDA).  The NDA ensures that the bidder will not go off and develop your idea and sell it as their own. Here is an NDA you might consider using (click on an image to access the document):

NDA (MS Word)

NDA (MS Word)



Once you choose a subcontractor, have them sign an Independent Contractor Agreement (ICA). This ensures that your intellectual property is protected and that they are acting solely as an independent contractor and not an employee.  Here is an ICA you might consider using (click on an image to access the document):

ICA (MS Word)

ICA (MS Word)



How to Get the Best Price from Your SubContractor

Imagine building a house without architectural plans. You might tell your builder “I want a small house with 3 bedrooms, 2 bathrooms, and a nice kitchen”.  That type of house might cost $100,000 or it could cost $1,000,000. It all depends on the finishes, the builder you choose, etc. A $100,000 house might have carpeting, no fireplace, laminate counters instead of granite, a single sink in your bathroom instead of dual sinks, and may be built as a rectangle, without any interesting exterior features.

A $1,000,000 home would most likely include hardwood floors, granite countertops in the kitchen and bathrooms, high-end appliances, indoor and outdoor fireplaces, incredible landscaping, a theater room, a home audio system that runs throughout the house, a pool and deck in the backyard, and a 2 story plan with a turret and other interesting design elements. To get a more accurate cost, you must be very specific in what you want so that few assumptions are made.

Software is very similar, you need a plan (called a Specification) that details what the app  might look like, all of the screens associated with the app, and what you expect the app to do on each screen. Without a specification, a developer cannot reliably provide you with an estimated cost because they cannot nail down exactly how much time it will take to complete it.

In fact, without a solid specification, few developers will provide you with a fixed price bid — they will want you to pay them by the hour — and this is not good for you because you are never sure of how much the app will cost to build. And they are correct — without a specification, you could change your mind a thousand times as you begin development which adds a lot of rework and unnecessary costs.

So how do you build a specification? First, create a prototype of your app. You don’t need programming skills to do this, simply purchase a prototyping tool (like  Balsamiq Mockups) and create your screens.  Here is how it might look in Balsamiq:

Balsamiq Mockup

Balsamiq Mockup

Once your prototype is created, write a specifications document that shows each screen and the details of how each  screen works. The specifications document will also serve as your Request For Proposal (RFP) document that you send to subcontractors to get bids for the work.  With a good specifications document, you can insist on a FIXED PRICE bid for the project so that you are not billed by the hour — this saves you from cost overruns. Here is a example of an RFP / Specifications document.  This document shows the first couple of screens developed for aMemoryJog to give you an idea of how to create a good RFP (click on the images below to access the document):

RFP (MS Word)

RFP (MS Word)



Selecting a SubContractor

You can find a subcontractor from oDesk (http://www.oDesk.com). oDesk is free to use but once you choose a subcontractor, they will charge you a 10% fee.

Once you create a free oDesk account, you can post your job with a budget amount. The budget amount is the amount you are willing to spend. You might find that some bids come under and others go over your budget, but the subcontractors use the proposed budget as a guideline to decide if they wish to bid on the work.  Here is how I posted my job for aMemoryJog:

We currently offer a web based application called aMemoryJog (http://www.aMemoryJog.com) and would like to subcontract the development of an iPhone edition using Xamarin, C#, SQL Lite and SQLCipher.

The work is for creating 2 iPhone apps, a free edition and a paid edition. We have created a very detailed specification complete with a database design, wireframes, and details of how each screen is to work.  

Part of the work is to also implement a web services component using Visual Studio 2012 (C#) that allows syncing data between the iPhone app and our web edition.

Knowing the complexity of what I was asking to have built, I put an initial budget amount of $5,000 (fixed price). Once I submitted that, I was able to search oDesk for qualified subcontractors and ask them to consider bidding.  I always try to hire a freelance programmer rather than an agency because an agency has overhead costs that a freelancer does not have, so a freelancer is normally less expensive.

Once I submitted my job posting, I began getting emails from subcontractors saying that they were interested. I would reply to them with the NDA document and ask them to sign it before sending them the detailed RFP.  Once I received their signed NDA, I sent them the RFP and asked for a fixed price bid.

After a few days, I began getting bids. Bids ranged from $4,000 to $17,000 — but most averaged $6,000.  I did not choose the cheapest subcontractor; I based my decision on how thorough the response was and how well they answered my questions. The subcontractor I chose provided me with a fixed price estimate, a detailed response on how he would develop the app, the milestone dates associated with the development, and provided me with examples of his past work and references I could contact to get comfortable with his work.

Putting it all Together

Here are the steps to getting the best price for your app development project:

  • Create a prototype of your app
  • Develop a specifications document for app
  • Put together an NDA document that must be signed before sending the RFP to the subcontractor
  • Submit your app job posting to oDesk but require that they sign the NDA before receiving the RFP and ask for a fixed price bid
  • Once bids come in, evaluate the bids based on thoroughness of the response, ask for milestone dates, samples of their work and references
  • Make s short list of bidders, review their work samples and contact their references
  • Choose a subcontractor but require that they sign an Independent Contractor Agreement (ICA) before starting work

Related article: How to Build a Product Website for your App


Now we know how to get the best price from a subcontractor for our app development project. My next blog will be out in a couple of weeks — I will discuss what marketing tasks you can be doing as your app is being developed by your subcontractor.

Shameless Plug

The app I am creating is slated for production in the App Store around July or August 2014. However, the web edition is already available at http://www.aMemoryJog.com. Once the app is done, it will seamlessly sync with the web version.

Download a free trial and check it out!

aMemoryJog – Web and iPhone editions

Also, if you like this blog, please share it with others to increase our following. Our twitter account is @2HourAppreneur and be sure to like my Facebook page at http://www.Facebook.com/2HourAppreneur.

Thanks for following the blog!