Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there an exact, but simple and understandable defintion of the distinction between "use case", "User Story" and "Usage Scenario"?

there are quite a bunch of explanation, but right now, I see no one that explains the differences in a single sentence, or two...

(e.g. very long and hard to get, full of discussion)

share|improve this question

migrated from Oct 10 '11 at 7:16

This question came from our site for professional and enthusiast programmers.

Thank you for your question. For some reason, people who come up with methodologies are never accurate deliberately (I assume)so that their thoughts are never accused to be not applicable to certain situation. This is dragging the entire industry back, where each of us has to create an adaption that works before using the methodology. I hope the community stands against this behavior. Sometimes, you pick 2 books and they define things differently - Science does not work this way. – NoChance Oct 10 '11 at 10:03
I suggest you check the Wikipedia definition of each of your terms. It may help you understand better what the terms mean. Also note that the terms come from different concepts. For example, user story is an Agile tool/technique and Use Case is an OOA tool/technique. – NoChance Jan 5 '12 at 15:04
up vote 17 down vote accepted

A User Story is a more informal, friendlier and smaller version of a Use Case, minus the UML diagram; it is typically used in iterative scenarios.

A Usage Scenario is a Use Case drawn out into a step-by-step procedure, sometimes accompanied by a flowchart.

share|improve this answer

To me, the biggest differences between a User Story and a Use Case are:

  • A user story is a lightweight document that can be written on a card (In order to , as a , I want ). A User Story doesn't capture all the details, it's an informal support for the discussion.
  • A use case is an heavyweight document that needs a word document. It describes a "Normal Flow" of steps and/or actions and "Alternative Flows" which are detailed. A Use Case captures all the details, it's a formal specification.

According to Scott W. Ambler on Usage Scenarios, these artifacts look like a Use Case's flow:

A usage scenario, or scenario for short, describes a real-world example of how one or more people or organizations interact with a system. They describe the steps, events, and/or actions which occur during the interaction. Usage scenarios can be very detailed, indicating exactly how someone works with the user interface, or reasonably high-level describing the critical business actions but not the indicating how they’re performed.

Honestly, the differences with a Use Case's flow is not crystal clear, even after reading this paragraph (the last sentence being maybe the most important):

As you can imagine, there are several differences between use cases and scenarios. First, a use case typically refers to generic actors, such as Customer, whereas scenarios typically refer to examples of the actors such as John Smith and Sally Jones. There’s nothing stopping you from writing a generic scenario, but it’s usually better to personalize the scenarios to increase their understandability. Second, usage scenarios describe a single path of logic whereas use cases typically describe several paths (the basic course plus any appropriate alternate paths). Third, in UP-based processes use cases are often retained as official documentation whereas scenarios are often discarded after they’re no longer needed.

I may be wrong, but Usage Scenario really sounds like Use Case flow but rebranded with an Agile touch.

share|improve this answer
I think personalizing the scenarios is harmful (at least as I understand it). You say "it’s usually better to personalize the scenarios" - But what if Sally Jones left the company or changed position - What value would the scenario have? – NoChance Oct 10 '11 at 9:40
Personalizing does not mean designing for a real person. It could for for a real person, but it could also be for a fictive person, as with the "Personas" tool. The arguments for using specific users (real or fictive), with a personality, is that the scenarios become more "real". It is easier for the programmer to understand the user when understanding the personality of that user, instead of trying to understand an abstract imprecise user. Please let me know if I am wrong, or if I misunderstood your comment. – Mads Skjern Sep 21 '15 at 15:28

There isn't an exact definition of any of this stuff. It all varies a little bit (or a lot) from company to company and from system to system.

Your best bet is to find an example already in place for your current project and follow it.

If you are creating a new system, you can find definitions of different types of use cases for whatever system you prefer--Just pick the pattern that seems to communicate your intentions best.

Don't get hung up on names.

