Extreme programming (XP) is a software development methodology, which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, to improve productivity and introduce checkpoints at which new customer requirements can be adopted.