If you have developed a large scale system, you have seen that small mistaken changes at one place specially at the earlier steps has damaged the other parts in the future of the system. I'm not going to talk about a solution for it, Actually there is no any way to stop doing this changes and their affects. But you can reduce the amount of these unwilling issues by some technique.
These little changes at the first steps or maybe at a specific parts of software development ,is called butterfly effect which is discussed in chaos theory. Based on chaos theory small change anywhere in the system (requirement, analysis, design, code, testing) can cause a similar change nearby and that will another similar change. Maybe you have heard that: "Small variation in the initial condition of a dynamic system may produce large variation in the long term behavior of the system", so it's worth to sit and analyze, design completely and then get start coding to reduce the butterfly effect in the future of your system.
This phenomena of sensitive dependence on initial conditions is known in physics as the butterfly effect. Errors in early collaboration, requirements, and design are tenfold as expensive to fix in the coding stage and it will be more expensive in the future. In general early analysis about requirements at first (agile manifesto!), exact estimation of the project's scope, managing the development team(conventions and collaborations) are all the necessary to reduce the risky changes of a project.