Tak když tedy úplně obecně:
Smyslem refaktoringu je, aby se program navenek choval stejně a uvnitř jsme ho nějak vylepšili. Proto je nutným předpokladem mít možnost zkontrolovat, že se program chová navenek pořád stejně. Jinak je lepší na to radši nesahat. Chce to tedy mít automatické nebo aspoň poloautomatické testy – uložit si výstup z předchozí verze a porovnat s upravenou.
A pak už děláš ten vlastní refaktoring – a ten děláš z konkrétních pohnutek, např. máš pocit, že je něco špatně pojmenované, uspořádané, že by nějaké vnitřní rozhraní mělo být obecnější, aby šlo použít lépe v budoucnu atd. tak tam tyhle změny zapracováváš a průběžně kontroluješ, že jsi nic nerozbil.
Když nemáš, co vylepšovat, tak nemusíš refaktorovat.