I often feel this way l only to realize that the real cause is that the software was written before planning the architecture first. Usually caused by the rush to a minimum viable product rather than maintainability. Immutably can definitely lighten that burden though. The worst case is opening the code and finding mountains of global state that can be modified from who knows where.