The essentials to successful partnering for software development