I suspect lots of decisions are made because they bring short-term benefits despite there being long-term risks. I’ve seen agile teams pushed for feature after feature with the business owner citing business value prioritization. Certainly there is commercial pressure for features but how many of these features have been validated with users? Is the demand real?
To sustain the addition of new features at such a pace other work needs to be happening. That work keeps the code healthy and malleable; it reduces the risk of change; it keeps change affordable. When technical debt cannot be repaid on an ongoing basis and other systems work such as upgrading software frameworks cannot be undertaken when deemed necessary, the customer essentially has a lever on overall system quality. Maybe the features win new customers but unreliable performance might lose them.
Total cost of ownership
The total cost of owning poor quality software will eventually kill competitiveness. The COO is probably thinking about the total cost of ownership but really it should be on the mind of everyone all of the time. When capital and operational expenditure are different budgets, and software development is separated organizationally from operations, is it any wonder that a lot of software fails to consider the operators as users and consequently isn’t well designed for operations in the real world? Companies get locked into software that’s expensive to maintain, too brittle to build on, or too risky to replace. It appears that managers think success means coming in on time and under budget rather than actually realizing tangible benefits from delivering something. These days does anyone hang around long enough to ask if the money was well spent?