Startups & Offshore Outsourcing
Should you outsource your development offshore? This is a question I get asked often both by entrepreneurs and consulting clients. Serial entrepreneur Darren Herman has an excellent post today on when to use internal and offshore development teams, and I’d like to add my own perspective. I’ve had great success outsourcing for projects large and small, but the success really depends on the specifics of the project, your ability to oversee it, and the quality of the offshore outsourcing firm. Ask yourself these questions before outsourcing a project:
Can this project be completely specified in a detailed design document? You need to prepare detailed use cases, wireframes, designs, and software specifications that the offshore firm can follow. Don’t outsource projects unless you know precisely what you want, upfront, down to the last detail. If your project is not the type that can be completely specified in writing, it’s not a good candidate for offshore outsourcing.
Do you have the knowledge to oversee software development? I’ve seen too many non-technical people try to outsource a project on their own, only to get useless, buggy garbage back because they don’t know how to evaluate the work provided. Make sure you have the expertise to review and test the work, or have a local CTO or technically-savvy project manager who can oversee the project on your behalf. If you’re a business guy and you can’t tell which offshore programmers are good, find a technical person to help you.
Is technology the key value driver of this project? Or just an enabler? If the technology or user experience is part of the core value that your project delivers, develop it locally. If the technology is just an enabler for some other business opportunity, it’s a good candidate for outsourcing.
If you’re in the software business itself, including all types of web-based software, technology is absolutely key to your product. You won’t see a 37signals or Fog Creek throwing a spec over to an offshore firm. Great software requires more than just implementation, it requires passion and craftsmanship. These can only come from a star programmer who’s fired up about your project.
You won’t get that when you outsource, because you’re basically hiring a body shop. You never really know who’ll be put on your project. Joel Spolsky makes many good points in his article Hitting the High Notes. Basically, he explains that the added quality a great programmer adds to your product greatly outweighs the added costs, because software (including web based software) can be distributed at next to zero marginal cost. It’s the same as hiring a star for a movie. Brad Pitt may cost millions of dollars, but he increases the movie’s appeal, and his cost is distributed over the millions of people who see the movie.
How often will the project change? If you’ll need to provide constant updates, whether to keep up with the competition in a startup environment, or to handle customer requests, develop locally. If your project doesn’t require constant iteration, and you can deal with longer development cycles, outsource it.
Are you innovating or merely implementing? To innovate quickly you need to iterate, experiment, and learn from your mistakes. Ideally you want the most talented software engineers, sitting in the same room with you, using an agile, iterative development process. You’ll also want them in touch with users, to get direct feedback that can influence product development. In these situations, local developers are a must.
What is the size and capabilities of the offshore firm? You can outsource to individual freelancers, small firms, or large consultancies. Will they provide comprehensive project management, or will you have to micromanage them? Do they have proven capabilities in the technologies and platforms you’re using, or are they just saying ‘yes’ to win your business? Does their pricing seem realistic, or is it unrealistically low?
Are there conflicting interests? Compared with passionate developers, a third party offshore consulting company will never be as committed or motivated to see your project succeed. They may have many other clients to satisfy, and billable hour quotas to fill. Any consulting firm makes money one of three ways: 1) by billing hourly, 2) by setting a fixed project price and executing the project for less than that price or 3) on change orders. If you’re on fixed price, there’s an incentive for them to do as little as possible to make the greatest profit, or to underbid and issue change order after change order once they have your business.
Make sure your interests are aligned by choosing the proper payment model. If your project is more open-ended, choose to pay hourly. If your project is extremely well defined, with a clear functional spec, user flows, wireframes and designs, choose fixed price. Don’t choose the lowest price. You won’t be doing yourself any favors by getting an unrealistically low bid. Go over your project with them to make sure they understand its true scope.
Once you answer these questions for yourself, the best way to find an offshore firm is to look on eLance, RentACoder.com, GetAFreelancer.com, or similar sites. Offer a small test project, such as coding a basic script, to a number of companies, and compare the quality of the results you get back, as well as the experience working with them. And if you decide not to go the offshore route, there are a number of niche job boards, such as 37signals, TechCrunch, or NextNY to help find the star that will help make your project rock.


February 15th, 2007 at 12:54 pm
Lee,
Perfectly put! By keeping development local, we are able to implement new features in hours rather than days or weeks. I’ve been managing software development projects for 15 years, and I’ve yet to find one where the initial detailed spec and the final product matched.
Offshore is good for some small projects, but outsourcing initial development work on your main product could be fatal.
February 16th, 2007 at 11:58 am
[…] There has been some quality discussion around the pitfalls of outsourcing development over at NextNY in the last few days. Darren Herman has an excellent post about a positive experience he continues to have, and Laurent Katz and Lee Semel both have some lessons learned from less positive experiences. […]
February 20th, 2007 at 2:36 pm
Great post Lee!
I managed to learn the hard way but the whole experience has made me a better manager and I’ve learned to adapt with contingencies.
From my experience if you have a medium to large project, don’t expect:
- value-added service
- deliverables being fully met
Throughout my whole experience there were some patterns:
- lowering expectations because they would constantly under-deliver
- extensive delays
- during a release, no explanation is provided on deliverables, problems encountered, areas of improvement
- inconsistencies in scope, re-defining requirements
- no sense of anticipation or planning (will not manage tasks in parallel)
Quite frankly, if your project is small there are a lot of open source or off the shelf solutions that can meet your needs, and provide better results than offshoring. If you want to customize, again, you’ll have a problem communicating your requirements.
In some areas offshoring has been a success but there’s still a long way to go before it can bring higher-end services.
March 1st, 2007 at 8:29 pm
[…] A lot of the participants at today’s meeting felt that technology was just a support function for their business, and could be entirely outsourced overseas. I think it works for some businesses, but not all See my thoughts on when offshore outsourcing works and when it fails. I’ve met with too many entrepreneurs who’s whole businesses are being stalled because of the technology side. […]
March 14th, 2007 at 6:07 am
Offshore outsourcing gain importance because in the western world cost of production is much higher than the third world; this is the reason why foreign companies are outsourcing their work to countries like India who have access to latest technology, apart from this factor also have vast pool of software professionals.
March 26th, 2007 at 1:21 pm
I am biased since I am an investor in oDesk (www.odesk.com) but your readers might want to consider that marketplace as an alternative to elance and rentacoder.com. At oDesk you can hire programmers on a HOURLY basis because you have the benefit of collaboration software that allows you to communicate and collaborate with your talent on a real-time basis (like you do in real-life). This feature allows you to hire someone on a hourly basis and manage them as the specifications of your product changes (and we all knows specifications change all the time)
Venky
April 5th, 2007 at 11:38 am
I was wondering if I could ‘borrow anyone’s brain’ for a shot period of time. I am a university student at Northampton (UK) and am currently conducting my final year dissatation. Anyone with experience in the outsourcing (or indeed insourcing) would be of great help to me if they could fill out a questionnaire on the subject for acedemic research purposes.
Thanks, Rick
April 20th, 2007 at 5:44 am
really it’s very-very important that you will outsource your project to those firm which has talented mass of developer and programmer, so that your project have been done on a time period and it will save your time as well as your money.