If you look into where Agile came from, you will see that it is a collection of best practices and insights gathered since the 60s. Agile is just a collection of common sense, nothing more, nothing less.
Everyone implementing it as a 'thou shallt...' way of working, does not understand agile.
Key focus is:
- release early and often, so you get good feedback
- TALK to your customer (and to your teammates), don't assume some email of document captures what they mean
- improve your process if you find somthing isn't working, don't just continue with rituals and procedures because someone said so.
Yes, this asks of a certain mindset from both team and customer. But if they didn't have that mindset to begin with, no matter what method you use, you will fail.