Software entropy: The tendency for software, over time, to become difficult and costly to maintain. A software system that undergoes continuous change, such as having new functionality added to its original design, will eventually become more complex and can become disorganized as it grows, losing its original design structure. In theory, it may be better to redesign the software in order to support the changes rather than building on the existing program, but redesigning the software is more work because redesigning the existing software will introduce new bugs and problems.
Improving the design of existing software code. Refactoring doesn’t
change the observable behavior of the software; it improves its internal
structure. For example, if a programmer wants to add new functionality
to a program, he may decide to refactor the program first to simplify
the addition of new functionality in order to prevent software entropy.