Use Cases in Agile Development
Use cases are considered by many people to be a technique used solely in traditional predictive software development approaches, and not compatible with agile. However, agile is neutral regarding requirement techniques, and it does not mandate any particular way of eliciting and recording requirements. In agile, requirements are stored in a product backlog, which is the prioritized list of items that deliver value. Contrary to widespread misunderstanding, it is not prescribed what items can be put into the product backlog, as long as the items are articulated in a way that is clear and sustainable. Agile does not state what artifacts a team must produce (it would not be agile anymore); it just recommends not detailing artifacts too much upfront so the team is prepared to respond to changes. As a result, the product backlog might also be built up using use cases.
Use Cases Vs. User Stories
First, let's clarify the common misinterpretation that user stories are agile while use cases are not. Even though most agile methodologies take user stories as the core agile requirements analysis technique, it does not mean that other techniques are not agile enough. A user story is just a specific form of user requirement—nothing more, nothing less. User stories are suitable to be easily used in traditional software development, just as light-weight use cases can be used in agile. Regardless of the selected software development approach, sometimes you need to describe the scenario of how the system is going to be used, so you write a use case, and sometimes you need to describe a need from the user's perspective, so you create a user story.
- User story (what I need): As an employee, I need to book a shared desk in advance so that I don't need to wander around the open space and search for a free spot
- Derived use case (what I want the system to enable me to do): Book Shared Desk (enables the user to book a shared desk in advance so that he or she doesn't need to wander around the open space and search for a free spot)
In the context of software development, both user stories and use cases serve the same purpose – they capture system requirements, yet they both do it in a slightly different way. User stories define the needs the system must help meet, whereas use cases describe what the user can actually do with the system. User stories serve as feature placeholders waiting to be elaborated in detail just-in-time, while use cases are more detailed and define more information upfront. On the other hand, even use cases can be analyzed iteratively, starting with the name and adding details incrementally. Agility is not about which technique is used, but how it is used.
Benefits of Use Cases in Agile Environments
Agile projects are no different from standard projects in terms of the need to understand what the system should be capable of. Regardless of the selected software development approach, an analyst must create a concise summary of what the system will offer to roughly plan the project, prioritize and estimate the effort, and allocate the team. Even agile teams must come to an agreement on what the system will basically do at a level of detail that user stories are not able to provide. So apart from very simple applications, user stories are never the only analytical output. The necessary details can be provided by use cases, which is why even agilists still use them.

