Skip to content

Six Features of a Good User Story - INVEST Model

October 16, 2007 by Vaibhav

What is a User Story?

A user story describes desired functionality from the customer(user) perspective. A good user story describes the desired functionality, who wants it, and how and why the functionality will be used. The basic components of a User Story are sometimes dubbed as the three C's:

  1. Card - the written description of the story, serves as and identification, reminder, and also helps in planning.
  2. Conversation - this is the meat of the story; the dialogue that is carried out with the users; recorded notes; mockups; documents exchanged.
  3. Confirmation - the acceptance test criteria that the user will utilize to confirm that the story is completed.

A user story is not technical.

A well-written user story follows the INVEST model

Independent, Negotiable, Valuable, Estimable, Small, Testable. Let's see what each one means:

  • Independent - One user story should be independent of another (as much as possible). Dependencies between stories make planning, prioritization, and estimation much more difficult. Often enough, dependencies can be reduced by either combining stories into one or by splitting the stories differently.
  • Negotiable - A user story is negotiable. The "Card" of the story is just a short description of the story which do not include details. The details are worked out during the "Conversation" phase. A "Card" with too much detail on it actually limits conversation with the customer.
  • Valuable - Each story has to be of value to the customer (either the user or the purchaser). One very good way of making stories valuable is to get the customer to write them. Once a customer realizes that a user story is not a contract and is negotiable, they will be much more comfortable writing stories.
  • Estimable - The developers need to be able to estimate (at a ballpark even) a user story to allow prioritization and planning of the story. Problems that can keep developers from estimating a story are: lack of domain knowledge (in which case there is a need for more Negotiation/Conversation); or if the story is too big (in which case the story needs to be broken down into smaller stories).
  • Small - A good story should be small in effort, typically representing no more, than 2-3 person weeks of effort. A story which is more than that in effort can have more errors associated with scoping and estimation.
  • Testable - A story needs to be testable for the "Confirmation" to take place. Remember, we do not develop what we cannot test. If you can't test it then you will never know when you are done. An example of non-testable story: "software should be easy to use".

Summary

Well-written User Stories are cornerstones for Agile Development. They should be independent of each other; the details should be negotiated between the users and the developers; the stories should be of value to the users; they should be clear enough for developers to be able to estimate them; they should be small; and they should be testable through the use of pre-defined test cases.

About the Author:

Comments

Examples

October 17, 2007 by Artem, 6 years 44 weeks ago
Comment id: 1372

Vaibhav, what could a good INVESTed user story look like? Could you give an example? Possibly an imaginary one.

Here is a quick one (maybe I

October 17, 2007 by Vaibhav, 6 years 44 weeks ago
Comment id: 1373

Here is a quick one (maybe I can add a post at a later date explaining the example a little more)

Scenario is: We are creating an online shopping site.

Here's the Card. This is THE User Story.
- The payment can be done using a credit card.
- Accept MasterCard and Visa. Consider using Amex.
- Customer should not need to specify card type.

Let's see how it is INVEST:
Independent - It is concise, not related to any other functionality and not dependent on anything else either.

Negotiable - Since the story itself is not overly detailing what needs to be done, it leaves a lot of room of conversation during development. During the conversation, notes are created and added to the card, but not at the time of defining the card.

Valuable - The requirement is in a customer-friendly tone, rather than in a technical tone. For example, we could have written something like this: "auto-detection of card type as a function of credit card number"

Estimable - There is nothing vague about this User Story. It is a fixed task which has well-defined end results.

Small - This could have been: "Integrate Online Payments using Credit Cards, Bank Transfers, PayPal, etc." Which is a much larger requirement.

Testable - There can be well-defined test cases here. Such as "Test with Visa", "Test with MasterCard", "Test with Amex", "Try making large purchases", "Test with improper Credit Card Numbers"

I hope that helped...

Added you INVEST model to the C2 wiki

January 27, 2008 by Dan Pupek (not verified), 6 years 29 weeks ago
Comment id: 1446

I added your notes and a link to your blog entry to the C2 wiki.

http://c2.com/cgi/wiki?InvestModelForUserStories

Vaibhav, If you can post any

August 8, 2008 by Rajagopal Yendluri (not verified), 6 years 1 week ago
Comment id: 1745

Vaibhav,

If you can post any story which is complete and following 3C's and the INVEST model, that helps alot for most of the people.

Regards,
Rajagopal Yendluri(Raj)

Interesting. This is

December 23, 2008 by Dr. Phillip Good (not verified), 5 years 34 weeks ago
Comment id: 2139

Interesting. This is something that I can modify to use during our brainstorming sessions for story development.

Hey! Thanks for a nice post,

December 25, 2008 by Mailer (not verified), 5 years 34 weeks ago
Comment id: 2146

Hey! Thanks for a nice post, I like your style:D I've bookmarked this page, so if others are interested here is the location of bookmark http://searchallinone.com/News/Six_Features_of_a_Good_User_Story_-_INVES...

Great, your example in the

February 28, 2009 by Zoran (not verified), 5 years 25 weeks ago
Comment id: 2304

Great, your example in the above posts also made things easier.online roulettebootleg moviespoker sites

I guess I read that....

March 25, 2009 by Thomas (not verified), 5 years 21 weeks ago
Comment id: 2411

... already in one book by Mike Cohn :-)

