There are a lot of patterns, techniques, and approaches that help to write understandable code and build an architecture possible to change.
The difficult aspect of development is the fact that whatever you will do, the code and the architecture will degrade.
The question is, why regardless of tries and efforts we cannot change that?