In this chapter, we've learned how the following tenets of extreme programming make the debugging process easier and more effective:
Software is specified, integrated, and released incrementally.
Design is kept as simple as possible.
Programming is done in pairs.
An on-site customer is always available.
Code is owned by all developers.
Tests exist for "anything that could possibly break."
In Chapter 4, we'll discuss how to design code with testability in mind.