Use Case Driven Development
Use cases were first described by Ivar Jacobson in OOSE, a Use Case Driven Approach, published in 1992, and became a core component of UML in 1997.
Using the Recycling Machine example Jacobson took just 18 pages to explain the concepts and technique. Since then thousands more pages have been written (much with questionable value) as use cases became the de-facto standard for requirements definition.
Over the years use cases were often over-engineered , over-formalised and made over-complex with the focus on templates and style, rather than what was important, the content. However used pragmatically, use cases remain a powerful and relevant technique.
Why? Because each use case, each ellipse, represents a goal or need of the user of the system and describes, in a straight forward conversational style, how the user and system interact to meet that goal. Use cases therefore encourage the development team to really understand the user and their needs. Without this understanding the worth of any solution is questionable.
In recent years, user stories and use journeys, have emerged from the Agile community to challenge the use case’s position as the top tool in the analysts tool box. Their popularity is based on the simplicity of the approach and their informality (they’re the starting point for a conversation) which allows the users to play a more active part in the development process. Use Cases offer a richer set of considerations and as a consequence are more complex, but that said all the considerations remain valid to understanding the problem and synthesising a solution.
Whichever technique you use, having an understanding of use cases, the principles that underpin them, and the considerations they promote, is a must for anyone performing requirements analysis.
Our experience of use cases stretches back to 1993 when being handed a copy of Ivar Jacobson’s, OOSE, A Use Case Driven Approach, when looking for a way to drive object oriented development.
Since then we have adapted and applied use cases on a wide variety of engagements ranging from large integrated programmes through to small agile developments.
We have mapped use cases to business processes, to usability task analysis, to architectural patterns and to test plans.
We have employed use cases to define both IT solutions and to design and model business processes.
We have used use case point estimating to size and cost systems.
We have combined use cases and user stories to increase the value of both techniques and drive agile developments.
We have trained, coached and mentored, many many analysts, developers and testers in their use, most recently at moneysupermarket.com in 2009.
With 16 years experience of using the approach, on many different engagements and for many different organisations, we know the technique inside out.