One of the most frequent questions I get is: How do I find the right programmers? Most people think they can just throw up an ad on Craigslist and they’ll be smooth sailing. Unfortunately, that couldn’t be further from the truth, and finding good developers can be one of the hardest parts of this business. But like the old English proverb: a smooth sea never made a skilled mariner. There will be some unforeseen conditions along the way, but follow the advice below and soon enough you will navigate the app waters like an expert.
Experience: “Experience is one thing you can’t get for nothing.” – Oscar Wilde
The first thing you need to assess is the programmer’s level of experience. Sometimes when programmers are just starting out, they offer insanely cheap rates. Would you accept a ride from your 7-year-old nephew just because it was free? This isn’t a time to test drive beginners because you could get severely hurt.
One of the first things to ask when considering a new programmer is to take a look at the apps he has already created. A picture speaks a thousand words – and to me, an app speaks ten thousand. Download the programmer’s apps and assess the quality of the work. Does it look sharp and work flawlessly, or is it clumsy and complicated?
With sites like oDesk.com or freelancer.com, it’s much easier to assess developers because you can review detailed statistics on their previous work performance. You will see reviews and ratings from their previous clients, and can quickly determine if they’re somebody that you would want to work with and if they have the skills required for your project.
Communication: What we’ve got here is failure to communicate.
Make sure you work with programmers who share your native language. While the cost of development in other countries is cheaper, the language barrier can be a hassle. Speaking “programmer” is already difficult enough, add a language barrier to the mix and you might as be talking to Charlie Brown’s teacher. Does this mean you should never work with somebody from another country? Of course not, as long as you’re able to communicate with your developer effectively.
An often overlooked quality of a good programmer-developer relationship is responsiveness. The app world moves at ludacris speed and a delay of a week can make a difference of a few thousand dollars. If you’re dealing with a programmer that has too much on his plate, move on and find somebody who can make you a priority. This will save you from loads of stress and becoming a regular at the dive bar down the street.
Keep in mind that this also applies to you. While programmers may seem like a strange and confusing species, they are people just like you and me and can get frustrated if they feel their time is wasted. If they need something from you, do not become the bottleneck. Make sure to get it to them ASAP. Be as responsive and respectful of their time as you expect them to be of yours.
Important note for beginners: Make sure your first programmer is willing and able to explain things to you in non-technical caveman terms. As you gain experience in the field, you will need less hand-holding, but initially this is very important and cannot be underestimated. Also, programmers should not be your only source of education. Make sure your take the time to research this business because it will pay off down the road. You can do this by networking with other appreneurs, reading books, blogs, etc. Just like my first grade teacher, Mrs. Dowling, always said, “Never stop learning because the student of life will always be rewarded.”
Team: There is no “I,” but there is a “me”
Be a leader and always take responsibility to grow and manage your team properly. Outsourcing and delegating is great, but don’t forget, nobody cares more about your business than you do. With this being said, whenever possible try to work with a team of people rather than an individual. This has several advantages. Teams are often more reliable since they can pick up the slack if the programmer working on your project gets sick or is unavailable. The last thing you want is for everything to rest on one person’s shoulders.
Probably the biggest reason for using a team is that most of the time they will include graphics designers, project managers, etc. that have expertise you will need. You can have the best code in the world, but if your graphics look crappy, it’s like having a BMW engine in a Ford Pinto. Good luck selling that!
As you go from novice to app gangster there may be a special circumstance that warrants using a programmer that does not work with a team or have graphics capabilities. At that point it will be OK, but initially it’s great to keep everything under one roof.
Pricing: I like-a very much! How much?
You can expect a wide range of prices and services, since there are many companies and independent developers competing for your business all over the world. Projects can be billed at a fixed cost per project or at an hourly rate.
My advice would be to start with contractors who offer a flat fee, with a certain number of free refinements (also called iterations). I rarely develop apps on an hourly rate because I feel programmers don’t have an incentive to finish fast. I want them to feel the same sense of urgency that I do when it comes to developing apps, and being on an hourly rate has the exact opposite effect. Another advantage of fixed rated projects is that it’ll be much easier to stay within your budget if you know exactly how much the work will cost. The goal is to get as many apps to the market as possible as soon as possible without any unexpected costs slapping you in the face.
Typically, companies are going to charge more because they have much more overhead than individual programmers. Don’t worry, you can easily avoid overpaying by getting quotes from three different developers/companies for each one of your app ideas. Don’t be afraid to tell the programmer you prefer to work with that you have other quotes that are lower than his (only if this is true, of course). You could be pleasantly surprised and he might match it.
As for the payment, do not ever pay upfront in full. Ask the programmer to provide clear milestones and prices for your apps. Don’t release a payment until you’re fully confident that the requirements of the milestone in question are met. Sites like oDesk.com and freelancer.com mitigate the payment process by acting as an escrow service and providing a payment system that’s guided by milestones and deadlines.
Another thing to be cautious about when it comes to paying for apps are royalty agreements. It’s easy to think, “oh it’s not a big deal, I can give up 10% or 20%.” You might feel that you can save some money or that the programmer will do a better job if he is financially invested in your project, but these advantages are negligible to the potential disadvantages of a royalty deal. You are essentially making the programmer your business partner, which can make things messy.
Conflict of interest: Turf Wars
Sometimes programmers also create their own apps and publish them on the app store. Their hope is that they might strike gold, but in the mean time they try to make extra cash by developing apps for others. These will mostly be independent developers, but some development companies do this as well.
This can be a scary thought to digest, but this has become so prevalent in the industry that you probably won’t be able to avoid it. Simply make sure you’re protected as much as possible by showing the programmer your awareness of this and signing NDAs and possibly app-specific non-compete agreements. This is a common fear, but do not let it keep you from jumping into apps and making the money you deserve!
Check out the Resources page for development tools and websites.
What’s your experience with developers? What resources do use you to find and hire them?