Agile is the project management methodology that focuses on customer’s involvement, collaboration of cross-functional teams, fast delivery and flexible change management. The whole project is divided into multiple phases and the delivery of part of the project is always at the end of these phases.
The whole design and implementation of the project is done in an iterative and incremental way to help deliver the project in phases and to help the customers see early results and be able to approve or request for changes in an early phase.
Agile also stresses on a non-hierarchal form of leadership and management throughout the project. There are two styles of Agile coaching, push-based and pull-based.
The principles of Agile mainly focuses on the involvement of all parties in the decision making, the user, the team and the stakeholders. They all need to provide their input based on their experiences in order to increase the success percentage of the project. This principle is what makes Agile a really unique project management approach. Agile also applies the 80/20 rule. The time of the project is always fixed as planned but the requirements may differ from phase to the other depending on lots of factors like new updates coming up, unrealistic requirement, incompatibility, etc. The delivery of the project is always in phases and is always tested before the end of the phase. So testing becomes part of the daily project tasks, not in the end as other approaches.