Tips For Finding Great Freelance Developers
Originally posted February 24, 2009
Brian Dailey is a LAMP-stack developer with a wide range of experience in the development world. Get in touch!
For more articles on the development trade, see the Blog.
As with most things, there are a lot of ways to do something wrong and only a few ways to do it correctly. Looking for a good freelance developer is one of those things. I am not an avid proponent of sites like Elance, oDesk, or similar sites that attempt to aggregate freelancers based on low bids. These sites are also not conducive to finding local developers. In my experience, going local is often worth the premium. (I get to "clean up" after a lot of "outsourcing gone bad" stories, so I don't feel they encroach on my territory: just that it rarely works well.) While online relationships (via Twitter, LinkedIn, Facebook, etc) are useful, they are nearly worthless unless paired up with good old-fashioned face-to-face networking.
Why try to find a good developer versus a mediocre developer? If you're serious about developing a software product, it's going to save you money in the long run. If you hire a moonlighter that suddenly finds himself swamped with "real" work, then you're left scrambling to find a replacement. If you hire a bad developer that "makes it work" but later you have issues, you may find yourself faced with an expensive total rewrite of the project by a qualified developer.
Here are some practical tips on finding great developers.
Finding Candidates: Go Offline
Don't look for developers on Craigslist. The signal-to-noise ratio is so high that good job posts are hard to find, making it the last place to find well-qualified applicants. The same rule can apply to most generalized job-boards. Just like any other business arrangement, the most successful partnerships begin with personal relationships. Good developers are often active in local technical or entrepreneurial groups. This can vary from structured "referral generation" networks like Business Networking International to user groups specific to a particular technology. Some of the groups in New York include New York Tech, NextNY, nycruby, and NYPHP. If you're running a business, getting involved in groups like NextNY or New York Tech can be beneficial in far more than just finding a good developer. Even if you don't find a developer immediately, enlarging your business network will perhaps lead to someone who can recommend a developer. Likewise, you may find a good developer that isn't available for immediate work, but may be willing to help you qualify another candidate.A relationship bound by face-to-face contact is going to be far stronger than a message posted on a job board, Craigslist, or on an email list. Both you and a developer can feel out potential problems in personality differences (yes, that absolutely can affect a working relationship) or job qualifications.
If You Must Go Online, Be Specific
If you absolutely must post it online, then at least be specific about both your company and your company's needs. One of the problems with "Developer wanted" posts on Craigslist or on email lists like NextNY are that they are too broad. Web "designer" and web "developer" get lumped into the same category, preferred languages or technologies aren't specified, and company information is not given on the pretext that if you get in touch and we like you, we'll tell you more.First, be as specific as you can. If you don't know what technology you are planning on using then it's a good idea to mention this. The more specific you are about the project requirements, the more qualified your responses will be. Developers often work in specific technologies (for myself, it's PHP). Most developers aren't even going to bother to answer something like this:
"Seeking developer. Please email for details with rates and resume."
That sort of resume fishing isn't worth our time unless we're just absolutely desperate. Good developers are rarely desperate, even in these crazy economic times.
Second, not offering information about yourself or your company assumes that you're going to receive dozens of resumes, pick the qualified candidates, and then tell them about your company. There are a few problems with this assumption. First, resumes don't tell you everything about a developer. It takes a real-time discussion via phone or in-person to determine whether or not a candidate is truly qualified, so by gathering more responses you're wasting both your time and your candidates'. It's understandable that you may not want to divulge information if you're a startup still in stealth mode, but even then some generalized information can be helpful. What industry does the company serve? What are they doing that makes the work exciting?
Screening Candidates
Look for familiarity with best practices. There are a few things that nearly all developers should be familiar with. If you are absolutely not a "techie," then it may be difficult to determine who's a qualified candidate. The best thing to do is find someone that has the knowledge to help you screen candidates. Otherwise, you may know the proper words to look for, but you're still going to be shooting in the dark. Here are some basics to start with:-
Source code control. This allows developers to track changes to code and roll back to previous changes if necessary. You won't find many developers willing to argue that source code control is "unnecessary."
- Automated testing. You don't have to be a huge fan of test-driven development to realize that automated testing is a useful way to ensure higher-quality software. Even if a developer doesn't do this for every project, they should know what it is and have an opinion on how to use it.
- Avoid reinventing the wheel. For most software development tasks out there, especially the web-based kind, there are frameworks to help move work along. For example, using an MVC framework like Code Igniter, CakePHP, Ruby on Rails, or others, ensures that if a developer drops off the planet, someone else can take over. Of course, a bad developer can't be saved by using a framework, but in most cases if you have to get another developer involved at least the framework has publicly available documentation. I've learned to be very wary of companies or freelancers who claim to use a proprietary framework of their own making. It's usually a very, very bad sign.
References are often more revealing than resumes. Most serious freelance developers will be able to hand you a list of past clients who were happy with their work.
In Summary
- Go offline
- Be specific
- Look for familiarity with "Best Practices"
- The more output is standardized, the better.
- Get past references (for freelance projects) if at all possible.
- Realize that most good developers are busy, most bad developers are applying to multiple jobs in desperation.
Further Resources
-
Joel on Software: Finding Great Developers