Generally speaking, I code more for conversation than a Q&A style, so the process may be different, but what I do is this:
1.) I first outline what sort of topic I’ll be coding for, generating a list of sub-topics that may or may not be included.
2.) I then gather at least one friend (3 or more is best, I’ve found) who have an interest in the topic/sub-topics I’ve compiled, and we all have a discussion about it/them, while I take notes (usually I just record the discussion for my notes).
3.) From those notes, I separate out each question or statement, and compile as large a list of alternate ways to say/ask it as I can.
4.) From there, I start “culling” the lists to see if they can be reduced, and if so, how.
5.) I then start crafting responses, taking into account the personality of the chatbot I’m doing all of this for. During this process I’m still culling, and determining whether I can <srai> any of the responses.
6.) Once I’ve done all of this, I then fire up my [shameless-plug] AIML Toolkit [/shameless-plug] to begin the creation of the AIML file itself.
If that seems like it’s a huge amount of work to do to create an AIML file, it is, but for me it’s the best way to create some quality responses for my chatbot.