Java outsourcing: how to find the right provider