Why this matters

Before we write code, we want to understand the real problem and how people work today. We collect facts from real events, turn them into job stories and user stories, and write acceptance criteria so we know when we are “done.”

NOTE

Mr. Gordon co-developed this text with ChatGPT, then edited it for clarity and length.

Step 1 – Stakeholder Interview

  • Ask for consent to take notes/record. Explain where notes will be stored.
  • Focus on real past events: “Tell us about the last time you did this task.”
  • Listen for pains, constraints (rules/policies), and what “success” looks like.
  • Roles during the interview: Interviewer, Note-taker, Timekeeper.
    Tip: Silence is okay–give time for thinking.

NOTE

Step 2 – Note-taking matrix

  • Capture short points and key quotes (use quotation marks).
  • Record Need/Pain, How often?, Impact, Constraints (rules/limits), and Opportunities/Ideas.
  • You can do this during the interview or after, using a transcript.

NOTE

Step 3 – Job stories

  • Job Story template: When (situation), I want to (motivation), so I can (outcome).
  • Choose a clear situation from your notes, then write the motivation and outcome.
  • Convert each Job Story into a User Story: As a (role), I want (goal), so that (value).
  • Key decisions during conversion: Who is the user/role? How will they complete the job?

NOTE

Step 4 – Acceptance criteria

  • Use Given–When–Then to describe behaviour we can verify.
    • Given (starting state) • When (action) • Then (result).
  • Start with typical behaviour (the “happy path”), then add edge cases.
  • Aim for small, testable stories (short, specific, and valuable).

NOTE

Deliverables

  • Interview notes (matrix) with at least 3 meaningful quotes.
  • 2–3 Job Stories and their User Stories.
  • Acceptance criteria for each User Story (at least the happy path).

Footnote – Ontario ICS4U tie-ins: This process primarily supports the Software Development strand (B) by planning with users, clarifying requirements, prioritizing features, and defining testable outcomes. It also strengthens Programming Concepts & Skills (A) through thinking about clear behaviour and testability, Designing Modular Programs (C) by breaking work into small, verifiable stories, and Topics in Computer Science (D) via ethical interviewing (consent, privacy) and consideration of real-world impacts.