Load 'em up and throw 'em under the bus
Often ICs stay for 2 years in a company, start a project, but aren't happy with org/management/career progression and move to the next company before having to deal with the problems they have created. Eventually other developers who weren't assigned on this project now also need to maintain this project, without having the detailed knowledge of existing mechanisms and prevalent tech debt. Those developers did work on their own project and now need to care about both or even more projects.The developers are basically invisible to upper management. PMs are the point of contact which translate between higher managment and the devs. Higher management often operates on such a high level, that they are disconnected from reality and work on a abstract level, basically using the inputs of the PMs. The PMs often also were never that technical, instead they realized soon that career progression is only possible in mgmt. This leads to the incentive to spawn new projects a PM can lead.Eventually there are too many (poorly defined) projects with too few (original) developers. New developers are unhappy since they have to work with legacy code and the devs who are spread over multiple projects and still have some original knowledge, don't have enough time/incentive to properly take care about project development (plus, spent a lot of time in "agile" meetings for each project). Adding no career paths for devs (since the company only focuses on mgmt), this leads again to the starting point, where the ICs leave the company.