Principle that states that small programs are well designed, but as soon as the programs grow bigger, they become increasingly harder to understand. Eventually, they become unmaintainable.

This is why "let's just add one more feature" is bad way of making programs.

Instead of building on structures what were not intended to support features you need, you should review the design first to avoid the "taste of kluges". One solution is to do refactoring over time.

See: bloat

Another one of the causes to code rot is time. A large program goes bad after time, small changes here, a bug patch there. What applications run flawlessly for a year? two years? ten years? No one writes perfect code, especially on the first try, so unless proper steps are taken to ensure the code is maintained, it begins to rot.

Good design, strong documentation, proper refactoring, unit tests, and a mind towards longevity fights out the inevitable claws of decay.

Log in or register to write something here or to contact authors.