The user gets to add stories as needed, and splits stories that are too big to easily estimate. Unit tests are created by the developer, before and during programming. These tests will typically be run one or more times each day, as people integrate their work of the last few hours. The functional tests are what let the customer know there is true progress. These encourage fine-grained design, aided by refactoring.
All production code is written by a pair.
Customer and Developer Rights XP explicitly delineates the rights and duties of the parties involved in development. Manager and Customer Rights You have the right to an overall plan, to know what can be accomplished, when, and at what cost. You have the right to see progress in a running system, proven to work by passing repeatable tests that you specify. You have the right to change your mind, to substitute functionality, and to change priorities. You have the right to be informed of schedule changes, in time to choose how to reduce scope to restore the original date.