Рефакторинг представляет собой процесс такого изменения программной системы, при котором не меняется внешнее поведение кода, но улучшается его внутренняя структура. Это способ систематического приведения кода в порядок, при котором шансы появления новых ошибок минимальны.
Со временем код модифицируется и целостосность системы, соответствие ее структуры изначально созданному дизайну постепенно ухудшаются.
Плохо спроектированную систему трудно модифицировать потому что нелегко понять где изменения нужны. Следовательно есть большая вероятность что программист ошибется.