The whole point of agile is to get new products or services to the market quickly, by being flexible enough to change conditions as needed. I think of agile as a social engineering framework first and a software project management framework second. Agile is all about empowering the team, getting team members to work together to make decisions, and boosting performance by putting the team in charge of responsibility and accountability.
Agile methods are iterative and incremental. However, instead of management providing complete, detailed descriptions of how everything is to be done, these decisions are made by the development team. This is because the team will know best how to solve the problems they are presented instead of being told a specific way to surpass them.
If agile is not working well for you and your team, one of the main reasons could be that management isn’t fully understanding the fundamental agile philosophy of empowerment. In agile, empowerment means that managers must trust their team to determine the best product development methods. This happens with an inversion of control or an inversion of power, allowing the individual contributors on each team to be the most powerful people in the organization. This may sound crazy. But given the success of companies who practice agile such as Google, Facebook and Airbnb, the question for any manager today is: Have you disempowered yourself in order to empower your teams?