The next practice is simple design. We want to avoid
creating a huge complicated possibly cumbersome design at the beginning of
the project. What we want to have instead is just
enough design to meet the requirements, so no duplicated functionality, fewest
possible classes and methods in general, just the amount of
design that we need to get our system to work. So
one might object that to for designing that way we
will have to change the code a lot, we will need
to adapt the design as the code evolves,
and that's exactly the point. That's what we will
do. XP is all about changing and adapting,
changing your design, changing your code, refactoring. And with
the fact that we have test cases throughout
the development process, we can do that with confidence.
Because if we break something we will know
right away, which leads us to the next practice.