Agile can be used in such a way that it gets management off the developers backs and empowers the developers to take their own decisions about how to plan their work and their time and to control how feature requests end up in their personal to do list (i.e. the feature request has to wait until the next sprint).
Things that help are:
1. Having a project manager with at least several other projects to manage (discourages micromanagement).
2. The project manager should also be good at defending the dev team from distractions by triaging incoming requests into urgent bug fixes vs. waits until the next sprint planning meeting.
3. Having a product owner who does not act as a manager but as a consultant on a day-to-day basis (the dev team has to however appreciate that the producer owner is the person they are developing the software for). Ideally the product owner should be available but with some other work to be getting on with.
4. Having a professional development team that are more focused on delivering a product than building a CV/blog.