Software is under a constant tension. It is easier to change the specification to fit the program than vice versa. Fools ignore complexity. Pragmatists suffer it. Some can avoid it.
Geniuses remove it.
In English every word can be verbed. Would that it were so in our programming languages. In seeking the unattainable, simplicity only gets in the way. In programming, as in everything else, to be in error is to be reborn. In computing, invariants are ephemeral.