Tuesday, January 28, 2014

Use cases and user stories

I am most familiar with user stories and knew little about use cases so reading the Wikipedia article on Use Cases was quite informative. It seems that use cases are much more technical and detailed than user stories. User stories seem to describe the results of an interaction and are more about the benefit of a program's feature or function with respect to the user. For instance, "As a user of website X, I need to control who can see my blog posts for privacy reasons." However, a use case appears to be a more detailed description of how the system will respond when it has interactions with either users or other systems. It describes, step by step, the actions taken to perform a certain task. For instance, a use case for changing a blog's privacy settings would read more like (in a very basic form): "1) The system provides a Privacy Setting dialog window which allows the user to select whether their blog is public (readable by everyone), semi-private (readable by subscribers), or completely private (readable by themselves only). 2) The user selects the appropriate privacy level setting and either uses the “Save” button to save the changes or uses the “Cancel” button to cancel the changes.” This gives a more detailed description of how the dialog box would appear to the user and what functions it should perform. It therefore also gives the developer a better picture of what they need to do to code up this privacy settings dialog box.

It seems to me that both user stories and use cases can be helpful when developing software requirements. User stories are definitely more friendly to people who may not know the exact technical requirements of performing a specific action. I would imagine that user stories would be the results of meetings with the client and potential users of the program since they can be expressed in simple English and require little knowledge of the exact implementation of a feature. I would also then expect that use cases could be an outgrowth of a user story, where the developer “fleshes out” the details of implementing a feature described by the client or user. Personally, I find use cases more helpful as a developer, but I can certainly understand the importance of use stories when it comes to communicating with clients and/or users. I would also find use cases more helpful when creating the software requirements specification. However, having both user stories and corresponding use cases could be very helpful when trying to communicate with the client(s) and with other developers since we get both the top-level and detail views of the features from different perspectives.


No comments:

Post a Comment