How to Manage an Outsourced Development Team: Best Practices