I was on LinkedIn tonight catching up on some questions posted to an e-commerce group that I follow. A fellow member, Anthony from Sony Music Entertainment, posed this question to the group:
I've gone through several web developers but have not been satisfied with the results. What is the best way to find good web developers?
I've been using Guru, Elance, oDesk, and iFreelance to find web designers and developers, but haven't been impressed with the quality I've received. Most of the sites I've had built have not been very complex, but still have various bugs and design flaws. There have even been two instances where I've had to fire developers and start over with a new one. This is incredibly frustrating because I do a lot of research before choosing a developer, looking at past work and even contacting past clients.
I've found that most of the respondents on the freelance sites are outside the US (most are from India). Although I'm sure there are plenty of great developers in India and other countries, I prefer to work with a US-based company.
Now I have two separate ideas that will require a bit more complex web development. What is the best way to go about finding good web developers? (preferably ones that don't cost an arm and a leg)
Anthony’s woes are not unusual amongst people who use the freelance boards like those he’s been using. Anthony received some feedback from fellow members on the group, but nobody really addressed what I feel the root of the issue is – expectations. So here’s my response to Anthony (which, unfortunately, exceeded LinkedIn’s comment limit by over 1,000 characters, so that’s why I’m posting my response here to our blog rather than on LinkedIn).
To be candid, good developers usually do cost an arm and a leg because good developers are in demand with no shortage of people willing to hire them. The following advice may sound like tough medicine, but I'm writing with the desire to truly help you find a good development partner.
I suspect that one challenge you face is that you are not a software developer and therefore likely do not know how to differentiate between a "good" developer and a "bad" developer. The first step is to define exactly how YOU define a good developer.
I'll venture a guess that your assessment of good really is less dependent on hard development skills and more dependent on a subjective evaluation of whether the developer met your expectations. For example, if the end product and developer met your expectations for design appeal, website speed, timely responses to questions, etc., etc., then there's a good chance you'd label that person "good"; however, if you hated the website design, were unhappy with waiting three days for an email response and you thought your website was slow, then you’d call that person a bad developer.
None of those criteria may have anything to do with the actual quality of the developer but instead are simply a measure of how well he met your expectations.
So how do you find a developer who meets your expectations? The first step is to clearly define your expectations. Once you've done that, I then recommend you get to know someone with strong knowledge in the area of software development in which you intend to hire someone. Ask that person to assess your expectations and then help determine what skills a developer will need in order to meet those expectations. Make sure also that you can articulate your expectations…if you can’t then it is unreasonable to expect that even the most talented developer will be able to meet your expectations.
Armed with that information, perform actual interviews where you talk to the candidates. The interviews can be via Skype, telephone or in-person – NOT VIA EMAIL. Make sure to ask questions that help you determine whether this person understands and shares your expectations.
Using services like ELance, Guru.com, oDesk and the like are about on the same level as throwing darts, in my opinion. They are not designed to bring you together and allow the intimate interviewing process to occur that will help you find a developer that you’ll mesh well with. They’re designed to hook you up with cheap labor – period. If you don’t pay much, it is unreasonable to expect much in return.
Looking at past work and interviewing previous clients are nearly useless indicators of quality as well. In all likelihood, the past work is more indicative of the client's desires than of the developers skills. Ultimately many developers picking up gigs through services like that tend to do whatever the client asks for rather than focusing on helping the client achieve clearly articulated goals (which often don't exist either). If the client says, "Make those buttons blue." then the buttons become blue, regardless of whether the designer had recommended red, green or purple. How much effort do you expect from someone working for $10 per hour for someone they don’t know and will likely never meet?
Again, it’s all about expectations. If you’re paying one tenth the going rate for a developer, you should expect to get one tenth the quality.
As for interviewing past clients, that's a hit or miss proposition, too. I've seen hundreds of website and software projects that were complete garbage from a design, code and usability perspective, but the clients loved them because the end product met their expectations. I've also seen truly genius level programmers dismissed as hacks & know-nothings by clients who lacked the knowledge to discern "good" developers from "bad.” These genius programmers didn’t meet the clients expectations (and usually because the client did not or could not clearly communicate their expectations).
Invest the time (and it will be a good investment) to seek out a development partner that you feel comfortable with and with whom you can reach a clear understanding of your expectations. Seek out an advisor who you trust and who has the knowledge to evaluate potential developers’ skills, too.
Once you have found a good match, stop looking on the freelance boards and start investing in a long term relationship with your developer. The longer you work together the better you will understand each other's needs. The better you understand each other, the more likely you are to be satisfied with the outcome of your projects.
Will you pay good money for a good developer? Of course you will because they're in demand and there are plenty of other people willing to pay top dollar for his or her talents. But you've already experienced the results of hiring low cost developers and it doesn't sound to me like you're happy with the value there. Remember to focus less on price and more on value.