Much like TDD, which works great when it’s dev driven, agile works great when it’s driven by dev team.
The problem happens when the PMs get involved and they have to schedule meetings to get basic status updates and have to implement their voodoo rituals to make it look like PMs are adding to project velocity. Planning Poker, lol.
It gets much worse on larger scope projects and many devs and PMs are inexperienced.