What strategy works best when choosing an external engineering partner? I want to avoid low-quality code and constant communication delays