Use Cases, Scenarios and CRC Cards -- What Are They, and How Are They Used?
Let us start with a look at the problem we are trying to solve: building complex software. Developing complex software systems is hard. Besides the inherent complexity of the problem, there are often many people involved, which increases the potential communications paths geometrically. Occasionally the system is something novel, never before built, so referring to prior art is not an option. Because it is something new, there are often new tools and processes involved. The associated learning curve is always underestimated. Most importantly is the problem of knowing what to build - what are the requirements?