A few people have asked me recently about outsourced development. While it is absolutely not my preferred way of working, I realise that it can be considerably cheaper and for a lot of businesses, it is the only viable option.
So I have scribbled down a few thoughts about how to make the best of the situation if you've decided to go down that route:
Nobody else understands your vision. Remember this and act accordingly.
No matter how clearly you explain it and how much someone seems to get it, they probably don't.
There is no substitute for sitting next to someone while they build your idea. If they're not sitting next to you, you need more interaction with them, not less.
Digital things are not static. Clickable / interactive designs are so much more valuable than flat mock-ups even if they take longer to produce.
Use varied, realistic data in your designs to show how layouts need to be flexible. Use extreme examples of field length (short and long), unusual image shapes and sizes etc.
Dictate the methods of collaboration. Insist on Github (or similar code sharing and reviewing service) and learn how to use it to review progress. Enforce pull requests and code reviews for everything even if you don't understand the code. You'll be surprised how much sense it makes and it allows you to ask questions etc.
Get your developers to help you set up the application locally on your machine with scripts / instructions for how to update. Every pull request should be installed and run locally on your machine before being signed off.
If necessary, bring someone in to help you with it but you'll be surprised how easy it is and what a difference it makes to your understanding of your product.