#summary Template for User Stories
#labels Phase-Requirements,Contents-Draft,Importance-Useful

To contribute a [http://code.google.com/p/soc/issues/list?can=2&q=type:Story User Story] to the Melange effort, please send an email to the `melange-soc`
[MailingListsGuidelines#General_discussion_list discussion mailing list].

== Summary ==

In the email subject line, please include:

*Subject:* _User Story: some brief description of the user story_

This subject (minus the _User Story:_ prefix, of course) will become the User Story issue summary in the [http://code.google.com/p/soc/issues/list Melange issue tracker] when the User Story is accepted.  Discussions of a new User Story on the mailing list are quite welcome and are encouraged.  Once the User Story makes it to the issue tracker, the comment system can be used for further discussion.

== Description ==

A user story should be a description of a single activity in the web application from the point of view of the user.  The most important characteristic of a User Story is that is *short and to the point*.  The second most important characteristic is that it represents a *single task* that can be implemented.

During the discussion of a new User Story on the mailing list, the discussion could lead to the creation of new, separate User Stories, in order to keep the scope of the User Story from getting out of hand.

== An example ==

The [http://code.google.com/p/soc/issues/detail?id=1 very first issue] in the [http://code.google.com/p/soc/issues/list Melange issue tracker] is a very nice example of a User Story:

{{{
Summary: Claiming a Task

A student may claim a task as long as the following apply:

1. The task has a status of "Open"

2. The student does not have any other claimed tasks currently in progress or pending review.

3. The task was not suggested by the student.

4. The student meets the eligibility requirements of the program.
}}}