Agile is a Software Process maps where you have a series of meetings, metrics are calculated and reports are generated to monitor software teams, that fairly they are doing with their development. These meetings re mainly done by non-technical people who simply don't understand the basic requirement.
They asks us to write estimate about the feature we will be working on and then end of the task they will match all the estimates with the actual. Now the simple equation of software world is that you cannot estimate it correctly because of any unforeseen reason, but they want it to improve our estimates from the next time onwards.
This type of agile is simply waste of time where you are not giving any benefit to the people other than wasting their time and pushing them to work on a deadline even when the deadline is not their, thus increasing the stress.
What should be done in agile is to have a discussions between the team about how to create better software without spending too much time on non-technical stuff. There should be meeting twice a week to know what going well and what not. If you are stuck, if any one else knows the answer, or how you can try to solve it.
One simple thing I know is that if the development team is not feeling satisfied with any process than you should throw it away to make them comfortable with any process they like. I agree that some or the other Dev will have a problem with any process but you need to keep them happy too.
In agile we do retrospective which is great because then you know what went well and what not, but here also it should be only telling that "this should be done better next time" which is not a correct retrospective.
The correct retrospective is where you will discuss the problems you face in the entire software life cycle and how you can rectify it next time. Teams will discuss ideas and will surely try to solve it by themselves.