Change is the only thing common to all software projects. No matter how perfect the architecture is, or how robust the code is, we cannot guarantee that the business needs will not change in the future. The core business logic may remain the same, but new "non-core" changes can arise, such as the introduction of new product items, modifications to data display routines, and so on. We cannot avoid change. A good architecture will adapt to change rather than fight it.
Requirement changes and modifications to the code, and their impact on the software application, depend on the actual scope and size of the application itself. So before we go ahead with examining how we can manage changes, we first need to understand how changes relate to the application's size and scope.