Agile for Game Teams, the Vertical Slice, and Sprint 1
▶ PRESS START
Lucas P. Cordova, Ph.D.
Willamette University | Thursday, October 8, 2026
Tonight, 9:59 PM: the proposal. PDF uploaded to Canvas by each member, the same PDF committed at docs/proposal.pdf, and a short PROPOSAL.md at the repo root. Thursday, October 15: the prototype gate. Tuesday, October 20: Lab 4.
Each team's two stakeholders.
| The deal | |
|---|---|
| Who | Two classmates from two other teams, serving your game for the whole semester. |
| When | Three review gates only: prototype (Oct 15), alpha (Nov 5), beta (Nov 19). They play the build in class and write structured feedback. |
| Your job back | Answer every note in your next sprint report: adopt, adapt, or decline, each with a reason. |
| Graded on | The feedback you give to the game you serve: 10% of the course grade. Specific, insightful, useful. |
| The math | Six games, twelve roles. Every student serves exactly one game that is not their own. |
A stakeholder is your game's client and its critical friend. Your proposal is written for them.
With ten students and four games, two games get a third stakeholder.
| Game | Team | Player 1 | Player 2 | Player 3 |
|---|---|---|---|---|
| ……………… | Sophie, Tegan | ……………… | ……………… | ……………… |
| ……………… | Laken, James | ……………… | ……………… | ……………… |
| ……………… | Adrian, Nathaniel, Roman | ……………… | ……………… | ……………… |
| ……………… | Ryan, Evan | ……………… | ……………… | ……………… |
Two minutes, right now:
Sprints, backlogs, and the vertical slice
Agile, in one sentence: make the loop between plan and playable short enough to catch the drift while it is still cheap to fix [1][2].
A sprint is a fixed timebox with one goal. It ends with something playable and a short report: what shipped, what slipped, what you learned, and the plan for the next one [1].
| Sprint | Dates | The goal | Gate inside it | Report due |
|---|---|---|---|---|
| SPRINT 1 | Oct 8 to Oct 22 | A playable vertical slice | Prototype, Thu Oct 15 | Thu Oct 22 |
| SPRINT 2 | Oct 22 to Nov 12 | Every MUST in, or formally cut | Alpha, Thu Nov 5 | Thu Nov 12 |
| SPRINT 3 | Nov 12 to Dec 1 | All content in, balance in data | Beta, Thu Nov 19 | Tue Dec 1 |
| FINAL | Dec 1 to Dec 11 | Showcase build, public release | Showcase, Thu Dec 3 | Postmortem, Dec 11 |
The gate sits inside the sprint: the first week ships the build, the second week answers the stakeholder notes.
The backlog is the ordered list of everything the game might need, written as things a player can do. Top of the list is what you build next; the bottom may never happen.
Player can dash through a one-tile gap Done when: - dash is a state in the controller FSM - a 1-tile gap in level.tscn is passable only by dashing - my teammate pulled main and did it without me
One item fits in one sitting. If it does not, split it. Done means it runs on main from a fresh clone.
A vertical slice is one thin cut through every layer of the game: input, the core loop, a way to win or lose, and a restart. Playable start to finish. Ugly allowed [2].
| Wide and shallow | Thin and deep |
|---|---|
| A title screen, a settings menu, a pause menu, four mazes drawn in tiles, and nothing that chases you. | One grey maze. Blitz moves. Berries count. One rival chases. Caught, then Space to restart. |
| Every system started. Nobody has played the game. | Every system touched once. Anyone can play the game today. |
The Prototype line in your proposal is your vertical slice. The prototype gate grades exactly that cut.
Fingers up, no talking. Three teams push on October 15. Which build passes the prototype gate?
1: a complete menu flow (title, settings, credits) and finished pixel art for all four rivals. No maze yet.
2: one grey maze, a placeholder Blitz, a berry counter, one rival that chases, caught and restart.
3: all four mazes drawn in tiles. Blitz walks through every one of them. Nothing chases, nothing counts.
The gate asks one question: can a stakeholder play a meaningful session of your loop, unassisted, for a minute of real decisions?
| Who sets it | Can it move? | |
|---|---|---|
| Time | The gates. Oct 15, Nov 5, Nov 19, Dec 3. | FIXED |
| Quality of the loop | Your stakeholders and your players, by playing it. | FIXED |
| Scope | You, every sprint, out loud. | THE KNOB |
Behind? Cut scope, keep the date. First a WANT comes off the sprint. Then a MUST moves to WANT, declared in the sprint report with a reason. The date stays where it is, because the stakeholders are coming either way.
A feature that is 90% done counts for zero at a gate. A stranger either can play it or cannot.
project.godot, press play, and the README says which keys.Same test as the gate: can a stranger play it? Write it on the board over your sprint board and never argue about done again.
Issues, a board, and owners, on your laptops
The prototype gate, Thursday, October 15, 9:59 PM. Stakeholder Review 1 plays whatever is pushed by 9:40 AM that morning.
| The gate grades | Points |
|---|---|
| Core loop playable: a stakeholder plays a real session of the loop unassisted | 200 |
| Controller quality: an explicit state machine matching the proposal's table, or a documented revision | 75 |
| Scope trajectory: what exists matches the proposal's Prototype line; MUSTs on track | 75 |
Runnable by anyone: clone, open, play; README instructions; the prototype tag placed | 75 |
| Team process: both members in the history, sensible commits | 75 |
Sprint 1's goal, in one line: the vertical slice, playable by a stranger, tagged prototype.
| Vague | A sprint can build this |
|---|---|
| Make the game | Player can move between platforms with the FSM controller |
| Art | Blitz has a placeholder sprite that faces the way she moves |
| Enemies | One rival patrols two waypoints and chases within sight range |
| Fix stuff | Getting caught shows a banner and Space restarts the maze |
must or want, plus sprint-1 if it is in the slice. One assignee.On github.com, in your team repo:
must. Pick any color. Click Create label.want and for sprint-1. Three labels total.Labels are the MUST / WANT split from your proposal, now attached to work instead of prose. sprint-1 marks the slice.
One issue per MUST, then per slice item:
Player can .... Body: Done when: and two to four bullets.must or want. Tick sprint-1 only if the prototype needs it.An issue with two assignees has no owner. An issue with no Done when can never be closed with a straight face.
Five to eight issues is the right size for a two-week sprint with a gate in the middle.
A Sprint 1 board for the repo:
Sprint 1. Click Create project.#, and pick each sprint-1 issue from the list. One at a time, every slice issue.SPRINT 1, THURSDAY NIGHTTodo Doing Done #3 move #1 arena #4 berries #5 rival #6 caught
Cards move right as branches merge. Done on this board means the four-part definition of done.
Twenty minutes, with your teammate, both laptops:
sprint-1 only what the Prototype line needs. Everything else waits.feature/<number>-<slug>, from last Thursday's git pact.Round clear: show me the board. Side quest: write the README's How to Run section now, before there is anything to run.
Walk the board, then put your initials up when every slice issue has an owner and a Done when.
| On the board | What it means, and the fix |
|---|---|
| An issue called Build the game | That is the backlog in one card. Split it until each title names one thing a player can do. |
| Every card on one name | One teammate ships and one watches. Reassign until both have week-one work. |
Twelve cards labeled sprint-1 | That is the whole MUST list. The slice is the few cards a stranger needs to play the loop once. |
| A slice card that needs art first | Placeholder it. A ColorRect plays exactly like a sprite at the prototype gate. |
| Cards with no Done when | Nobody can close them. Write the test now, while it is cheap. |
| No card for the README or the tag | Add two: Anyone can clone and play, and Tag prototype. Both are graded. |
Due Thursday, October 22, the second Thursday of Sprint 1. Short. Pulled straight from the board.
| Section | Where it comes from |
|---|---|
| Shipped | The Done column: closed issues, as a changelog. |
| Slipped | Cards still in Todo or In Progress, each with one line on why. |
| Learned | Stakeholder Review 1 and any playtest: what you saw people do. |
| Feedback log | FEEDBACK.md: every stakeholder note marked adopt, adapt, or decline, with a reason. |
| Next sprint | The Sprint 2 board, already built, and any MUST that moved to WANT. |
Alongside each report, every student files a peer evaluation of their teammate's contribution. The commit history is the evidence.
How to be a stakeholder worth having
You are graded on specificity, insight, and usefulness. "Jumping feels bad" scores low. "I pressed jump at the ledge three times and fell each time; the window may be too short" scores high.
| Write | |
|---|---|
| 1 Play log | Three lines: what you tried, what happened, where you ended up. |
| 2 The moment | The one moment the loop worked on you. Be exact about when. |
| 3 The wall | Where you got stuck or confused, and what you expected instead. |
| 4 The question | One question about the loop that the team must answer to reach alpha. |
| 5 The plan check | Does the build match the proposal's Prototype line? What should they build next, and what should they drop? |
Five parts, written on the Canvas review form during Thursday's session, one per stakeholder. The team gets both notes the same day.
The team answers every note in FEEDBACK.md before the next sprint report. Three verbs, each with a reason.
| Verb | Means | Example |
|---|---|---|
| ADOPT | We will do exactly this. | Adopt: the jump window grows to 0.15 s. Issue #12. |
| ADAPT | We will address the problem a different way. | Adapt: instead of a longer window, coyote time. Issue #13. |
| DECLINE | We will leave it, and here is why. | Decline: the hard jump is the aesthetic (Challenge). Playtest 10/29 will confirm. |
Declining with a reason is a complete answer. Ignoring a note is the only wrong one.
docs/proposal.pdf for the game you serve. It lands tonight.Your own team is on the other side of the same table. Plan the morning so both of your games get played.
What you know now
Tonight 9:59 PM: proposal PDF in Canvas and at docs/proposal.pdf, plus PROPOSAL.md. Tue Oct 13: playtesting. Thu Oct 15: prototype due 9:59 PM, Stakeholder Review 1 in class. Tue Oct 20: Lab 4 due 9:59 PM, Lab 5 assigned.