A Scalable Agile Practice to Capture Requirements
In some cases user stories are enough, but not when the number of user stories begins to grow, or when you develop enterprise systems for banks, insurance, telecom operations, defense or other large scale or regulated industries. If you do develop in these environments, you may be:
- wrestling with a big pile of technical stories but scrambling to see the big picture and associated business value
- drowning under the number of tiny stories in your backlogs and struggling to set priorities
- struggling to create and maintain easily accessible and lightweight documentation for support and maintenance
- finding it difficult to understand and manage your growing set of test assets.
- Slice the requirements to create well-formed product backlog items and drive iterative development
- Change the priority of what the customer wants at any time
- Capture their requirements just-in-time, and in just enough detail, to support their business goals
Things to Produce:
This practice involves the production of a number of requirements, design and test artifacts:
- A use-case based specification of the requirements, stories and test cases
- The realization of the use cases to drive the development of the software
- The generation of tests and test results to test the resulting system and record the results of the testing.
The Use-Case 2.0 Essentials practice requires the team to be skilled in software requirements capture, design, coding, integration and testing.The most important of these are the skills of the customer representative and the analyst as without these the wrong thing may well be developed and tested.
Things to Do:
The Use-Case 2.0 Essentials practice starts by finding actors and use cases, and selecting and prioritizing the parts (slices) of the use cases to be developed. It continues by detailing the use-cases slices and more importantly their tests, and then implementing software to meet the tests. It concludes by executing the tests, tracking progress in terms of verified, working software and feeding back the results in order to handle change and better support the team.