Jeremy Miller gives his reasons for refactoring . He gives two over-arching reasons. The first is "To remedy a deficiency in code, design, or architectural quality" and the second, "To make a forthcoming change to the code easier." I'm very much in agreement