A software engineering approach in which teams keep producing software in short cycles and ensure that the software can be released to production at any time.