Agile is a structured and iterative approach to project management and software development that focuses on collaboration between self-organizing teams. The key principles of Agile include satisfying customers through early delivery, welcoming changing requirements, frequent delivery of working software, daily collaboration between business and development teams, and trusting teams to do their work. Common Agile frameworks include Scrum, Kanban, and Extreme Programming. Roles include the Project Manager, Product Owner, and Team Members. Ceremonies like daily stand-ups, retrospectives and reviews help structure the process. Metrics like burn down charts and velocity are used to measure progress.