With many cities lacking technical talent, outsourcing web development has become the popular choice for businesses around the world. We’ve touched on the challenges of oDesk and Elance, the most popular outsourcing marketplaces on the web. And while the sentiments of that post, as well as comments from our readers, echo that web development is extremely difficult to outsource, for some, it’s their only option.
Why Outsourcing Web Development is Difficult & Why Many Fail
Most want to outsource web development overseas to save money, but the age old adage remains true, “If you pay peanuts, you get monkeys.” Ruby on Rails developers in the United States make over $100k a year on salary, so when I hear stories of failed web dev projects, I can only assume most tried to find $100k talent for $10/hr. And whether you’re hiring someone for $100/hr or $15/hr, if you’re non-technical, how do you evaluate technical talent? Most don’t and rely on the developers portfolio (where some list projects they didn’t even do), the eLance/oDesk programming skills test (where answers can be Googled) or their reviews. If you’re non-technical, you should really consider hiring a project manager, as the best people at outsourcing web development understand the technology, they understand code. We’ve even seen stories of a $100k+ USA employed developer outsourcing their job to China for a 5th of the price. Another option is going with a reliable company, providing a whole stack of outsourcing web development services. The guys at InternetDevels web development studio recommend estimating the skills and competence of a company by asking for recommendations from its previous business partners.
Introduce a Coding Test
If you’re looking to outsource web development, a simple way to evaluate technical talent is to ask the developer to write a simple program. Imran Ghory developed a simple test called “FizzBuzz,” a test that can be completed by good developers in a few minutes. Though, as the article points out, he found that many computer science graduates couldn’t even finish the test, or self-proclaimed senior programmers took 10+ minutes. I’ve used this test with success, and weeded out a lot of bad applicants. If you’re hiring online, to conduct this test, ask the interviewee to share his screen during a Skype interview and then give him/her the “FizzBuzz” instructions. If he/she declines, or takes longer than 5 minutes – move on to the next applicant.
Understand What You Need, and Be Clear in Your Job Posting
Do you know the difference between a web designer and web developer? The difference between PHP and CSS? WordPress and Drupal? Do you have a wireframe? If you answered no to all these questions (you’re not alone) – I would advise you to ask technical friends, or at least find technical people in your city through Meetup.com (or like sites) and attend one of their meet-ups. Unlike a consultation, there’s less of a sales pitch and you might find that working locally with someone (even at a premium) is well worth the price compared to the challenges faced with outsourcing marketplaces. Or at the very least you’ll gain new insight about what you’re looking for.
With regards to job postings, here’s a sample I’ve used in the past:
We are hiring a Ruby on Rails developer to create a web application. Applicants will first be asked to complete version 1.0 of the website, estimated budget for this phase is $1000. We will likely hire multiple candidates for this phase to find the best developer. The chosen developer will be asked to complete the rest of the project. Does this make sense? If not, let me know.
The requirements for version 1.0 are as follows: [redacted]
Few things on note:
- “Ruby on Rails”: I knew exactly what technology I would be building on
- “Applicants will first be asked to complete version 1.0 of the website”: Even beyond any interview coding tests, you’ll want to make sure that the web developer has the talent to complete the first version of your website.
- “Estimated budget for this phase is $1000″: I much prefer s fixed rate vs hourly – you want to pay for value, not time. “Breakdown what you need done into milestones and release payment upon completion of each milestone” says web developer Helge Sverre. “This creates a win-win for both parties, and it insures that you’re paying for results.”
- “We will likely hire multiple candidates”: Even if you don’t have the budget to do so, even mentioning it can weed out low level talent.
The Website – The Importance of Code Reviews
I talked to Adam Derewecki, and we chatted about a service he’s launching, where people can have their code reviewed to ensure people they’re hiring the right talent, but not only that they could find bugs or areas of improvement (this is why programmers tend to work in pairs – no one is perfect). I immediately thought the idea was gold, people can take advantage of lower labor rates around the world, whilst ensuring that their code is up to par. Anyway, I’ll let Adam talk a little bit more about his service, as well as provide you with a few additional tips on how to outsource web development.
Enter Adam Derewecki.
Launching a startup is easier today than it’s ever been before, especially for entrepreneurs without technical backgrounds. Need to run a mailing list? Use MailChimp. Need a landing page with an email collector? KickoffLabs has your back. And then for everything else, there’s WordPress and Unbounce. But if you experience growth, sooner rather than later you’ll need the flexibility and control of moving to your own stack, such as Ruby on Rails. This is where things get a little murky. There’s a lot of developers on oDesk, and prices are across the board. How do I hire the right developers to make sure I’m not building something that will collapse on itself?
If you need to outsource development, you’ve got a few options based on your budget:
- $15-20/hour oDesk or Elance lowest priced outsourced developers ($31k/year)
- $40-60/hour oDesk or Elance contractors with a good reputation ($83k/year)
- $60-120/hour Contractor with an outstanding reputation ($125k/year)
- $120-250+/hour Domain expert ($250k/year)
The first option is obviously the most attractive financially. And if you’re setting up a basic page to gauge interest and maybe do a few basic things, you don’t really need the best developers to start with. But how do you know which developers to hire and make sure that they’re writing code that’s doing the right thing? By using PaidCodeReview you can hire an expert to lend technical expertise by reviewing code on your behalf. Let’s look at a few situations where this can help.
Scenario: Big Project
Your MVP (or small seed round) has been successful enough that you’ve got $5k and can afford to hire two developers for a month-long project (about 333 hours). You’ve narrowed your candidates down to four, but don’t know how to choose the two best developers.
How PaidCodeReview can help
Request a code sample from each candidate and hire an expert on PaidCodeReview to review each code sample, provide feedback, and an overall recommendation to you. Code samples tend to be smaller projects (though not always) so you’ll
want to budget one hour per candidate. For four candidates then, the total would be $200 — or, about 13 hours of paid contractor time. Trust me, if you end up choosing the wrong contractor, you’ll be measuring your losses in WEEKS and not
This is an appropriate time for an outsourcing anecdote of my own. At the time, I was bootstrapping CameraLends and decided to try outsourcing some basic specs on ODesk. I looked at a few dozen candidates and chose 1 of 2 who were in my price range and had experience with Rails and Rspec. After waiting longer than promised, I was delivered a few dozen specs that tested various aspects of the site.
Except they didn’t. You could run the tests and they passed, sure. Luckily, I’d been writing Rspec for years and knew my way around very well. Within minutes of looking at the source code, my jaw dropped: these tests weren’t testing
anything at all! I’ll spare the technical details, but basically the tests set up a test object and verified that the values in the object matched themselves. I called the contractor out on it and he immediately refunded my money, no questions asked. The moral of the story is: everything about a contractor can appear right, even code that appears to work, but without expert review, can create a liability.
Scenario: The Long Churn
Your bootstrapped business has been chugging along for a year now and you’ve hired six different contractors over the course of the year. Your current contractor is telling you there’s a lot of code that makes no sense to him.
How PaidCodeReview can help
Think of how many times your business has changed or evolved in the last year. Was each contractor pitched a different “big vision”? Even a well managed team of top-notch programmers introduce technical debt over time. Given that, it’s easy to see how lower-quality programmers, who may have each worked in isolation, and without technical oversight can produce mountains of technical debt. That should be scary, because unknown technical debt can lead to hours or even days
of downtime, if you have to suddenly fix it all at once.
Using PaidCodeReview, you can hire an expert to periodically review your entire code base, to give you peace of mind that you’re not walking through a field of land mines. Experts with years of industry experience can help identify and
assess the severity of anti-patterns or other technical debt in your code base. Think about how much you’re spending on outsourced developers, and then tell me that spending a small fraction of that on expert review of your core business
isn’t worth it.
Scenario: The Apprentice
I don’t want to make it sound so doom and gloom — I’ve worked with a number of talented outsourced contractors who work hard, let you know when they’re not confident about their solution, and are generally pleasant to work with.
However, many of them are also more junior developers or contractors who work on small projects and never see the problems associated with larger projects.
How PaidCodeReview can help
This is an investment opportunity. Personally having worked with junior engineers on teams I’ve lead, it’s amazing how quickly code review can fix bad habits and instill new, good practices. “You don’t know what you don’t know,” as the saying goes, and it’s especially true for development. Junior developers often waste time re-implementing solutions to solved problems because they simply don’t know any better. Code review is a very effective way to convey a lot of information, and can serve as a learning aide to multiple developers at once.
By now I’m sure you’ve noticed the common theme: pay for contracting you can afford, and pay experts to make sure your affordable labor isn’t building an upside-down house. PaidCodeReview will save you money by raising the quality of your code. And to save you money in the short term, mention “LaunchAStartup” in your review request to get your first hour for free.
Related: How to Hire a Web Designer