Tecnica di sviluppo per la [[fase di implementazione]] che prevede il miglioramento interno del codice senza intaccare gli [[elemento pubblico|elementi pubblici]] del codice. Spesso consiste nel realizzare astrazioni per codice ripetuto: si suggerisce di farlo quando il codice viene ripetuto tre o piĆ¹ volte, in modo da non sovrageneralizzare.