There are many ways to gather requirements. Interviewing--where you talk to the people who will define the new solution to determine what they need-- is probably the default technique for most projects.
Interviewing can be an easy process if the person you're talking to is organized and logical in their thought process. Since that's not always the case, however, you have to have employ good interviewing techniques in order to start and guide the interview.
There are a number of formal interviewing techniques that will make the requirements gathering process go more smoothly. Here they are.
Start off with general questions. Typically, you don't start the discussion by asking narrow, targeted questions. You'll want to start more high-level and general questions. These questions should be open-ended, in that they require the interviewee to explain or describe something and can't be answered with a "yes" or a "no." Your goal is to gather as much information as possible with the fewest number of questions.
Ask probing questions. After you ask general, open-ended questions, you should then start to probe for details. Probing questions are probably the most valuable type of questions, since they tend to result in the detailed requirement statements you're looking for.
Be persistent. If you experience any difficulty understanding the interviewee's point, ask follow-up questions. You can also ask for examples that will illustrate the points the interviewee is making.
Ask direction questions when you need additional information. Direction questions start to take the discussion in a certain direction. They're used to provide context and background. For example, "Why is that important to you?" or "Why do you care about that?" are questions that can provide direction.
Ask indirect questions to gain better understanding. Indirect questions are used to follow up on specific points that were raised previously. These questions are used to gain more clarity so that you can ask better questions next. For example, "Is that important because of ..." or "You said everything needs to be secure because…"
Ask questions that validate your understanding. A good interviewing technique is to restate what you just heard back to the interviewee to validate that you understood him/her correctly. For example, after hearing an answer, you could say "If I understand you correctly …"
Paraphrase. This is similar to the prior technique except that you would take a large amount of information from the receiver and simplify it in your own words. For instance, after hearing the interviewee give a five-minute answer on how a process works today, you could paraphrase the basic points of what he/she said in a quick bulleted list of process steps. For example "So, in other words, the process you use today is basically 1,2,3,4..."
Ask for examples. In many (or most) cases of gathering requirements, the interviewer is not totally familiar with all of the information provided by the interviewee. Therefore, one effective way to gain more understanding is to ask for examples. This can also be utilized when the interviewee provides feedback that does not sound totally valid or totally believable. Asking the interviewee for an example helps lend a concrete and specific instance that may help make the requirements clearer. For example, "Can you give me an example of how that affects you?" can help make a statement more clear.
Keep the discussion back on track. Sometimes the interviewee starts to talk about things that are outside the scope of the specific information you're trying to gather. This is sometimes caused by a misunderstanding of the question you asked. Other times it's caused by a lack of focus or a desire to talk about things that are of more interest to the interviewee. When the discussion gets off track, the interviewer must get back on track. An example of this technique would be "That's a good point. However, can you describe how that relates to (… restate your original question…)?"
Try to stimulate ideas. Sometimes the interviewee gives the obvious answers but isn't thinking about other areas that may not be as obvious. The interviewer should try to get the interviewee to stretch a little and think about things that are not quite as obvious. For instance, you can ask "Can you think of a couple options for this situation?" or "Are there other ways to solve this?"