Year 8 · Summer 2

Raid: App Forge · Lesson 1 of 5

Writing a design brief from user needs

TheoryTopic 14 Programming furtherTopic 11 Algorithms

Year 8 · Raid: App Forge · Lesson 1 of 5

You will learn to

  • Explain what a design brief is, and why it comes before any code.
  • Use open interview questions to find out a partner's real problem.
  • Write a brief with a user, a problem, three features and a success list.
  • Identify which features the app must have and which can wait.

Year 8 · Raid: App Forge · Lesson 1 of 5

Success criteria

You have got it when you can say:

  • I can ask open questions and write down what my partner says.
  • I can write a brief that names one user and one problem.
  • I can write a success list where every line can be checked with yes or no.

Year 8 · Raid: App Forge · Lesson 1 of 5

Retrieval starter

Questions from before. Write your answers, then show them.

  1. Last unit

    Bubble sort compares…

    A The first and last itemsB Random pairsC Neighbours

    C. Neighbours

  2. Last unit

    A linear search on 50 unsorted items, looking for something that is not there, makes…

    A 1 checkB 25 checksC 50 checks

    C. 50 checks

  3. Earlier this year

    The web and the internet are…

    A The web is a service that runs on the internetB The same thingC The internet runs on the web

    A. The web is a service that runs on the internet

Year 8 · Raid: App Forge · Lesson 1 of 5

Key words (1 of 4)

List
One name holding many values in order. Also called an array.
Index
An item's position in a list, counting from 0.
Subroutine
A named block of code you can call when needed.
Function
A subroutine that returns a value.

Year 8 · Raid: App Forge · Lesson 1 of 5

Key words (2 of 4)

Parameter
A placeholder in a subroutine for a value passed in.
Validation
Checking input is reasonable before using it.
Boundary data
Test data at the very edge of what's allowed.
Algorithm
Precise, ordered, finite steps to solve a problem.

Year 8 · Raid: App Forge · Lesson 1 of 5

Key words (3 of 4)

Decomposition
Breaking a problem into smaller ones.
Abstraction
Ignoring detail that doesn't matter for the problem.
Sequence · selection · iteration
Steps one after another. First this, then this.
Pseudocode
Code-like writing for algorithms, without strict rules.

Year 8 · Raid: App Forge · Lesson 1 of 5

Key words (4 of 4)

Trace table
Records variable values step by step to check logic.
Variable
A named place in memory that holds a value.

The explanation · step 1 of 4 · part 1 of 2

Start with the user, not the app

A user is the person who will use your app.

A design brief is a short plan. It says who the app is for, what problem it solves and what it must do.

Write the brief before any code. It stops you building something nobody needs.

e.g.Example

'I want to make a cool app' is an idea. 'New Year 7 pupils keep forgetting which room their lesson is in' is a problem. Start with the problem.

The explanation · step 1 of 4 · part 2 of 2

Start with the user, not the app (continued)

?Why?

Why not just start building?

Changing a plan takes a minute. Changing a finished app can take days.

The explanation · step 2 of 4 · part 1 of 2

Interview your user

An interview is a short chat. You ask questions and write down the answers.

Question typeWhat it isExample
OpenNeeds a full answer'Tell me about the last time you lost your timetable.'
ClosedNeeds only yes or no'Do you lose your timetable?'
  • Ask mostly open questions.
  • Ask about what really happened, not what they might want.
  • Write down their words, not yours.
  • Do not pitch your app idea yet. Just listen.

The explanation · step 2 of 4 · part 2 of 2

Interview your user (continued)

★Remember

Start with 'Tell me about the last time…'. Real stories show the real problem.

The explanation · step 3 of 4 · part 1 of 2

Write the brief

PartThe question it answersExample: the timetable app
UserWho is it for?Year 7 pupils who are new to the school
ProblemWhat goes wrong for them now?They forget which room each lesson is in, so they arrive late
FeaturesWhat will the app do? Three things at most.Show today's lessons and rooms. Choose another day. Show a PE kit reminder.
Success listHow will we know it works?See the list below

The success list says what 'finished' looks like. Each line can be checked: yes or no.

The explanation · step 3 of 4 · part 2 of 2

Write the brief (continued)

  1. A pupil can see today's lessons in under 10 seconds.
  2. Each lesson shows its room.
  3. The pupil can change the day.
  4. Three Year 7 testers find their next room without help.
!Watch out

Three features is plenty. A small app that works beats a big app that does not.

The explanation · step 4 of 4 · part 1 of 2

Must have or nice to have

You will have more ideas than time. Sort every idea into two groups.

  • Must have: the app is useless without it.
  • Nice to have: build it only if there is time left.
e.g.Example

Timetable app. Must have: show the lessons and rooms. Nice to have: a dark mode, sounds, a map of the school.

The explanation · step 4 of 4 · part 2 of 2

Must have or nice to have (continued)

★Remember

Build every must-have first. Only then start a nice-to-have.

Year 8 · Raid: App Forge · Lesson 1 of 5

Worked example (1 of 2)

Your partner says: 'I always forget my homework. I write it in my planner, then I never look at it.' Turn this into a brief.

  1. User: a Year 8 pupil who writes homework in a planner but forgets to check it.
  2. Problem: the homework is written down but missed, because nothing reminds them.
  3. Features: add a homework task; see all tasks in a list; tick a task off when it is done.
  4. Success list: adding a task takes under 30 seconds. A tester can add and tick off a task without help.

Year 8 · Raid: App Forge · Lesson 1 of 5

Worked example (2 of 2)

Your partner says: 'I always forget my homework. I write it in my planner, then I never look at it.' Turn this into a brief.

  1. Nice to have: a reminder the day before. Build it only if there is time.

Year 8 · Raid: App Forge · Lesson 1 of 5

Quick quiz · 1 of 3

In ["a", "b", "c"], the index of "c" is…

  1. A c
  2. B 2
  3. C 3

B. 2

Counting starts at 0: a = 0, b = 1, c = 2.

Year 8 · Raid: App Forge · Lesson 1 of 5

Quick quiz · 2 of 3

word = "Python". What is word[1:4]?

  1. A "ytho"
  2. B "Pyth"
  3. C "yth"

C. "yth"

Start at index 1 (y), stop before index 4 (o): y, t, h. That's 4 − 1 = 3 characters.

Year 8 · Raid: App Forge · Lesson 1 of 5

Quick quiz · 3 of 3

In def area(w, h): … and a = area(4, 3), which are the arguments?

  1. A w and h
  2. B 4 and 3
  3. C area and a

B. 4 and 3

Arguments are the actual values passed in the call. w and h are parameters.

Year 8 · Raid: App Forge · Lesson 1 of 5

Exit ticket

Answer on paper before you go. Then check.

  1. A variable made inside a function is…

    A Global: usable anywhereB Saved to a fileC Local: only exists inside it while it runs

    C. Local: only exists inside it while it runs Local variables are wiped when the function returns.

  2. Testing a 0–50 range with 50 is…

    A Erroneous dataB Normal dataC Boundary data

    C. Boundary data It's right at the edge of what's allowed.