If the road turns, you turn the steering wheel. If traffic is slowed to a crawl, you ease up on the accelerator. Extreme Programming takes the same approach from a development point of view. One of the basic principles of extreme programming is unit testing. In fact, extreme programming suggests that even before developers start writing code they should first design an automated unit test that will fail unless the coding task is implemented successfully.
Every good tester knows that unit testing is important.
Not all of the extreme programming principles are as obviously worthwhile as unit testing. Instead of an individual programmer writing code and then having it reviewed later by another developer, coding is always done with two developers working together. I can certainly see the benefits, especially with complex code. However, pair programming is new to me and still relatively unproven. If we are fortunate enough to work for a company that promotes informed risk-taking then we can try implementing the principles of extreme programming that we think might help.