Balancing Competing Needs Of Machine And Human In Software Refactoring