Imagine you're in a project whose sole purpose is to mediate between a handful of really large systems. Even worse, the application is a front-end for the user, handling his money - so if something goes wrong, guess who gets blamed. In the beginning you investigate and develop a plan how to implement such system. You write an architecture, detailed design, do estimations.
After a campaign for gathering capital, you start the project.
Imagine that most systems you depend on, have different rules on how to connect with you - some require you to install systems on-site and these systems to be active, some expect you to implement an interface, and just wait for a call 🙂
Imagine you neglected the legal part of the thing and you have to compensate that mistake by going through the user interface with a lawyer who changes a significant part of it, which on it's turn changes the business logic.
Imagine you have a marketing office that says that in order to profit more you again have to change how user interacts with the system.
Imagine that you're in the middle of development and have to meet a deadline with version one just in few months.
Imagine there's a component in that system that handles communication between other components in the project. This component is affected by every single change in the whole project - requirements change daily, not to mention the domain model that this component serves.
...now imagine you're the team leader of that component...