When implementing cross-cutting concerns, we want to avoid simply adding the functionality to each consuming class that needs it. This approach is called scattering since the implementation is scattered throughout the application. As a software architect, you will want to ensure that developers are not simply copying and pasting logic that they need in multiple places.
When an implementation for a cross-cutting concern is scattered because it is spread out among multiple modules, it violates the Don't Repeat Yourself (DRY) principle. Code must be duplicated in order to provide the functionality of the concern in multiple places. Code duplication is wasteful, makes it more difficult to maintain consistency, increases complexity, and needlessly makes the codebase larger. These qualities all make maintenance more difficult. If the logic that is duplicated needs to be modified, changes will need to be made in multiple places.