Nothing is obvious.
Nothing is obvious.
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.
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...
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)