May 20th, 2015 by inflectra
Enough has been written about Use Cases in the context of Agile projects to save me having to restate the details here. For those of you wishing to refresh your memories, you can read about Use Cases and User Stories here on this site.
In outline, User Stories are often characterized by relatively short, uncomplicated and informal descriptions usually written by users or a product owner, whereas Use Cases are often longer, more formally structured descriptions of not only the user need but also other details including the participants (both people and systems), context, scope, exceptions, and end conditions. Consequently, Use Cases have a formality and level of detail that are not necessarily commensurate with Agile development.
However, Use Cases appeal to those looking for a way to record more information, or to organize the information obtained as part of the discovery process, something User Stories do not do well. Can Use Cases strike a balance between the need for agility and the need for more information, and if so, how?
A common suggestion is that Use Cases do not have to be so formal or detailed; in fact, they can be very brief and informal. The argument goes something like this, “If you start with minimal information, perhaps just the name of the goal, and write the detail just-in-time, you will still be Agile.” But if all we have is a goal, what makes it a Use Case?
Is an informal Use Case even a Use Case at all, or is it really a User Story? Very simple Use Cases look suspiciously like User Stories, e.g. The [actor] wants to [goal] so that [accomplishment]. So, let’s forget all the smoke and mirrors and call it like it is: simple, Agile-friendly Use Cases are User Stories. But this only leads to more questions. Can we use both? If we do choose to use both User Stories and Use Cases, who authors which? And when?
Let’s start with the question that is often glossed over, ‘who writes what?’ If high-level Use Cases are written by the product owner, then who adds the detail when they are selected for an iteration? Some advise that the product owner should flesh out the Use Cases, but to do so would leave the development team with too little involvement in the discovery process.
It is an essential aspect of Agile development that requirements elaboration, whether via User Stories or Use Cases, is performed by the whole development team so that everyone, including coders and testers, have the chance to explore the problem space first hand. Of course, even if the product owner provides complete and detailed Use Cases, the development team could still engage the stakeholders to cement their own understanding; however, effort is then being duplicated, again undermining Agile principles.
Also, when the product owner provides full Use Cases, there is the risk of role separation, resurrecting the concept of departmental silos, a very un-Agile concept. So, rather than one person laboring over the use cases, the team, including the product owner, should work together to discover the details of all the requirements.
A strong argument for User Stories is that their simplicity makes it easier to involve users, essential in Agile development. On the other hand, a strong argument for Use Cases is that they offer a convenient structure for recording essential detail. The first benefit is important early in a project and the second is important later. This difference supports the argument that says if you do want to employ Use Cases, it is better to start the project with User Stories and then develop Use Cases from them later, as part of each iteration.
Agile User Stories | Agile Use Cases | ||
Strengths | Weaknesses | Strengths | Weaknesses |
Easy to write & change by users |
|
| Not so easy to write & change by users |
Easily understood by users |
|
| Not so easy to understand |
| Unsuited to detail | Good framework for detail |
|
Minimal documentation |
|
| Risk of too much documentation |
Easy to include acceptance criteria |
|
| Less suited to acceptance criteria |
Summary: Ideal for backlog | Summary: Ideal for development |
One other argument in favor of User Stories is that they can convey things a Use Case cannot. For example, non-functional requirements such as performance or scalability are difficult to fit into the Use Case format, whereas the informality of User Stories makes such inclusions easier.
The conclusion is that Use Cases offer value to Agile projects, not as a replacement for User Stories but as a way to expand on them once they are selected for the next iteration. The available literature on the subject seems to focus on the problematic use of strict Use Case formats when in fact, the important point is not what is done, but who does it.
You may also be interested in:
Use Cases and Scenarios
User Stories
Agile Myths - Part 2: User Stores, Use Cases and Requirements are all Totally Different
Documenting Requirements in Agile Projects
Ask an Inflectra expert:
And if you have any questions, please email or call us at +1 (202) 558-6885
SpiraTest combines test management, requirements traceability & bug-tracking
SpiraTeam brings your teams together, managing the entire application lifecycle
SpiraPlan lets you manage your programs and portfolio of projects like never before
Orchestrates your automated regression testing, functional, load and performance
The ultimate test automation platform for web, mobile, and desktop applications
The help desk system, designed specifically for software support teams
Cloud hosted, secure source code management - Git and Subversion
Exploratory testing capture tool that automatically records your testing activity
Let us deal with the IT pain so you don't have to. Or use on-premise if you prefer.
Our customers work in every industry imaginable. From financial services to healthcare and biotech to government and defense and more, we work with our customers to address their specific needs.
Our products do not enforce a methodology on you, instead they let you work your way. Whether you work in agile development, Scrum, XP, Kanban and Lean, Waterfall, hybrid, or Scaled Agile Inflectra can help.
If you want to learn more about application delivery, testing, and more take a look at our whitepapers, videos, background papers, blog, and presentations.
Our suite of Accelerators speed up your deployment and adoption of our products, increasing your return on investment and reducing the cost of ownership.
We collaborate with a wide range of organizations to bring our customers a range of services (including load testing, training, and consulting), complimentary technologies, and specialized tools for specific industries.
Learn how different organizations have benefited from using Inflectra products to manage their software testing and application develooment.
Outstanding support is the foundation of our company. We make support a priority over all other work. Take a look at our support policy.
Discover great tips, discussions, and technical solutions from fellow customers and Inflectra's technical experts.
If you can't find the answer you're looking for, please get in touch with us: over email, phone, or online.
We are constantly creating new videos to help customers learn about our products, including through in depth webinars, all freely available along with a wide selection of presentations.
We provide a number of resources to help customers learn how to get the most out of our products, with free online resources, virtual classrooms, and face to face.
Read about Inflectra, our manifesto, and values. Meet our incredible customers who are building awesome things, and our leadership team that are committed to building a great company.
The Inflectra Blog contains articles on all aspects of the software lifecycle.
In addition we have whitepapers,
background articles, videos and
presentations to help get you started.
Events are a big part of our awesome customer service. They are a chance to learn more about us, our products, and how to level up your skills with our tools.
We partner with educational institutions and individuals all over the world. We are also a great place to work and encourage you to explore joining our team.
Please contact us with your questions, feedback, comments, or suggestions. We'll get back to you as soon as possible.
When you need additional assistance (be it training, consulting, or integration services) our global certified solution provider partner network is ready to help.
At Inflectra, we are fully committed to provide our customers with the very best products and customer service. Check out some of our recent awards.
We want to help developers extend and customize our tools to fit in with their needs. We provide robust APIs, sample code, and open source projects.