Introducing the Use Case
How do you tell your story to a technical person? How do you shed light on real life? How do you make it easy for technologists to build you a truly useful machine?
Well you don't have to start with a blank page. There are plenty of published frameworks out there to help you structure your thoughts.
To illustrate let's examine a framework for a "use case".
A use case describes an interaction between a user and a system that produces some useful outcome. For example: withdrawing money from an automatic teller machine.
We construct our use case by answering a series of questions.
Who's involved?
What is to be achieved?
What conditions need to be in place before the interaction can start?
What conditions indicate successful completion?
What is the normal course of the interaction?
Are there any alternative courses of interaction?
What could go wrong?
Do any business rules apply?
Do any non behavioural requirements apply?
Are we assuming anything?
So there you have it. The use case framework shines when you need to describe heavy interaction between a user and a system. It is not suited to describing complex algorithms like the ones you find in automated stock trading. Which isn't a problem unless you're a stock broker.
So the trick is to learn the frameworks that apply to your application domain and use them to tell more compelling stories to the builders of your special machine.