Practice from the 1st Edition of XP Explained.
"The system should be designed as simply as possible at any given moment. Extra complexity should be removed as soon as it is discovered."
The characteristics of a simple design are:
- Runs all the tests.
- Has no duplicated logic.
- States every intention important to programmers.
- Has the fewest possible classes and methods.