Extreme Programming (XP) is a pragmatic approach to program development that emphasizes business results first and takes an incremental, get-something-started approach to building the product, using continual testing and revision.
Kent Beck, author of Extreme Programming Explained: Embrace Change, developed the XP concept. According to Beck, code comes first in XP. However, Beck emphasizes that in order to write the code, you have to write a test for it first so that you will know when your code succeeds. Beck also introduces the relatively novel idea that code should be written by pairs of programmers, forcing the main programmer to describe the code to the other programmer and perhaps to stimulate further ideas.
Beck calls Extreme Programming a "lightweight methodology" that challenges the assumption that getting the software right the first time is the most economical approach in the long run. Beck's fundamental idea is to start simply, build something real that works in its limited way, and then fit it into a design structure that is built as a convenience for further code building rather than as an ultimate and exhaustive structure after thorough and time-consuming analysis. Rather than specialize, all team members write code, test, analyze, design, and continually integrate code as the project develops. Because there is much face-to-face communication, the need for documentation is minimized.