Most XP practices concern the day-to-day work of producing code. This is the job of the developer: to turn customer stories into working code.
The developer role in planning and implementing features depends on knowing and understanding technical issues. Developers create and maintain the system as it evolves. They must answer the questions: “How will we implement it?”, “How long will it take?”, and “What are the risks?”
Developers work with the customer to understand his stories. From a story, the developers decide its implementation. The developers then estimate the amount of work each story will take, based on the implementation decisions and their experience on the project so far. These estimates help the customer to schedule the most valuable work for the next iteration by answering the question of how long.
While creating task cards from the story cards or implementing tasks during the programming cycle, developers may identify features that depend on other features. They may also find risky features that use new technology, are poorly understood, or are otherwise complicated. Developers raise these issues with the customer, who considers them while making the schedule. In practice, these risks are rare—practicing simplicity reduces them.
XP recognizes several developer rights:
To estimate their own work, by giving developers authority over technical decisions. (See Business Practice 2: Play the Planning Game in Part II.)
To work a sensible ...