> Have a crystal clear idea of what you want built.
> Have frequent and early deliverable dates.
Both of these things are extremely difficult (if not impossible) for experienced software consultancies to know up front, let alone the crowd looking to outsource. More importantly both figuring out what to build and knowing when those things are deliverable have, in my experience, required the involvement and input of the developer.
A lot of companies are looking to build simple, mainstream projects. For example "add a shopping cart to my site." Those are easy projects for outsourcing. If the client is looking to do something that has never been done before, then outsourcing may not be the best idea.
I think that's his point. Outsourcing doesn't eliminate your responsibility as a customer to participate in the development process -- it just shifts part of the labor to another entity.
Telling an outsourcer "do X for me", where X isn't a well defined thing (ie. run a warehouse, manage windows servers, etc) is going to be a disaster. What does "add a shopping cart of my site" mean? Do you want to figure out sales tax for various jurisdictions? Do you need to to interface with the German banking system? Is there a configurator?
If you treat an outsourcer as a partner in development and participate in that process, you're either going to get a result that makes sense, or you'll figure out that the process isn't working out and terminate early.
Except rarely do projects like "add a shopping cart to my site" turn out to be that simple. Each project has unique circumstances, and applying a one-size-fits-all attitude to the problem is never the right solution.
> Have frequent and early deliverable dates.
Both of these things are extremely difficult (if not impossible) for experienced software consultancies to know up front, let alone the crowd looking to outsource. More importantly both figuring out what to build and knowing when those things are deliverable have, in my experience, required the involvement and input of the developer.