An email from a client
You get this email from the manager of a sports club:
"Hello. Two people often book the same court at the same time. We call this a double booking. Members get angry. We need a simple tool for the desk staff. Members pay 4 pounds an hour and visitors pay 6. We have 2 badminton courts, open 9 in the morning to 9 at night. Can you help?"
What is the real problem? Who is it for? What do you still not know?
Key words
| Word | What it means | Example |
|---|---|---|
| Brief | The client's description of what they want. | the email above |
| Requirement | Something the solution must do. | Refuse a double booking |
| User | A person who uses the solution. | desk staff |
| Constraint | A limit you must keep to. | finish by Friday |
| Assumption | Something you decide is true because nobody told you. | A booking is 1 hour |
| Scope | What is inside the project and what is not. | No online payment |
| Success measure | A check that shows a requirement is met. | A booking takes under 2 minutes |
The cells students fill in are left blank in this preview.
Four boxes for every brief
Read the brief three times. Each time, look for one thing.
Read 1: the problem. Read 2: the users. Read 3: the needs and the limits. A limit is also called a constraint.
Put each answer in its own box. Then you can see what is missing.
The four boxes, filled in
| Box | Question | Answer for the sports club (Hillside) |
|---|---|---|
| Problem | What is going wrong? | Two people get the same court at the same time |
| Users | Who will use the tool? | Desk staff. Maybe members later |
| Needs | What must it do? | Book a court, refuse a double booking, show the price |
| Limits | What must the tool keep to? | 2 courts, open 9 to 9, simple to use |
The cells students fill in are left blank in this preview.
Quick check: which box?
Have a go
Quick check: which box?
4 questionsYour answers are marked here and are not kept. A college account keeps every student’s marks.
The email did not say everything
data-callouts.warning.label
How long is a booking? Can people book a week ahead? Does the tool take money? The email does not say. Do not keep a guess in your head. Write each guess down as an assumption. The reader can then see your thinking.
Try it: a requirements list in code
needs = {
"book a court": "must",
"refuse a double booking": "must",
"show the price": "must",
"cancel a booking": "should",
"send a text message": "could",
}
for name in needs:
print(name, "->", needs[name])
musts = 0
for name in needs:
if needs[name] == "must":
musts = musts + 1
print("Must have:", musts)
# Add one more need and run it again.
Must, should, could
You cannot always do everything. So put each need in a group.
Must: the tool does not work without it. Should: it is important, but the tool still works without it. Could: a good extra, if there is time.
Always do the musts first.