1/9
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Requirements Analysis, Design, Development, Testing, Deployment
Software Engineering Activities
User stories
High-level, informal description of a software feature written from the perspective of the end-user. Stated in the following format: “As a [type of user], I want to [perform action] so that [a result is achieved]”.
INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable
Criteria for effective user stories
Acceptance criteria
Defines the scope of the user story (what needs to happen for the story to be considered “done”). Stated in the following format: “Given [pre-condition], when [action is taken], then [post-condition/outcome]”.
Independent
Should be self-contained in a way that allows a user story to be developed & released in any order. (If dependencies cannot be avoided, they need to be referenced explicitly, e.g., “depends on user story 4”)
Violation: As a user, I want to see my profile photo so that I feel personalized (the upload photo feature has not been built yet)
Fix: As a user, I want to see a default avatar placeholder in the profile header so the UI looks complete, even without the upload feature attribute
Negotiable
Captures the essence of users’ needs. The user story only captures requirements without making design decisions.
Violation: As a user, I want to integrate Gemini 3.1 Flash Live for real-time conversations so that I can ask questions about my legal documents.
Fix: As a user, I want to have real-time audio conversations with an artificial intelligence agent to help me better understand my legal documents.
Valuable
Delivers value to the user. The feature is useful on its own.
Violation: As a developer, I want to refactor the codebase so the internal tooling uses my own fine-tuned LLM, rather than calling an existing one.
Fix: Delete this user story—it is not valid.
Estimable
Developers should be able to estimate the effort it takes to implement the user story. The scope of the user story is well-defined and clear. Usually, when this is violated, the “testable” criterion is violated as well.
Violation: As a user, I want my navigation bar to be clean and organized so that I can easily switch between different pages.
Fix: As a user, I want to access my ‘Home’, 'Profile', and 'Settings' page directly from the home screen so that I can switch between core features in one click.
Small
A user story is a small chunk of work. A great user story cannot be split into smaller user stories that still satisfy other INVEST criteria.
Violation: As a moviegoer, I want to be able to search up movies playing in a theater, press a button to open up available times for that movie, select a seat for that time, and then pay for that seat so that I can watch a movie.
Fix: Split it up into smaller user stories that still fit within the INVEST criteria (one for searching showtimes, another for selecting seats). For instance: as a customer, I want to select specific seats on a digital map so that I can sit with my friends.
Testable
A user story has to be confirmed via pre-written acceptance criteria. Usually, when this is violated, the “estimable” criteria are violated as well.
Violation: As a user, I want to be able to easily obtain book recommendations after I make a purchase so I can find more potential reads. (Note: ambiguity in the “so…” portion does not violate “testable”, since it merely provides context)
Fix: As a user, I want to obtain at least 4 recommendations of books in the same genre after I make a purchase, so I can find more potential reads.