Perhaps preparation for a demo should be treated as preparing any kind of release for an Extreme Programming project...
- Prioritize the stories.
- Write the story tests.
- Break stories into tasks.
- Program test-first, writing the task tests and completing the tasks.
- Run the story tests as the tasks are completed.
- Any stories not completed by demo day will not be in the demo.
- The stories are prioritized up front but can change as marketing needs change before the demo day.