Extreme programming (XP) is a lightweight methodology for small-tomedium sized teams developing software in the face of vague or rapidly changing requirements. XP is a deliberate and disciplined approach to software development. XP stresses consumer satisfaction. An extreme attempt to dramatically simplify the process of developing software systems is made focusing on what delivers value: the requirements for the system or the code that implements the system. Requirement specification in the form of User Stories, code development by pairs of developers (Pair Programming), simplification of the code through Refactoring and careful repeated testing are the outstanding features of extreme Programming technique. XP improves a software project in four essential ways; communication, simplicity, feedback, and courage. XP has rejuvenated the notion of evolutionary design with practices that allow evolution to become a viable design strategy.