Extreme Programming (XP) proponents advocate
four values in system development: communication, feedback, simplicity, and
courage. They envision the development process as a communication loop that
involves the customer, the requirements, the system designer, and the
programmer. One of the areas where they look for simplicity is in deciding
what tasks need to be done next. The customers, the designers, and the
programmers look at the system requirements (as they know them at the
moment). The customers decide which small parts of the system are most
important to them at the moment and write a description on "story
cards". The designers and programmers then estimate how long
implementing each "story" will take to complete. Knowing what is
needed next and how long each task might take, they choose the stories that
the programmers will work on next. When they have completed those parts of
the system, they all repeat the story card process. (Courage is an XP value
because all the participants have to have the courage to jump right in and
make decisions that might later prove to be wrong--the stories may not have
been the right ones to work on: requirements may change, designs may not
work, programmers may have to rewrite components.)