share|improve this answer
> Don't get hung up on names. Don't worry, I won't! :) on the other hand, it's a quite desireable goal when in a team all members mean and understand the meaning of a word in a similar manner – Henning Sep 30 '09 at 15:55
I totally agree-but at a team level. I just find that a "Global" level, I've never seen two people define "Use Case" the same way. – Bill K Sep 30 '09 at 17:23
Not same, but on similar tendencies... and it's at least these tendencies I wanted to know and understand – Henning Oct 1 '09 at 10:15

A user story is always informal and describe a user's need. A use case can be either formal or informal, and describes system behavior.

It is possible to have "tech" user stories, the same is not true for use cases.

Once done, the user story is typically discarded. Use cases may be maintained during the product life cycle.

The scope is also different. User stories are typically smaller in scope, and consequently a use case comprises several user stories. A changed requirement for an existing system is described in a new user story, or an updated version of the use case.

The similarity between user stories and uses cases is that both of them are used for planning and scheduling.

share|improve this answer

"Use case" and "user story" are the same in the sense that they represent "requirements" of customer.

Use case is the way the system is used in each case, normally represented as an interaction between actor and system or between systems.

User story is the starting point in the journey to create a computer aided tool that will enable end-user to get something done, and normally begins with a simple sentence using who, what, why ("As a user closing the application, I want to be prompted to save anything that has changed since the last save so that I can preserve useful work and discard erroneous work."). That user story then needs to be cultivated into a use case that developers employ to build an application, and testers to conduct testing.

From the perspective of a QA Tester, they're not testing "user stories", but rather "use cases", meaning they're testing software functionalities.

share|improve this answer
While correct, this doesn't add anything to the answers that have been in place for 4 years already. – Adam Zuckerman Nov 4 '14 at 21:41

I am not familiar with User Story, but when I looked into this several years ago:

A Use Case is a major task.
User Scenarios are the various ways that task can play out. So, Every Use Case has one or more scenarios. The Use Case is the abstract, the User Scenarios are a catalog of all possible instances of that abstract task.

Use Case A: User authenticates with id and password.

1. ID is recognized, password is correct. ("sunny day" scenario)
2. ID is recognized, password is incorrect.
3. ID is recognized, password is incorrect for third time.
4. ID is not recognized.

I have always thought of use cases as a way of defining requirements in a narrative way for the client in their terms. w/r/t the above, if the client says "But what if they try to log in in between midnight and one when the system is down?", we have discovered another scenario for the authentication task, and some additional requirements.

share|improve this answer

A user story is from a customer's point of view, sometime it's incorrect or incomplete. It may have no consideration on performance, on error handling, or nothing on the backend.

A use case is from dev's point of view. It's accurate and complete. It should answer all the requirements from customers.

share|improve this answer

A User Story when decomposed to tasks that are individually assignable to developers may or may not be more granular and constrained in scope than a Use Case Scenario. A User Story is about the need of the User -- a Goal or Outcome from their using the System.

Examples of User Stories are:

  1. I am a Customer and I want to pay my account balance online --a pretty high-level view
  2. I am a Customer and I want to update the expiration year on my stored credit information -- a pretty granular view.

At the highest level of abstraction a Use Case sounds very similar -- Customer Updates Card Expiration Year -- but here its a statement of function rather than goal.

As the granularity of the Use Case scenarios are defined they become more about function and procedure.

The Post-condition of a Use Case Main Scenario should be the same outcome as that stated in the User Story -- Customer's Credit Card Expiration Year is Updated.

Use Case Scenarios describe step-by-step either in text or process flow chart (not necessarily UML or BPM - I use a standard cross-functional flow diagram for clarity and ease of use by untrained consumers of the use case.

The bottomline is that User Stories describe Needs and Outcomes (What the System Needs to Deliver) whereas Use Cases describe interactions between Actors required to meet the goal - AND what can go wrong (Extension, Alternate or Error Scenarios) (how the user interacting with the System achieves that outcome)

For a discussionin depth on this topic I suggest reading on Alistair Cockburn's website. Since he's a signatory of the Agile Manifesto, the person who coined User Stories and has been considered a Use Case expert for the last couple of decades I think he's an excellent source for more info.

share|improve this answer
This is just a wall of text; can you edit this for readability. – Martijn Pieters Dec 8 '13 at 21:01

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.