Six Features of a Good User Story - INVEST Model

April 29, 2009 by blizzard (not verified), 5 years 16 weeks ago
Comment id: 2482

Thanks for sharing these info with us!
I will keep in touch with your blog reading...buy steroidssteroids

Handy index-card-sized reminder

April 29, 2009 by Tim Ottinger (not verified), 5 years 16 weeks ago
Comment id: 2483

If it helps to keep these in mind, you can grab the index card we made last Feb and print a copy for your cube/office/forehead.

http://agileinaflash.blogspot.com/2009/02/invest.html

User Story Format

August 26, 2009 by Scott Green (not verified), 4 years 51 weeks ago
Comment id: 3082

Many people recommend crafting stories in the following format:

As a [user type] I want to [describe a function or task] so that [describe the benefit].

I noticed that your story in the example above, while VERY clear, does not follow the format others recommend.

Why have you chosen to not follow that format?

Not challenging you..just want to learn everything I can.

Many thanks!

How do I follow this principle on a wizard based workflow

July 15, 2010 by Ranjeet (not verified), 4 years 5 weeks ago
Comment id: 7547

Assume that one of the story as per customer speak is "I want to lodge a new claim for my policy". Typically this will be a series of steps around 6/7 gathering all information and finally lodging a claim. My challenge is that I am always thinking that each step in the 6 step procedure becomes a story. BUt then I am not really following the I and V priniciple mentioned above. Any thoughts how I could have this requirement broken into stories. ?

Thanks,
..Ranjeet

True and Correct

December 28, 2011 by Abbey (not verified), 2 years 33 weeks ago
Comment id: 20658

Agreed, It has to be for the user. A good developer should always think of what value will they give to the costumers. Nice post!

My Thoughts

January 9, 2012 by Paul (not verified), 2 years 32 weeks ago
Comment id: 20739

Assume that one of the story as per customer speak is "I want to lodge a new claim for my policy". Typically this will be a series of steps around 6/7 gathering all information and finally lodging a claim. My challenge is that I am always thinking that each step in the 6 step procedure becomes a story. BUt then I am not really following the I and V priniciple mentioned above. Any thoughts how I could have this requirement broken into stories. ?

Reply to Ranjeet question

January 19, 2012 by Vaibhav N (not verified), 2 years 30 weeks ago
Comment id: 20783

Hi Ranjeet,

There are two approach for the task as per me:
1. Break the story in separate story flows if required.
2. In banking and claim process mainly one need to follow a process which can't be separated or included together. You need to make sure all requirements are covered in conjunction with the rules. At some places you may feel you are breaking some rules but it depends on complexity of the requirement only.

Thanks.

info

January 23, 2012 by rahul verma (not verified), 2 years 30 weeks ago
Comment id: 20818

I like the way you described the topic with such clarity. This is something I have been thinking about for a long time and you really captured the essence of the subject. low interest rate credit cards

Great informative site. I'm

January 27, 2012 by joomla development (not verified), 2 years 29 weeks ago
Comment id: 20835

Great informative site. I'm really impressed after reading this blog post. I really appreciate the time and effort you spend to share this with us! I do hope to read more updates from you. joomla developers

Eine

January 29, 2012 by Anonymous (not verified), 2 years 29 weeks ago
Comment id: 20846

Eine Berufsunfähigkeitsversicherung abschliessen.
Wie die Rechtsschutzversicherung funktioniert.
Eine Unfallversicherung testen.
Ob die Riester Rente so lange durchhält.
Wie die Gebäudeversicherung funktioniert.

Einen Kredit abschliessen Wie

January 29, 2012 by Anonymous (not verified), 2 years 29 weeks ago
Comment id: 20847

Einen Kredit abschliessen
Wie die Autofinanzierung funktioniert.

