App outsourcing: a successful app in five steps