Obtaining requirements through interviews is a common and valuable technique in software requirement engineering. Conducting interviews allows you to gather detailed information, clarify ambiguities, and understand the needs and expectations of stakeholders, including end-users, clients, subject matter experts, and other relevant parties. Here's a step-by-step guide on how to gather requirements through interviews effectively:
Identify Stakeholders:
- Determine who the key stakeholders are for the software project. This includes individuals or groups who have a vested interest in the project's success, such as users, clients, business analysts, and domain experts.
Plan and Prepare:
- Define the objectives and goals of the interviews. What specific information or requirements are you looking to gather?
- Prepare a list of interview questions and topics to guide the discussion. These questions should be open-ended and designed to elicit detailed responses.
- Schedule and coordinate interview sessions with the selected stakeholders, ensuring their availability.
Select Interviewees:
- Identify the individuals who possess the relevant knowledge and expertise about the software's domain, usage, and requirements.
- Consider conducting separate interviews with different stakeholders to capture various perspectives.
Conduct the Interview:
- Create a comfortable and open environment for the interviewee. Ensure that the interview setting is conducive to candid and productive discussions.
- Begin the interview by introducing yourself and explaining the purpose and goals of the interview.
- Ask open-ended questions that encourage interviewees to provide detailed responses. Avoid leading or biased questions.
- Listen actively and attentively to the interviewee's responses. Take notes or record the conversation, with the interviewee's permission, to capture all relevant information accurately.
- Use follow-up questions to delve deeper into specific topics or to seek clarification when necessary.
- Encourage interviewees to share real-life examples, scenarios, or challenges related to the software's use. This can provide valuable insights into requirements.
Document and Organize Information:
- After each interview, review your notes or recordings and organize the information obtained.
- Create a structured document or repository for storing and categorizing the gathered requirements, ensuring that they are clear, complete, and properly attributed to the interviewee.
Verify and Validate:
- Ensure that the requirements obtained through interviews are accurate and consistent with the project's goals and scope.
- Cross-reference the interview findings with other requirements elicitation techniques and with the expectations of different stakeholders to validate the information.
Feedback and Review:
- Share the gathered requirements with the interviewees for their feedback and validation. This iterative process can help ensure that the requirements are correctly understood and documented.
Prioritize and Formalize:
- Collaborate with stakeholders to prioritize the gathered requirements based on their importance and impact on the project's success.
- Formalize the requirements documentation in a structured format, such as user stories, use cases, or a Software Requirement Specification (SRS).
Iterate as Necessary:
- Requirements elicitation is often an iterative process. As the project progresses, you may need to conduct additional interviews or revise existing requirements based on changing circumstances.
Communication and Collaboration:
- Maintain ongoing communication and collaboration with stakeholders throughout the software development lifecycle to address evolving requirements and changes.
Remember that effective interviewing for requirements gathering requires good communication skills, active listening, and the ability to build rapport with stakeholders. It's also important to be adaptable and open to exploring new insights and perspectives during the interviews.