Wie man den Goldpreis bewerten muss.

Den Private Krankenversicherung Rechner testen.
Wie der Goldpreis derzeit aussieht.

Wie Tagesgeld-Zinsen verglichen werden.

Das Konto eröffnen Wie

January 29, 2012 by Anonymous (not verified), 2 years 29 weeks ago
Comment id: 20848

Das Konto eröffnen

Wie Kreditkarten funktionieren.
Eine Kreditkarte testen.

Ein Konto eröffnen.
Wie Geld funktioniert.
Einen Sparplan testen.

Awesome

January 30, 2012 by yana (not verified), 2 years 29 weeks ago
Comment id: 20850

High PR Backlinks
thanks for it....

kashif shahzad

February 2, 2012 by kashif (not verified), 2 years 28 weeks ago
Comment id: 20881

I really appreciate the time and effort you spend to share this with us! I do hope to read more updates from you.
Illinois MSN programs

info

February 2, 2012 by rahul verma (not verified), 2 years 28 weeks ago
Comment id: 20884

I appreciate deeply for the kind of topics you post here. Thanks for sharing us such information that is actually helpful. Have a nice day!Chicago cleaning services

A lot of interesting things

February 3, 2012 by Jerry (not verified), 2 years 28 weeks ago
Comment id: 20885

A lot of interesting things found on your blogs, like the topic! The author thanks and success in the blog!

Wonderful job right here. I

February 4, 2012 by cindydevon (not verified), 2 years 28 weeks ago
Comment id: 20889

Wonderful job right here. I seriously enjoyed what you had to say. Keep going because you absolutely bring a new voice to this topic. Not many people would say what youve said and still make it interesting.
free cell phone spy software

I dont know what to say. This

February 6, 2012 by katelynelijah (not verified), 2 years 28 weeks ago
Comment id: 20892

I dont know what to say. This blog is fantastic. Thats not really a really huge statement, but its all I could come up with after reading this. You know so much about this subject. So much so that you made me want to learn more about it. Your blog is my stepping stone, my friend. Thanks for the heads up on this subject.
clubmz reviews

Useful intro

February 8, 2012 by simonlofer (not verified), 2 years 27 weeks ago
Comment id: 20911

The post is pretty interesting. I really never thought I could have a good read by this time until I found out this site.I am grateful for the information given.Thank you for being so generous enough to have shared your knowledge with us.
clubmz reviews

info

February 11, 2012 by billory (not verified), 2 years 27 weeks ago
Comment id: 20937

Thanks for this wonderful post.Admiring the time and effort you put into your blog and detailed informationdriveway cleaning

Info

February 12, 2012 by Narendra (not verified), 2 years 27 weeks ago
Comment id: 20938

I really enjoyed this site. Safety wіll аlѕο mean choosing furniture pieces thаt hаνе rounded corners wіth nο sharp objects attached. Whеn looking аt bedroom furniture, look аt thе knobs аnd pulls аnd check thе edges οf thе surface. Your newer posts are simply wonderful compared to your posts in the past. Keep up the good work.car insurance price compare
engine optimization
la churches

Info

February 12, 2012 by Narendra (not verified), 2 years 27 weeks ago
Comment id: 20939

The best university students are able to compose the college essays of great quality. But, very often they are pressured for time for that things. Then they should order religion essay, which supposes to be really bright decision for hard working students.

Nice site

February 13, 2012 by jamesloster (not verified), 2 years 27 weeks ago
Comment id: 20947

This is such a great resource that you are providing and you give it away for free. I enjoy seeing websites that understand the value of providing a prime resource for free. I truly loved reading your post.
clubmz

Vabihav, 4 years down the

February 16, 2012 by Guy Strelitz (not verified), 2 years 26 weeks ago
Comment id: 20961

Vabihav, 4 years down the line I felt the need to question your Testabiity criterion:
http://guystrelitz-considerations.blogspot.com/2012/02/non-testable-acce...

Guess I've opened myself up for some comeback on that one!

G

Do you have a translation

February 17, 2012 by Uebersetzer (not verified), 2 years 26 weeks ago
Comment id: 20962

A user story describes

February 19, 2012 by Darius Barry (not verified), 2 years 26 weeks ago
Comment id: 20973

A user story describes desired functionality from the customer(user) perspective. Stevia

info

February 25, 2012 by Anonymous (not verified), 2 years 25 weeks ago
Comment id: 20995

