

Ask HN: How do you successfully outsource coding? - cwan

I'm looking at a few internal projects and there have been a number of articles/discussions that have touched on outsourcing recently -<p>e.g. http://news.ycombinator.com/item?id=1870960 and http://news.ycombinator.com/item?id=1880096 and a plethora of others I'm sure.<p>What have your experiences been using services like guru.com, rentacoder.com or elance.com (and what are your favorites)?  What do you find to be get the best results putting projects out to bid or finding trusted developers on these sites or others?  What mistakes did you make and what would you / did you do differently the next time?
======
mpiccino
I recently outsourced graphic design and development for my start-up, and
definitely made some mistakes... To be sure, these might be unusual for HN
readers since my co-founder and I didn't have a tech background, and many of
our problems might have been avoided with more technical knowledge on our
part.

So I guess the first advice would be, make sure you have sufficient knowledge
& information on your side to determine whether advice you're getting is
correct.

Make sure it is clear from the beginning who is going to project-manage the
process, and if your contractors say they'll do it, make sure to have regular
check-ins with the PM. In our case, they said they didn't need us to step in
as PMs, but we realized only very late that they weren't really managing their
process on their end.

We had huge delays because of this, some egregiously occurring because the
graphic designer never gave the developer the right mocks and we only found
out during QA.

Finally, I totally agree with the comment above to be really clear about
requirements. Do not believe anyone who tells you that they don't need things
spec'ed out.

In my experience a clear spec is the only guarantee that things will get done
properly and that there is real accountability in the process.

Hope this helps!

------
mrschwabe
The secret is in establishing long term business relationships with your
contractors.

I've invested close to $10k on Elance over the course of about 50 projects.
But that represents a fraction of my total outsourcing budget because the real
work is getting done in one on one email discussions.

You can leverage the work & the money you put into Elance (and others alike)
by making sure every developer you work with becomes someone whom you can
trust long term. And someone whom you can eventually contact & commission
outside of Elance, to speed up the process.

The key to making this happen is to reach out to them in your project
descriptions. Ex- "the best candidate for this job will recognize the benefit
of a long term business relationship in working with me." Posting a project is
as much about selling yourself and the benefits of working with YOU as it is
the project itself. If you want the best talent you have to be best kind of
person to work with.

That said, other tips; \- pay promptly, be forthcoming with bonus, and don't
nickel and dime \- as others have stressed: be articulate with the
requirements and what you expect out of the final product. Ie- make it easy
for your developers to work with you \- avoid large firms. Your looking for
one man operations or small,talented teams

Goodluck!

------
asanwal
Be extremely clear about requirements - to the point of overdoing it. We've
had some success with outsourcing but when it's failed, it's been due to us
not giving specific enough requirements and "assuming" certain things are
obvious.

Nothing is obvious.

~~~
jeffmould
Couldn't agree more. I have had successes and failures with outsourcing. Have
tried India and Poland developers for a couple projects. I have had greater
success with Polish developers as they seem to grasp the English language much
better and are able to communicate easier.

With the failures, they always seem to occur when requirements are not
outlined completely. Also, keeping an open line of communication at all times
with the developers is essential. This will mean being available during their
work hours and if possible negotiating with them to have someone available
during yours. Never assume that the developer will get or understand what you
are talking about or describing.

If you are looking to outsource, my advice is to talk to others you know who
have outsourced and get their recommendations on individuals or companies.
Don't just do a web search and go with the first, or even second, company that
pops up. Research, ask for references, look at their portfolio, just like you
were hiring someone to work for your company. Try to find developers who have
extensive experience working with US based companies (assuming you are in the
US).

Go with project based pricing over hourly.

~~~
mpiccino
Question on project-based pricing... Is it good to leave a final payment upon
completion?

We didn't do that on my project and it was frustrating because there was no
incentive at the end to get the final issues sorted out. We could tell that
our contractors were burned out and ready to move on, but we needed our
project completed as originally planned and it was hard to keep them motivated
with no financial upside for them. Especially since, with all the delays, they
had already spent more time on the project than they had budgeted for, so they
were essentially losing money on the deal.

Yes, we could have agreed to put more money into this and started up a "new"
project, but it didn't seem fair to us at that point...

Is it standard in the industry to leave a portion of the cost to be due only
upon completion? Because I think that would have helped us, but we didn't know
at the outset if it was within our bargaining power to try to get that...

~~~
asanwal
We always leave some payment upon completion. If they are expecting payment,
bug fixes and other issues won't fall totally off the radar for them.

It helps ensure incentive alignment.

And if the provider is adamant about not taking some portion of payment at
completion, I'd wonder (and IMO, I'd walk away)

