Definition:
Four to Eight programmers gather in a conference room equipped with laptop and projector. Pick a programmer to start coding while everyone else looks at the projected source code. Find one failing test you can write, and then have a programmer write the code that makes the test pass. After sometime, pass the laptop to another programmer and continue writing code and passing the laptop until the task is complete.
This helps group to understand, develop and demonstrate the principles, processes and technologies. This is an effective way of sharing knowledge, few mistakes are introduced in your code, you can solve the problems that crops up along the way faster and quicker, learn more about the things that are specific to the applications and develop a common understanding, more people know how the new program works, all are in sync. Team develops better interpersonal skills, learn to communicate with each other, work together to achieve common goal.
Further Reading:
Book: SUCCEEDING WITH AGILE Software Development Using Scrum by Mike Cohn