Finding an app developer can be a daunting task to say the least. Some may luck out and find a programmer right away, and others may run through many programmers before they find some luck. We’ve had the joyful experience of working with several developers in our journey including some good and some bad. In this post I want to highlight a few pointers that I wish I had known before I started down this road.
You have really two options when you plan to make an app. You can A) code it yourself, or B) hire a qualified developer. As you know, I have no technical background and can’t even comprehend how to write a simple line of code. I simply do not have the time or drive to learn the fundamentals of programming.
This leaves me with no choice but to hire someone to help make my vision come to life. The question now remains: should I hire local talent or look overseas? Personally, I’ve outsourced lots of things overseas in addition to app development and have always had good success once I found the right person for the job.
There might be some negative stigma about not supporting the local economy and what not but at the end of the day, a business operates on maximizing efficiency and an easy fix for that is cutting expenses. Developers overseas are often more than qualified for the job and cost upwards of 2-3x cheaper than a local USA equivalent. Obviously there are trade offs and obstacles you must face and we’ll cover that later.
Where to hire an app developer
There are quite a few websites available to put up a job listing for a specific type of programmer. Below are several trusted websites where you can look for developers hungry for a job or side work.
In typical cut to the chase style, I think it is best to start with oDesk. This is going to give you the most qualified candidates as well as the ability to view their past work. It should also be noted that most programmers do not program in multiple languages. That is, if you find an android developer, he/she will likely not know how to program in iOS. These are two different worlds when it comes to programming.
These sites are used by millions of employers and contractors worldwide so you should not fear getting scammed. It’s up to you to do your due diligence but sites like oDesk offer transparency where you can watch your workers screen at different time intervals to see if they are working hard or hardly working.
Also all payments and transactions are secured and done through each respective site and can be funded via Paypal, credit card, or bank withdrawal.
How to post an ad that weeds out spam
Posting an ad is relatively straightforward but you will soon find out that you will be bombarded with tons of unqualified candidates who reply with generic or templated responses. Most of these responses will be canned responses that are all pre-written, in which job seekers send out in hopes to obtain a job. In other words, spam. Again, this is why it is so important to be specific in your description.
Be as overly specific in your description as you possibly can without giving the idea away. I cannot stress this enough, more detail is going to save you a lot of headaches in the long run.
When posting on oDesk, it allows you to set suggested requirements to help narrow down the field a little bit. Here’s what I usually put in and why:
Freelancer Type – It’s up to you but I’ve personally worked with both an independent and agency. I prefer an independent because that allows me to work closely with them, and only them, instead of multiple people where things can get even more lost in translation.
Minimum Feedback Score – They must have at least 4.5 or higher. Also look at their latest job reviews and ratings. Anyone below 4 stars instantly gets deleted.
Hours Billed – Personally I want to work with someone who has worked over 100 solid hours on oDesk. Usually that’s a sign they’re legit and take their job seriously. You could risk working with someone who has no hours or feedback and get a lower rate but the risk is on you.
Location – Your mileage may vary but usually you will see a lot of Europeans and South/East Asians apply for the job. From our experience, Europeans, especially Russians and Ukrainians are very good but lack English skills. We’re working with developers in Egypt and Thailand/Philippines now with great success.
English – Most people will lie anyways but you’ll really see their skill level during the interview process.
Tips to finding the best developer
When posting an ad, you have the option of hiring someone hourly or paying a flat rate. I suggest you to post an add with a temporary hourly rate of $20/hr or so, that way you can get people to apply and then further negotiate pricing later.
Always ask for people to provide links to live apps in the app store for you to check out. Bonus points if the app is somewhat related to your app idea thus proving they are the man for the job. No portfolio means no chance. In fact, we’ve had several developers actually create us sample apps based on the job description without us asking.
A very fast and easy way to weed out spam is to ask a question within your description and require candidates to answer it when applying. It doesn’t even have to be related to the job. The point here is to ensure they’ve actually read the description instead of mass applying. In the past I’ve asked random questions like “Who was the Dallas Cowboys playing last Sunday?”.
Once you have a few candidates in mind, perform a Skype interview with them. Why text and not voice? Text because when you leave the applicant a message you will not only see how proficient their writing is, but also their availability. If you need a last minute change to an application, knowing that your programmer is available on Skype regularly can be a lifesaver. Our developer regularly stays up until 6AM to work with us due to time zone differences. You will often see that English is not their strong point but usually is enough to get by. Our first developer was very talented but could not speak English which made the whole ordeal very frustrating.
The last and probably best tip I can give you is to post the same or a similar ad at least 3 times. There should be absolutely no rush in hiring a developer. Think of it like a marriage. Once you hire someone, you’re stuck with them for many months. It’s hard for another developer to come into the picture and pick up where the other developer left off in the event you need to make the switch.
You’ve found a developer, now what?
Remember how specific you were in your initial description? It is about to get 10X worse when it comes to mocking up drafts for the programmer to develop. Initially, I thought if I gave the programmer a general idea of what I wanted, he would set out and program it just as he saw fit. This is not the case, and frankly, it should not be the case.
EVERY detail from color, size, position, function, it all must be outlined. I have also found it helpful to make a mockup in Photoshop, Microsoft Word, whatever you can use to help the developer get an idea of how the app should look and feel. Simply telling the developer, not showing, is surely going to lead to longer development time, and likely higher cost.
For our first app, we did a mockup in Photoshop along with individual screens based on user flow to showcase what would happen if a user clicked X button vs Y button and so on. It definitely helped paint a clearer picture. What also helps significantly is if you send a few rival apps live in the store that they can download and play with.
Also keep in mind that many developers are not designers. This is the same analogy as many web designers are not SEO experts. Don’t expect your app to look amazing out of the box. If the developer can design then that is definitely an added bonus. If not, you may have to hire a separate designer and that in itself will be another challenge. Usually an agency will have all the people in place for what you need but independent contractors might not.
How much will this app cost me?
This is the golden question. Unfortunately, there is never a concrete answer. Let me give you an example, because I have already split-tested this to find out for myself. A simple app, that does a few features (my favorite is the flashlight app) may be quoted by one programmer at $50 USD while another at $800. This is a huge disparity. Surely, you will be sacrificing app quality by choosing the programmer who quoted you at $800 rather than $50. Unfortunately, again, this is not the case. In this particular case the $50 programmer was far superior to the $800 programmer.
Some might look at this as a costly mistake, but actually, this was huge success. That $50 programmer is now my full-time programmer. Well, not officially, but as soon as he finishes one task, I put him on another. This prevents him from going out and looking for more work. Also, over the course of 6 months or so that he’s been programming, we have developed quite a trusting relationship. I no longer negotiate prices with him, if he tells me a task will be $500, I pay it. This won’t always be the case for everyone, and I have been through many developers to find that one. My best advice is when you find a good programmer to hold on to them.
So as you can see price is a very subjective matter that will vary from task to task and programmer to programmer. Be patient and find someone you feel comfortable working with. There will be hurdles along the way where a programmer does or does not do something they were supposed to, it happens to us all.
It is also very important that you treat your developers with kindness and great care. Along with every payment I throw in an additional bonus since they work extremely hard and long hours while balancing family life and even a fulltime job. I also do not micromanage. If they need anything they are always able to email me or Skype me with questions.
Don’t forget to get quotes from multiple people and play the game of giving legit counter offers against each other. In our first app for iOS we had the choice to go with a slightly more expensive developer with better English but instead opted to go with a cheaper developer with worse English. In the end it worked out but sometimes I do wish I had chosen the other developer. Our 6 month project should of taken 3 months at most and a lot of that had to do with the communication issues.
Lastly, remember how I mentioned earlier to place an hourly rate instead of a flat rate? By listing an hourly rate you will generate more qualified candidates. However, once you start talking to developers, you always want to negotiate a flat rate where you can pay in intervals. Choosing an hourly rate can backfire, as developers will often times drag out the development process to earn more money.
Choosing a native language programmer vs. cross platform programmer
This is something that I have considered as of late: using a native iOS or Android programmer versus using a programmer who programs on a cross platform system (Corona, Titanium, etc). From the best that I can understand, using these cross platforms do work, however, the integrity of the actual code may not be as solid.
The other thought I had was taking an existing Android app and having it “spun” through one of these cross platform programs to create an iOS app. Unfortunately, this is not possible as far as I know. Of course, you can reprogram the app via a different developer.
Another thing I’ve been hearing a lot about lately are HTML5 tools like Phone Gap which creates apps based on the HTML5 web framework for both Android and iOS. In fact, games like 2048 were built on HTML5. It sounds promising but I’ve heard of lots of limitations going down this route.
By following this process, we’ve been able to find a few very talented app developers who we work closely with and gladly send business their way. Finding an app developer is one area where you don’t want to cut corners. Take your time, make sure you get a good feeling after speaking with them, and reward them accordingly. Here’s a quick recap of what you should do:
- Do not rush the process and post your job listing at least 3 times
- Ask for live examples and/or references
- Dismiss anyone with zero feedback or ratings below 4/5 instantly
- Always negotiate on pricing and ask for flat rate
- Conduct a thorough interview on Skype to test their English
- Treat your developer good and reward them well
- Learn to let go and let the developer do what they do best
Hope this helps!