Interviews and User Stories
Interviews
An interview is a structured conversation in which one or more participants (interviewers) ask questions while one or more other participants (interviewees) answers them.
Objectives and Process
Three main objectives:
- Discover information from interviewees
- Record information to be used as input for requirement analysis and modeling
- Reassure interviewees that their understanding of the topic has been explored, listened to and valued
Process:
- Before: Planning and Prep
- During: Interview session
- After: Consolidation of information
- After: Follow-up
Before Interviews
Planning and Preparation
- Set objectives for the interview
- scope? domain? processes? problems? needs? success criteria?
- asking what your requirements are is too direct
- Acquire background knowledge of the subject matter to conduct an effective interview
- about the domain (vocabulary, problems) but also about the interviewee (work tasks, role, expertise, attitude)
- Choose your stakeholders carefully
- Diversity! Time and expertise are also limited.
- Organize an effective interview environment
- how will notes be taken, written, audio
Preparation of Questions
- Prepare questions in advance
- In line with the objectives
- Improves the effectiveness of the session, which is limited in time
- Gives stakeholders the impression that they are not wasting their time talking to you (and ensures they are actually not wasting their time!)
- No need to structure everything in advance
- ~1 high-level question, with sub-questions, every 5 minutes
- However, be comfortable enough to ask more specific questions that follow up on previous answers
- Not all questions need to be asked; prioritize dynamically throughout the discussion!
- Open-ended questions, to improve your understanding
- Of the domain
- How many SEG3904 projects are there typically in a semester?
- Of the process
- What must you do in order to approve a project and enter the final grade?
- Of the problem
- What takes you the most time?
- What bothers you the most? What is repetitive?
- Of the domain
- Closed questions for confirmations
- Should the system immediately cover all project courses of EECS? Of the Faculty? Of the University?
- Do not forget “why” questions?
- Understanding the rationale allows for innovation in potential solutions, not just local improvements
During Interviews - Session
- Make the interviewee(s) comfortable and confident
- Introduce yourselves and your objectives
- Listen, adjust to your stakeholders
- Demonstrate empathy and understanding
- Communicate the value of this exercise to the stakeholders
- Create excitement!
- You have your objectives
- Balance tenacity with flexibility
- Consider interviewing several people at once
- Creates synergy! This would allow the stakeholders to comment and add to the comments of others.
- The response of the small group may be better than the sum of the individual responses
- Potential questions to consider
- Are there any other questions I should ask you?
- Is there someone else I should talk to?
- Do you have any questions?
- Always give participants a chance to ask their own questions!
Common Mistakes
- Implicit interview objectives
- Poorly formulated questions (vague, too technical, long)
- Questions ordering (technical at first, without summary)
- Missing questions to cover objectives
- Interactions (unnatural style, no empathic connection)
- Lack of knowledge and confidence
- Ambiguity not leveraged/clarified
- Non-functional requirements not elicited
- Interrogatory-like interviews
After Interviews
Revise and complete the elicitation notes after the interview
- Needs to be done soon after because one forgets the details!
- Identify inconsistencies and address them in another interview
- Or by email, as a quick confirmation in the follow-up
- Keep all diagrams, charts, and models created during the discussions
- You are learning, so be precise
- Pay attention to the terminology; try using the stakeholder’s
- Identify synonyms, and choose one term per concept
- Create a glossary if necessary
- Thank the participants (e.g., by e-mail)
- For their time and the knowledge they shared
- Keep the door open for future communications
- Perhaps take the opportunity to ask 1-2 short questions for clarification or confirmation
User Stories
- Sentence, in a simple business language, that describes a functionality to support (Who? What? Why?)
- Often from the viewpoint of the user or client
- Popular in agile development approaches
- Generic pattern (https://en.wikipedia.org/wiki/User_story):
- As a who/role,I want what/desire [so that why/benefit]
- Examples:
- As a user, I want to be able to search for my customers by their first and last names so that I can find them quickly when I receive a call from them.
- As a senior manager, I want to produce a report to identify departments that need to improve their productivity.
Invest Characteristics
- I – Independent. We want to be able to move stories around, taking into account their relative priority. This means stories are easiest to work with when they are independent.
- N – Negotiable. Stories are not an explicit commitment to produce certain features, but a framework for ultimately defining what to produce for the end user.
- V – Valuable. A story needs to be valuable to the end user. Development issues should be framed in a way that illustrate why the end user would perceive them as important.
- E – Estimable. We want stories to be estimable, otherwise they're never likely to be tasked for development.
- S – Small. It is harder to evaluate or plan long stories. When planning the iteration, it must be possible to design, code and test the story within the iteration.
- T – Testable. Document the acceptance criteria, or the definition of what “accomplished” means for the story, which will lead to test cases.
Negative User Stories
- As a hostile agent I want to what [in order to why/benefit][and harm *who*]
- Examples
- As a competitor, I want to be able to flood the system with unnecessary queries to convince users that my system is more performant.
- As a hacker, I want to be able to steal a user’s password in order to copy their personal data and harm the owners of the system.
- As a hacker, I want to be able to insert executable code in a system query in order to take control of the server.
- Leads to useful countermeasures
- Like a chess game! But when should we stop?
Summary
- Benefits of use cases / user stories
- All stakeholders can understand them
- Often reflect essential stakeholder requirements
- Often represent a gold mine for clarifying requirements
- Negative user stories help identify safety and security requirements
- Challenges
- Scalability is sometimes difficult for complex systems
- Weak support for non-functional concerns and for story maintainability
- Are stakeholders really writing their own stories?
- Going too far with negative stories could lead to premature design