tags:

views:

205

answers:

3

I'm in the happy situation to run a boutique like software development setting:

The client describes the problem. I code a solution, test it, write some documentation and an invoice and usually everybody is happy. Works nice but results in very little upfront documentation, requirements and the like.

To get more work done I tried to outsource coding tasks e.g. via rent-a-coder and Elance. So far I have been generally satisfied by the quality of the code I got there. I have the feeling that the other side also is quite happy working for somebody who is a coder himself (me) and thus can describe things in terms a coder understands, set objective requirements ("follow PEP8 use pylint and get a score of at least 8" etc.) and has realistic exceptions of the deliverables.

Unfortunately so far I have the feeling that describing what I want coded, answering questions during the bidding phase, answering questions during the coding phase and checking de delivered code before payment is more work than actually coding it myself.

How are your experiences with subcontractors/outsourcing? Can you suggests techniques to effectively handle this?

+5  A: 

When outsourcing you are going to spend a lot of time with design up front, which is generally done in a small house while building the software.

If you don't spend that time doing the design up front, you aren't going to get what you wanted, you are going to get what the outsource's version of what you want.

It is a time hit to do outsourcing, the best way to do it in a small development environment is to just have on site contracting, rather than remote so the person can work as part of the team, ask questions when needed, and be more part of the solution. Other wise you need to invest some significant time into managing the outsource.

Tom Anderson
+1  A: 

I have found the same thing - it is quicker to do it myself than describe in sufficient detail to have somebody on the other side of the world be able to do it. I have yet to see the outsourcing model work successfully with programming.

Jim Anderson
+3  A: 

One thing that helps is to establish a solid working relationship with one or more favorite subcontractors. This can go a long way towards making communication more efficient.

Also, the bigger a chunk you can break off for someone else, the less time you'll generally spend explaining it relative to the work being done.

Jekke