Dealing With The Inevitability of Software Entropy — Is Software Equilibrium Attainable?
… refactorings do not necessarily make source code more natural, and … naturalness changes in different ways for different types of refactorings — Lin et al.
The statement above is from the conclusion of an investigation into the impact of refactoring operations on code naturalness.
It is normal for technical teams to prefer to work with software systems that have high predictability and stability, and low entropy. Refactoring code to reduce software entropy is good work, but what if there’s a software state where we’re certain that the system’s entropy would increase no further, where we can all relax knowing that the worst has already happened and going forward, things can only get better or remain the same? To some extent, this is reminiscent of the equilibrium state of a thermodynamic system where entropy reaches a particular maximum value and does not increase any further. But is it possible for software entropy not to grow?
In the following sections, we would discuss, among other things, the concepts of Code Naturalness, Software Equilibrium, and Software Entropy.
One key assumption about the software systems discussed here is that they are in use unless otherwise stated.