Dean Leffingwell, author of Scaling Software Agility and Chief Product Methodologist at Rally, has concluded that Use Cases can be a valuable tool to model requirements for a large-scale Lean/Agile Project. Use cases are not commonly encountered in Lean/Agile (especially XP and Scrum), where stories are the requirements gathering tool of choice, but Leffingwell notes:
... when building systems of scale, there is no tool quite so powerful as a use case for exploring the interactions amongst users, the systems, and the subsystems of the solution. Moreover, the use-case technique is the best way I know to help identify all the alternate scenarios that trip us so often when it comes to system level quality and readiness.
In both his book and blog, Leffingwell has developed a set of models and meta-models to assist developers in the application of Lean and Agile practices to large scale projects. The absence of any mention of Use Cases in his 'Agile Enterprise Requirements Information Model' was called to his attention by a reader and former colleague. Leffingwell attributed the omission of use cases to two primary factors: their close association with RUP and not Agile coupled with his own possible pro-RUP bias; and, several examples of advise to avoid use cases as "too detailed and not understandable by customers."
Ultimately, Leffingwell came to the conclusion, "While use cases are not a replacement for the user story in agile development, they can be of tremendous benefit in elaborating, analyzing and better understanding the intended behavior of complex systems." Accordingly, use cases have been added to Leffingwell's model as an optional means for elaborating backlog items.
- Use cases are optional but can add tremendous value to understanding behavior when the system is complex;
- Use cases help teams understand all the 'what if' scenarios that ultimately affect system quality;
- Use cases can be used to understand where new stories are likely to be found;
- and, Use cases can provide a logical way to sequence value delivery in big systems, story by story.
It is important to note that the rationale for including Use Cases in an Agile model is primarily driven by the need to address issues of scale and that use cases remain an optional requirements elaboration tool.
As of this writing, there has been no response to Leffingwell's modification of his model. It will be interesting to see if he has addressed his reader's concerns and if other users of his model find this addition useful.