1. The software creation process moved from designing software to "growing" software. With iteration time moving from months to weeks. So there is no conceptual integrity.
2. MVP turning to final products. Basically quick and dirty code become the foundation of the architecture, with no time to refactor.
3. Short tenure time. I think that avg tenure time for young developers is less than a year. Hence, the knowledge of the code/ domain / abstraction is lost.
4. Market value speed over quality. Software managers are compensated for delivery and not for quality.