Turkish Radio and Television Corporation (TRT) has selected a promising young Jewish songwriter and singer, Can Bonomo (born 1987), to represent his country at the 57th Eurovision Song Contest 2012. The contest is being held on May 22-26 in Baku, Azerbaijan. Singers from 43 countries are expected to participate in the event.Turkish Radio and Television Corporation

I visit many blogs to know

March 2, 2012 by sallymax (not verified), 2 years 24 weeks ago
Comment id: 21095

I visit many blogs to know new details continuously. Here I found your blog to be quite interesting. I am almost excited with all the information of your site.I really do enjoy this great website and your post was really amazing.
cell spyware

I just stumbled upon your

March 3, 2012 by helenjohn (not verified), 2 years 24 weeks ago
Comment id: 21261

I just stumbled upon your blog and wanted to let you know that I have for sure loved reading the blog. I have subscribed to your blog feed and I hope you will write a new post again in near future..!
clubmz

info

March 5, 2012 by jaadu (not verified), 2 years 24 weeks ago
Comment id: 21277

Thanks for informative and helpful post, obviously in your blog everything is good.If you post informative comments on blogs there is always the chance that actual humans will post.Pest control Harrow

I recently came across your

March 5, 2012 by Anonymous (not verified), 2 years 24 weeks ago
Comment id: 21280

I recently came across your blog and have been reading along. I think I will leave my first comment. I don’t know what to say except that I have enjoyed reading.Nice blog. I will keep visiting this blog very often. Steroids Pharmacy

heads

March 6, 2012 by Anonymouss (not verified), 2 years 24 weeks ago
Comment id: 21283

my friend. Thanks for the heads up on this subject.You know so much about this subject. So much so that you made me want to learn more about it. Your blog is my stepping stone, Hotpoint Spares

I really appreciate the time

March 6, 2012 by Anonymous (not verified), 2 years 23 weeks ago
Comment id: 21286

I really appreciate the time and effort you spend to share this with us! I do hope to read more updates from you. forfait mobile

Michael Jackson Lyrics

March 7, 2012 by Michael Jackson Lyrics (not verified), 2 years 23 weeks ago
Comment id: 21290

I hope you have a better understanding of databinding, ObservableCollection and IValueConverter .Michael Jackson Lyrics

info

March 9, 2012 by jollu (not verified), 2 years 23 weeks ago
Comment id: 21313

Great blog article about the Great blog article about this topic, I have been lately in your blog once or twice now. I just wanted to say hi and show my thanks for the information provided.http://hertscarpetcleaners.co.uk/

I visit many blogs to know

March 10, 2012 by Anonymous (not verified), 2 years 23 weeks ago
Comment id: 21318

I visit many blogs to know new details continuously. Here I found your blog to be quite interesting. I am almost excited with all the information of your site.I really do enjoy this great website and your post was really amazing.
ghqtehtyb fr gklbekowc jh sufjvadjn h4 Article Submission

infop

March 12, 2012 by Anonymous (not verified), 2 years 23 weeks ago
Comment id: 21362

Thank you for such a good article that explains things quite brilliantly, I highly appreciate it.adult dating

The post is pretty

March 13, 2012 by boutonniere (not verified), 2 years 23 weeks ago
Comment id: 21372

The post is pretty interesting. I really never thought I could have a good read by this time until I found out this site.I am grateful for the information given.Thank you for being so generous enough to have shared your knowledge with us.
Regards,
corsage boutonniere

abelee

March 14, 2012 by buy ritalin online (not verified), 2 years 22 weeks ago
Comment id: 21394

With the many blogs which I have encountered, I never expected to see a very beautiful post online..After reading this one, I felt so lucky to see its content..-)

One user story should be

March 16, 2012 by William Cain (not verified), 2 years 22 weeks ago
Comment id: 21396

One user story should be independent of another (as much as possible). Dependencies between stories make planning, prioritization, and estimation much more difficult. Often enough, dependencies can be reduced by either combining stories into one or by splitting the stories differently. paypal bingo  | pay per click london

great job

March 19, 2012 by redes de proteção (not verified), 2 years 22 weeks ago
Comment id: 21423

This is a fantastic website and I can not recommend you guys enough. I really appreciate your post. It is very helpful for all the people on the web.
Good posting, im subscribing to your rss. Thanks for sharing a very informative article. Many thanks once more

redes de proteção

hire a web developer

March 19, 2012 by Jason.j (not verified), 2 years 22 weeks ago
Comment id: 21424

Very good and fantastic post that i have come across, thanks for sharing.
Really appreciable.
hire a web developer

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.

Best of AgileSoftwareDevelopment.com