A user story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it.
A good way to think about a user story is that it is a reminder to have a conversation with your customer, which is another way to say it's a reminder to do some just-in-time analysis. In short, user stories are very slim and high-level requirements artifacts.
User Story is "a concise, written description of a piece of functionality that will be valuable to a user (or owner) of the software)".
User Story Cards have 3 parts:
The typical template has 3 parts: the title, the description (or body of the user story), and the acceptance criteria. The title is used to reference the user story and should be kept very short, around 3 to 10 words. The description is where the meat of the user story is kept. It is the only part that can be explained as a reasonable template. The acceptance criteria are used to determine when the user story has met the goal of the user – a sort of test.
As a [user role] I want to [goal] so I can [reason].
For example: As a registered user I want to log in so I can access subscriber-only content.
How detailed should a User Story be?
User story should be detailed enough for the team to start work from, and further details to be established and clarified at the time of development.
Epics
Epics are large user stories, typically ones which are too big to implement in a single iteration and therefore they need to be disaggregated into smaller user stories at some point.
Epics are typically lower priority user stories because once the epic works its way towards the top of the work item stack, it is reorganized into smaller ones. It doesn’t make sense to disaggregate a low-priority epic because you’d be investing time on something which you may never get to addressing, unless a portion of the epic is high priority and needs to be teased out. Remember to defer commitment, in this case model on a just-in-time (JIT) basis, to increase your overall productivity.
Themes
A theme is a collection of related user stories. Themes are often used to organize stories into releases or to organize them so that various subteams can work on them.
References: