Software engineering approach in which teams produce software in short cycles, aiming at building, testing, and releasing software with greater speed and frequency.