Agile is an iterative approach to software delivery that builds software incrementally from the start instead of delivering it all at once near the end. It works by breaking projects into small user stories that are prioritized and delivered in two to four week cycles. Agile values individuals and interactions over processes, working software over documentation, customer collaboration over contracts, and responding to change over following a plan. The principles of Agile include satisfying customers through early delivery, breaking work into small components, self-organizing teams, supporting motivated individuals, sustainable processes, maintaining pace, welcoming changing requirements, daily team assemblies, regular reflection, measuring progress by completed work, seeking excellence, and harnessing change.