Bookmark Collection User Stories

I sat down today with Peter Provost and Brian Button and we outlined a number of user stories for the Bookmark Collection TDD example. My focus for the example is on programmer tests. Therefore, I am not going to use Customer Tests, although it would be possible to use these to drive development. We'll save that for a different problem. A side note: The customers for the Bookmark Collection are programmers themselves so some of the stories may be more technical than you might have seen in the past.

Here are the stories that we came up with. They are not in priority order, although some obviously would have to come before others:

  • Story #1
    • Bookmark Collection CRUD (Create, Retrieve, Update, Delete)
    • Our collection should inherit from IDictionary and behave accordingly
  • Story #2
    • Provide formatted output of the Bookmark Collection. Formats include text, XML, and HTML
  • Story #3
    • Organize bookmarks into arbitrarily nested folders
  • Story #4
    • Sort bookmarks by label, by URL, by last access, and by number of visits
  • Story #5
    • Persist the Bookmark Collection into a file
  • Story #6
    • Persist the Bookmark Collection into a user profile
  • Story #7
    • Persist the Bookmark Collection into a database
  • Story #8
    • Persist the Bookmark Collection with a web service
  • Story #9
    • Delete all bookmarks that have not been accessed in the last month

There they are. If you have feedback on the list of stories or their contents please let me know. Also, I have chosen Story #1 as the first story that will be implemented. Look for the test list for story #1 tomorrow.

Comments

  • Anonymous
    September 07, 2004
    Watch out for the Bookmark Collection TDD Example by James Newkirk
  • Anonymous
    September 08, 2004
    TDD Bookmark example programmer stories
  • Anonymous
    September 13, 2004
    CRUD = Create Retrieve Update Delete
  • Anonymous
    September 14, 2004
    For some reason that is what I always mis-type. I will correct it in the post. It should be Create Retrieve Uopdate Delete. Thanks for pointing that out and sorry about that.