Agile is an approach to software development that emphasises collaboration, flexibility and adaptability to change. Agile emerged in response to the limitations of traditional software development methods, such as the waterfall model, which were rigid and did not allow for easy adaptation to change. Agile focuses on the rapid and continuous delivery of functional software in small batches, using short iterations and regular feedback to adapt to changing user and stakeholder needs. Key principles of Agile include close communication and collaboration between team members, regular and continuous delivery of functional software, adaptation to changing priorities and needs, and the pursuit of technical excellence. The most common Agile methodologies include Scrum, Kanban and Extreme Programming (XP).