Use case vs User Story; are they same?
To start with requirement management is not an easy field. We have business cases we have use cases and after all yes we do have requirements. On top, when transitioning towards agile development we come to the epics and user stories (someone might call it scenario). What I noticed difficult was to see the difference between user stories and use cases resulting in needing detailed use cases from scrum teams no matter what at the very beginning of development. It isn’t easy to explain neither understand at first why we actually don’t want or need use cases in agile software development but let me try; both.
So at first what are use cases? As we all know they are very handy not only for creating acceptance tests but mainly describing how the system interact with the environment/systems or actors. Usually they come with pre-conditions, post-conditions, alternative paths, actors, description and last but not least main scenario. Supported by mock-up or prototypes they are great foundation for discussions with customers explaining them how the system is actually going to work or vice versa explaining us how the system should work or interact with the environment; users or generally actors. Usually they are indeed very detailed that’s why projects investing time and effort into writing use cases ideally combined with mock-up or prototypes benefits from instant mutual understanding with customer what has to be/will be delivered. Isn’t that ideal world? Having clear requirements and being on the same page with the customer way ahead of release or even before any development phase. Recalling the huge percentage of from where defect originate >50% (not clear enough requirement) seems ideal enough to me.
However… they are usually written by certain responsible people while have to be signed off by another people or even pool of people and it all takes long time, not to mention they are usually written before any development starts. This is really quite counter agile and completely out of scrum framework. Is it really that bad?
Well user story is simplified description of a requirement which should really hold only one idea/need while recorded in following form: As a {type of user}, I want {goal} so that I {receive benefit}, very easy for users to read. There we go, agile manifesto, since stories written using such pattern provides to customers with specific feature which gives them real value. Mind you though, user stories are not one sentence affair! As all this is ideally supported by acceptance criteria (Mike Cohn refers acceptance criteria as ‘Conditions of Satisfaction’) which can be understood as ‘what needs to be done’ sort of metrics to define user story boundaries. You can use them also to clarify the scope of each story, so the team is clear on what is expected to be done to complete the story. So if you follow scrum and you have user stories with clear idea what has to be delivered and how, why would you need use case with potential ambiguity in what is to be delivered. Well it might be simply you got really comfortable with use case usage, you are diagram freak or you feel that’s the best basis for acceptance tests then ok, write your use cases during sprint planning session not earlier (for example for the sake of requirement documentation) to support collaborative user story creation and clarity or understanding of user stories. By doing this your scrum team will sooner or later realize that time-consuming use cases are really no longer needed and that effective and straightforward user stories itself are better in terms of understanding what is actually required.
So what the conclusion will be? Use case or User stories are serving the same purpose that no one can deny however they are not the same. The title of this article shall be then what is the difference between use case and user story rather than putting in question whether they are same or not. No, they are not, they are not even replacing each other they are simply just not to be used together. One can’t say use case is outdated and user story is 100% more effective though as they both have their place in well-managed software projects, just that on agile software development you’ll notice the need for use cases is fading.