Refactoring is the process of restructuring existing computer code without changing its external behavior. Refactoring wastes programmer's time (and someone's money) in efforts to improve code readability and reduced complexity. Careless refactoring can create new bugs and errors, accidentally changes in code behavior. Diffs in version control system are chaotic and big in every "Refactoring" commit that you can't even explain with one commit message. You can't even merge without conflicts if you are refactoring some code which actively developed by others. If refactoring is so hard why programmers do it?
Changes is the answer. Code always develops with new business requirements. Some things and rules that yesterday was rock-solid today seems wrong. Because something already written we need to save existing right behaviour with having ability to add new functionality.
Can we write our code to be ready for any new requirement and any new chang