Many people who want to learn more about ExtremeProgramming often ask questions like how will I know what is most simple? How do I know when we have gone off our extreme process? There is unfortunately no objective answer at this time. Maybe soon, but I can give my own unofficial (see OfficialXpPersonnel) answer: It should seem easy.
For me, DoTheSimplestThingThatCouldPossiblyWork is that which installs itself. That is, it should feel as though the code is adding itself to your project. You are not working; you are not fighting the design. You add one or two lines of code and new functionality emerges. A few more lines of code and you are ready to release it. It should all seem just so damn easy that you can‘t imagine you have done enough to implement the desired functionality, and yet the tests do run. You might find yourself refactoring first, before adding, but the rest is down hill all the way.
The XP process itself should seem easy. Some believe it to be a HighDisciplineMethodology, I don't find it to be so. It should feel as if you have no process at all. Nothing gets in your way; every one knows what is expected. The ExtremeRules do not feel like restrictions they feel like freedom. You can‘t imagine any other way to work.
But how do you know you are in trouble? For me I notice that we are in trouble as a feeling of anxiety. (Or more correctly jangxiety in this case.) Little things annoy you and you begin to suspect something is wrong. UnitTests are fragile, failing when least expected. People are talking to each other too loud or too little. You find yourself adding code and then backing it out over and over not able to settle on what seems good.
An XP project feels like a roller coaster ride. It should be exciting as hell and a lot of fun. Everyone is headed in the same direction, in a single train. The project overall feels this way and each of the 3 week iterations feels this way within the big picture. First there is the slow methodical click-click-click as you go way up that first hill. (Gathering stories or attending an iteration's commitment meeting.) Then whoosh you are off and running faster than you can imagine. (The functional test scores are steadily climbing to 100%, the excitement of coding in pairs, more unit tests are added every day and running at 100%.) Then calm again as the train slowly pulls into the station. (Functionality done and delivered ready to go again.) Anything else and you have a problem.
-- DonWells