User Stories - bounswe/bounswe2016group8 GitHub Wiki

What Is A User Story?

A user story represents a small piece of business value that a team can deliver in an iteration. While traditional requirements (like use cases) try to be as detailed as possible, a user story is defined incrementally, in three stages:

  • The brief description of the need
  • The conversations that happen during backlog grooming and iteration planning to solidify the details
  • The tests that confirm the story's satisfactory completion

Why Use User Stories?

  • Keep yourself expressing business value
  • Avoid introducing detail too early that would prevent design options and inappropriately lock developers into one solution
  • Avoid the appearance of false completeness and clarity
  • Get to small enough chunks that invite negotiation and movement in the backlog
  • Leave the technical functions to the architect, developers, testers, and so on

How Do I Write User Stories?

When getting started with stories, a template can help ensure that you don't inadvertently start writing technical tasks:

As a "user type", I want to "function" so that "benefit" .

Examples:

  • As a consumer, I want shopping cart functionality to easily purchase items online.
  • As an executive, I want to generate a report to understand which departments need to improve their productivity.

What Size Should A User Story Be?

A story should be small enough to be coded and tested within an iteration—ideally just a few days. When a story is too large, it is called an epic. Backlog items tend to start as epics when they are lower priority. For release planning, epics should be broken down into smaller chunks, but not so small that you have moved into detailed design.

How Detailed Should A User Story Be?

Too broad

  • A team member can view iteration status.

Too detailed

  • A team member can view a table of stories with rank, name, size, package, owner, and status.
  • A team member can click a red button to expand the table to include detail, which lists all the tasks, with rank, name, estimate, owner, status.

Just right

  • A team member can view the iteration's stories and their status with main fields.
  • A team member can view the current burndown chart on the status page, and can click it for a larger view.
  • A team member can view or hide the tasks under the stories.
  • A team member can edit a task from the iteration status page.

Source: : https://help.rallydev.com/writing-great-user-story

User Stories For Our Project

Recommendation-History

  • As a student when I search something I want to be recommended things that are related to my search so that I can be aware of them.

  • As a student I want to be able to filter the recommendation so that I can see the more related material.

  • As a teacher I want to be recommended the desired topics according to how many people desire them so that I can find more desired topics.

  • As a student I want the application to keep my search history so that I can reach to materials easily.

  • As a teacher I want I want to be able to send recommendations to the enrolled students anonymously so that they will learn more.
    Acceptance Criteria:

    • Recommendations will last for 5 days.
    • Recommendations will not have any priority.
    • You cannot send more than 5 recommendations.
  • As a student I want to get recommendations from only my teachers so that I will not see irrelevant materials.

  • As a teacher I want my profile to be shown on the first page so that more people are going to visit my profile.
    Acceptance Criteria:

    • Your rating should be at least 4 out of 5.
    • There must be at least 50 people that rated your profile.

Notification, Feedback

  • As an instructor I want to be notified when a student asks a question or introduces a content on my topic, so that I don't need to check my topic's page all the time to find if there is a question or not.

    • Notifications can be done by email or message.
    • The topics should have a page to post questions by the students.
    • The instructor can filter the notifications.
  • As a student I want to be notified when a new content is posted by the instructor on a topic I'm following so that I can stay up to date with my topics.

  • As a user I want to send a direct message to another user, so that I can communicate with a user or instructor when I have a private question.

  • As a user I want to follow an instructor, so that I can get notifications when they offer a new topic or content.

  • As a student I want to be notified when I have a feedback of my assignments or tests, so that I can easily see my progress.

Rating

  • As a user I want to list the topics according to their rates, so that I can find a topic that's liked more by other students.
  • As an enrolled student to a topic I want to rate and review that topic so that I can show my opinions about the course and other people can benefit from it.
  • Only students that are following a specific topic can rate or review on that topic.
  • Students can only review or rate one time.
  • Students can modify their own reviews or rates.

Tags, Semantic Tag

  • As an instructor I want to add some tags to my topics I want to teach, so that people who are interested in these topics would find them easier.

  • Topics have their own tags.

  • Only the owner of the topic can assign tags to that topic.

  • Tags will be used by the search engine.

  • Limited amount of tags can be assigned to a topic.

  • As a user I want to delete a tag assigned by me, so that when I change or add something to my topic, I can also change the tags in that relevant topic.

  • As a user I want to search the topics according to their tags semantically, so that I can find topics easily that I'm interested in.

  • Multiple tags can be used when searching.

  • Tags should be related to their topics.

  • Semantic tagging should be used.

Sign up / Sign In

  • As a teacher, I want to know information about users who followed my topic.
  • As a teacher, I want to give some tests to users so that their login details are required.

User profile page

  • As a student, I want to follow topics so that I can learn when someone adds something new.
  • As a student, I want to follow questions so that I will be notified when someone gives an answer.
  • As a teacher, I want to see top rated topics so that I will learn what’s trending.
  • As a student, I want to rate topics so that teachers will have a feedback about their content.

Multiple Language Support

  • As a foreign student, I want to see materials in a common language so that I will learn the concepts without being persuaded to learn another language.
  • Should use the English version of the site
  • Should be registered to site
  • As a foreign student i want to be able to request for a translation of a certain material so that i can read it
  • As a foreign student, i want to be informed when there is a need to translate materials so that more people can get benefits out of the materials
  • Should be an over 350 points user
  • Open the TNF (Translation Notification Feature)

Topic Page

  • As a student, I want to make search according to my interests so that I can easily find related materials.
  • Should have written at least 3 characters
  • Don't use Non-English characters.
  • As a student, I want to filter my search depending on teachers so that I can see only my favorite teachers' materials.
  • Should use tags that appointed to teachers by admins
  • As a teacher, I want to make search according to my subject so that I can see the other related materials and courses opened and I can avoid to add same material.
  • As a teacher, I want to see mostly requested topics so that I can get an info for missing topics.
  • As a teacher, I want to post topics about any content, so that I cannot be limited.
  • As a user, I want to report topics that are offensive to some group of people, so that I can feel comfortable about the website.

Browse Questions Page

  • As a student, I want to make search in questions so that I can see previously asked questions and learn what I need.
  • Should be a registered student to see solutions
  • As a teacher, I want to make search in questions so that I can solve questions related to my profession.
  • Must be a registered and approved teacher
  • Solution must be in 300 characters long
  • As a teacher, I want to filter questions by solved and unsolved so that I can find solution-waiting questions.