I found a good set of questions in "Exploring Requirements: Quality Before Design" by DonaldGause and GeraldWeinberg.
Here are some of the questions; can anyone else think of questions to add? [Or comment on their relevance to XP?]
Who is the client for this product?
user vs customer
What is a highly successful solution really worth to this client?
getting an idea of what cost-structure is available for doing the work?
What is your real reason for wanting to solve this problem?
for example, to sell to end-users, to solve in-house problem, to get VC funding
How much time do we have for this product?
see Release PlanningGame
What are the trade-offs between time and value?
see Release and Iteration PlanningGame -- number and "depth" of features.
Where else can the solution to this problem be obtained? Can we copy something that already exists?
For example, this product partially duplicates the features of Adobe Acrobat, but we don't want to license Acrobat for this project.
What problems does this system solve?
What problems could this system cause?
For example, internet reservations and ticket purchases creates the problem for Travel Agents who don't get some of that money... some of them go out of business. Travelers get less face-to-face advice, and may have a harder time evaluating the advice found on the internet. Could also be stated as Who loses if this system is deployed?
Personally I'd find this a fascinating question, but isn't it somewhat outside of the scope of what a technical person needs to know? Seems more like a business-side question.
What environment is this product likely to encounter?
cross-platform, web, embedded device?
What kind of precision is required or desired in the product?
What level of rounding errors are okay? for a business app? for a game?'
Do my questions seem relevant?
Is there anything else I should be asking you?
Is there someplace I can go to see the environment in which this product will be used?
XP Frequent Releases
Is there anything you want to ask me?
What can you tell me about other people (stake-holders? developers? consultants?) on this project?
I think one of the ideas is that stake-holders not involved in forming the requirements will try to scuttle the project. The XP books avoid talking about the politics of the projects.
Are you the right person to answer these questions?
One hopes!
Are your answers official?
They better be!
May I write down your answers and give you a written copy to study and approve?
Assumes customer not always on-site. See also StoryCard
Can we get together and clarify some points?
Assumes non-onsite Customer
Is there anyone else who can give me useful answers?
Should we use a single design team, or more than one?
I'm don't know why Weinberg suggests asking this.
Who should be on the teams?
When I asked A about this, she said Y (and you said X); do you have any idea why she might have said Y?
Is there anybody we need on this project that we don't have?
Is there anybody we have on this project that we don't need?
What features or attributes for this product are required by law? Standards? Preferences?
What requirements do/don't apply to this/that market segment?
What (un)finished products is this product like?
What features of this product were also tried/removed from previous products?
What's missing in a previous product that this one should do?
What features are considered for this product, that don't work in a previous product?
What groups of people have had problems with products similar to this one?
How is the user to correct (his own/others') errors?
What features are missing in this product? How is the user to do without them?
What acceptance tests for other products are applicable to this one?
What could happen if someone used this product for immoral purposes?
What if the user is impaired in sight, hearing, or another communication medium?
What if the user is not an English/YourLanguage? speaker? Not Literate?
What if the user is multi-lingual and wants to use multiple languages with this product (at the same time / one at a time)?
What happens when the user selects the (in)correct commands?
What happens if the user is not authorized to use certain commands?
What happens if the user is confused by the interface?
Besides normal usage, what happens in event of abnormal but reasonable usage, abnormal and unreasonable usage?