Extreme Programming is an emerging methodology for small and medium scale software development. The term "Extreme Programming" seems to have been coined by Kent Beck and associates in the USA.
Like many new developments it is in some way not new. Object oriented programming had been developing for years before it was formulated as such and I suspect it is true of Extreme Programming. What is new is the courage to name it, formulate it and legitimise it.
The reason it is named Extreme Programming is because the idea is to take all the various activities in programming and to see which bits produce the best results and to "turn up the volume" so to speak, and to take all the bits that produce very little apparent results and to "turn down the volume". So, for example, the experience of programmers is that documentation takes huge amounts of time but is used very little and adds little to the value of software - so don't do it. Pair programming (that is two programmers working at the same console on the same code) increases focus and produces better targeted solutions - so do more of it.
A very healthy aspect of Extreme Programming is that it is not one person's designed methodology. It is a kind of open source methodology. As the formulated idea spreads, more people are becoming involved in doing it and adding to the pool of experience and formulation of the methods. So it is community based (facilitated hugely by the internet) and there is much discussion and evolution of the ideas.
The best on-line introduction to Extreme Programming that I have found is by Don Wells at extremeprogramming.org and a very good example of Extreme Programming in action can be found on the pages of Ken Auer's company RoleModel Software. The site describes how projects are executed with detailed discussions about the processes involved.
For further reading on the subject see our recommended XP books in our book shop.