Unfortunately, it is still quite common for software projects to run into some of these problems.
People generally have a hard time dealing with and communicating uncertainty. Along steep hierarchies, critical information is often simplified or even gets lost.
The problem is amplified by budget fights where certain risks are purposely hidden to get funding.
Maintaining realistic expectations along the hierarchy is difficult, time-consuming and ultimately often fails.
This often leads to a multitude of problems. From being demanded unrealistic commitments to playing blame games: in the end, people start playing it safe. Less time is being spent on productive work, and learnings are ignored.
Particularly non-technical people often don't understand the nature of software projects and how software is usually written. They tend to apply the same methodologies that work in other areas of the business to software projects as well. Unaware of the complexities and uncertainties they often demand security and predictability in the form of estimates and commitments.
This leads to mainly two problems: A waste of resources to make an inherently complex and unpredictable process look linear and predictable and too little flexibility and budget to adjust for learnings made on the way.
Oftentimes business people think they know exactly what customers want. Yet billions of dollars are spent on features that are never really used. Having the humbleness to admit we don't know and instead rather organize the project in a way to enable learnings and adjustments as new insights come along can both increase the value as well as save costs.
Management is sometimes tempted to outsource or centralize certain activities to save costs or in the hope of increased efficiency.
However, dependencies — particularly in complex systems — are extremely difficult to manage.
Many of these "cost savings" instead create communication and coordination overhead and discourages cross-functional activities altogether.
It is, however, exactly these cross-functional collaborations that are needed for innovation.