First, you probably don’t understand the goal of what it is you are trying to do.
Is the goal to make money, or perhaps, to make a difference?
Because everything you do must be a means to achieve the goal. Everything.
And when you don’t know what it is you are trying to accomplish, then you end up putting up with a lot of cruft instead doing things that serve the goal.
This in-turn creates bottlenecks. Bottlenecks, or choke points, significantly slow your progress.
Second, it is highly likely you are thrashing your project at the end instead of the beginning.
As Steve McConnell has pointed out, Microsoft was notorious for this.
So a simple example would be a new update for Windows. A year out, you would meet with the development team including project managers, coders, etc.
And over the next year, Microsoft would be working to launch the new update. The problem is as they got closer to ship date the sales team and Market VP would look at it and make changes, throwing the coders behind.
And then, the Accounting person has another great suggestion to help boost profit.
And then, finally Steve Balmer gets a look at it and wants to change the color or a specific design.
Meanwhile, the coders are scrambling getting more and more behind until finally they miss their deadline.
So instead of thrashing at the end when it’s expensive, thrash at the beginning when it is cheap.
Get all the approval you need at the beginning for what it is you’re going to build and then take people off the project.
Thrash when you’re six months out, not with only six days left.