A type of software development method in which the project team starts with a very simple project design and adds functionalities through short iterations. At the end of each iteration, an updated, tested, potentially shippable version of the software is presented, and project stakeholders decide what the next iteration will target, incorporating feedback from users, the team and any relevant outside trend.
Unlike the waterfall methodology, agile methods allow for changes at any stage of the project and incorporate feedback from users and the customer at an early stage. This helps ensure that the end product is in line with customer expectations and relevant to market needs.
Agile methodologies mostly differ by the length of their iterations (1 to 4 weeks), the type of activities performed and the resulting deliverables.