posted on Wednesday, September 22, 2004 11:28 AM by mlorengo

Of Use Cases and User Stories

I've put together some Use Cases and User Stories for the Virtual Cellar project. First we'll look at the User Stories I've come up with and then compare that with the initial set of User Cases via the Rational Unified Process (RUP) model.

Virtual Cellar User Stories

Wine Maintenance, we should be able to add, remove, update and view individual wines currently in our cellar
Report on the inventory of our cellar
Search our cellar for a wine matching a given set of criteria
Save the state of our cellar

Virtual Cellar Use Cases

For the Use Cases following the RUP Method, I've detailed much more of the system. Here we have a notion of two different types of actors, the Guest and Member roles. The lines connecting them with the different types of Use Cases that they can execute.

I've also created a VirtualCellar.UseCaseSurvey.doc Word document file detailing the actors and use cases. The following is a snapshot from the table of contents.

The word document details information about the actors and each of the use cases. Initially these are limited to no more than one paragraph. Here is an sample excerpt from the document for the Review A Wine use case.

In addition to the Use Case Survey Document, I've also prepared a Software Development Plan as part of the Inception Phase deliverables for the Virtual Cellar. One of the main components of the Software Development Plan is the Project Iteration Plan, a portion of which is shown below.

According to the schedule in the Software development plan, I will need to finish the Inception phase by October 7th. The purpose of the project plan is to measure the progress of the project according to the schedule, and to track how close to the projected timeline the project is. If necessary, one of the three sides of the triangle will need to be adjusted. Here are the deliverables for the Inception phase.

Compare / Contrast

With RUP, I've documented a little bit more about the system and functions will be available. With the User Stories, I've focused on what I plan to get done with the first iteration of the system. I have not put as much time into documenting the system as a whole, but more of on an as needed basis. I've also produce a bit more documentation in RUP than in XP, this can be a good thing when working on larger teams or communicating across teams or business units, yet it also adds some formality (and overhead) which may not be needed in all shops. Indeed

In the Agile Programming world, I've also created some initial paragraphs around the system so that other team members are aware of "where the system is going". In this way we can focus on the here and now, and begin programming what we believe at the time to be the core effort based on sound architecture.

Now, I'm really getting at the extremes of each methodology, and there really is a happy medium here. In fact I'll be taking that happy medium forward during the continuation of my project. Incidentally, there's a "free" seminar in Redmond that goes into this very topic. If I'm not on vacation during this time, I'm planning on attending!

Tomorrow, I'll get around to installing NAnt so that I can begin developing tests for my first User Story.

Comments