XP (Extreme programming): Intended to improve software quality and responsiveness to changing
customer requirements. Uses advocates frequent releases in short development cycles, intended to
improve productivity and introduce checkpoints at which new customer requirements can be adopted. XP
uses: Programming in pairs or doing extensive code review. Unit testing of all code. Avoiding
programming of features until they are actually needed. Flat management structure. Code simplicity
and clarity. Expecting changes in the customer's requirements as time passes and the problem is
better understood. Frequent communication with the customer and among programmers.