How to choose an IT contractor: criteria, mistakes, checklist for the client