When you are looking for a developer you should keep the following in mind.
- Communications skills
First off, the developer should be experienced. Experienced developers have already made a bunch of mistakes and hopefully learned from them. The inexperienced developer will be learning on your dime. Experience will help them make the right tradeoffs for your situation.
While the new developer may be a quick learner and may be willing and eager to do the job at what seems like a good rate, you will pay for the inexperience in the long run. The odds of the project running way behind schedule and having hard to correct costly issues after release will be much higher. You may find that your project costs you more; especially if you have to then bring in the experienced developer to fix the issues.
How can I tell if the developer is any good?
Don’t believe everything you see on a resume when you are gauging a developer’s experience. Sometimes the fact that someone can simply spell C# qualifies that for being on their resume. So if you can’t believe a resume, how can you determine their experience? The bottom line is that it is almost impossible for a non-developer to tell much of the time. Your best bet is to find a trusted techie to do this for you.
To increase your odds of finding someone with experience ask to see projects they have done in the past. Prior experience on similar projects and technology are the best indicator for success. While it may be difficult, you must verify their participation in the project as well as their role. Ask them questions related to their role. Who knows, they may have been the designer, and know nothing about the back end development that you are looking for.
Ask them open ended questions like why they chose a certain architecture, language, or framework for this project. Then listen for their answer to see if they sound like they know what they are talking about. They may be spouting some BS, but at least you will be able to weed out those that don’t have an answer at all and are totally clueless. You can ask the question without knowing the answer.
When looking at their resume or LinkedIn profile, get a feel for how long they have been doing development. Also look at the type of development they have been doing. While you may be OK hiring someone with little experience for a $100 WordPress plugin project, I would recommend looking for someone with at least 5 years’ experience with the technology being used for your project if it is something larger than that..
After you have done the above, I would highly recommend that you find a technical person to further screen the candidate for the necessary technology.
In addition to having the developer show you examples of what they have done, have them give you references. Connect with them on LinkedIn and see if they have testimonials from satisfied clients. You might also note if they have testimonials from co-workers who think highly of their abilities.
Check for communications skills
Communications is probably the single most common reason for failure of larger projects. You need to be sure that you will feel comfortable talking with this person, and that they can convey the technical issues to you in a way that you understand. If every time you talk to the developer your eyes glaze over because you have no clue what he is saying, it is time to find someone else.
If you are outsourcing your project to another country, you need to work extra hard on the communications part. While the costs may be lower depending on the country, they won’t be as low as you think when you factor in the extra time and effort you spend on the communications and project management.
I have outsourced projects to lower cost countries in the past and have felt like I was being ripped off. The hourly rate was ¼ that for a local developer. However, it took 8 times as long as it would have taken me to do it myself. I had no idea whether or not the time they were spending on the project was legitimate.
While part of my team is local, I have developed an effective process for hiring and running successful projects with developers from overseas. However, if you are not technical, I would avoid going this route as you will have 2 things going against you. One is the language and cultural barriers and the second is the technical challenges. When a problem arises, you may have trouble discerning which is the issue.
Next, you should determine the developer’s availability. Will they be available when you need them? Do they have another job? Are they in a different time zone? When will you communicate with them? You should have answers to all of those questions, and keep this availability in mind. Otherwise you could lose 2 days over something as simple as “What color should this button be?” when your schedules conflict.
While you can use a part timer on a small project, do not ever hire one for a large project. I used to frequently hire moonlighters for projects. They would tell me that they can put in 20 to 30 hours outside of their day job. It was rare when one of them ever successfully put in 20 hours. Typically I got 10 to 15 hours out of them. It takes a long time to complete any decent sized project at this rate.
Don’t forget cost!
I put cost last for a reason. If you can’t find an experienced developer that you can communicate with and that is available to you, it doesn’t matter what the cost is. The project is destined for failure. You might as well save your money. If you can meet these requirements, then you can worry about whether it meets your budget.
While local developers may charge more than someone in India, they are also easier to check references on. If they are readily available and will meet with you, they also have to look you in the eye and tell you how the project is going.
I’m not suggesting that you can’t have a successful project working remote as even with our local projects, most of our communications is via Lync, Join.me, email, Visual Studio online, and phone. We have had many successful projects for clients not in our region, but we have to work extra hard to manage the relationship and gain the trust. If you find a developer that understands that concept, it can work.