CookbookWork and teamsNo. 34
A sprint bookthe goal, the board, the burndown and the retro, one document a sprint
See it in know.sh
Shiftwise sprintsNo. 41
Sprint 41shift swaps from the phone
6 sections, 1,540 words, about 7 minutes, revised Thursday 24 September, 8.50.
Goal. A carer can ask to swap a shift from their phone, and the home’s manager approves it in one tap. Monday 14 to Friday 25 September; 34 points committed, 3 added.
The board, Thursday morning
To do: the swap audit log, 3 points. In progress: blocking swaps that break the 11-hour rest rule, 8 points, and the swap screens’ copy, 2 points. Done: swap request, one-tap approval, the approval alert, swap limits, the accessibility pass and the rota-week bug.
- To do
- Swap audit log · 3, assigned to Wen, ticket SHF-216, low priority
- In progress
- Block swaps that break the 11-hour rest rule · 8, assigned to Priya, ticket SHF-215, very high priority
- Swap screens copy · 2, assigned to Marta, ticket SHF-219
- Done
- Swap request · 5, assigned to Tomás, ticket SHF-212
- One-tap approval · 5, assigned to Ade, ticket SHF-213
- Approval alert · 3, assigned to Tomás, ticket SHF-214
- Swap limits per month · 5, assigned to Ade, ticket SHF-217
- Accessibility pass · 3, assigned to Marta, ticket SHF-218
- Rota shows the wrong week · 3, assigned to Wen, ticket SHF-221, high priority
```element kanban
{
"caption": "The board, Thursday morning",
"description": "To do: the swap audit log, 3 points. In progress: blocking swaps that break the 11-hour rest rule, 8 points, and the swap screens’ copy, 2 points. Done: swap request, one-tap approval, the approval alert, swap limits, the accessibility pass and the rota-week bug.",
"columns": [
{
"label": "To do",
"cards": [
{
"label": "Swap audit log · 3",
"ticket": "SHF-216",
"assigned": "Wen",
"priority": "low"
}
]
},
{
"label": "In progress",
"cards": [
{
"label": "Block swaps that break the 11-hour rest rule · 8",
"ticket": "SHF-215",
"assigned": "Priya",
"priority": "very-high"
},
{
"label": "Swap screens copy · 2",
"ticket": "SHF-219",
"assigned": "Marta"
}
]
},
{
"label": "Done",
"cards": [
{
"label": "Swap request · 5",
"ticket": "SHF-212",
"assigned": "Tomás"
},
{
"label": "One-tap approval · 5",
"ticket": "SHF-213",
"assigned": "Ade"
},
{
"label": "Approval alert · 3",
"ticket": "SHF-214",
"assigned": "Tomás"
},
{
"label": "Swap limits per month · 5",
"ticket": "SHF-217",
"assigned": "Ade"
},
{
"label": "Accessibility pass · 3",
"ticket": "SHF-218",
"assigned": "Marta"
},
{
"label": "Rota shows the wrong week · 3",
"ticket": "SHF-221",
"assigned": "Wen",
"priority": "high"
}
]
}
]
}
```Burndown: story points left at the end of each day
| Day | Ideal | Left |
|---|---|---|
| Start | 34 points | 34 points |
| Mon 14 | 30.6 points | 34 points |
| Tue 15 | 27.2 points | 31 points |
| Wed 16 | 23.8 points | 31 points |
| Thu 17 | 20.4 points | 29 points |
| Fri 18 | 17 points | 26 points |
| Mon 21 | 13.6 points | 21 points |
| Tue 22 | 10.2 points | 18 points |
| Wed 23 | 6.8 points | 13 points |
| Thu 24 | 3.4 points | — |
| Fri 25 | 0 points | — |
Points from the team’s tracker at the close of each working day.
Burndown: story points left at the end of each day
| Day | Ideal | Left |
|---|---|---|
| Start | 34 points | 34 points |
| Mon 14 | 30.6 points | 34 points |
| Tue 15 | 27.2 points | 31 points |
| Wed 16 | 23.8 points | 31 points |
| Thu 17 | 20.4 points | 29 points |
| Fri 18 | 17 points | 26 points |
| Mon 21 | 13.6 points | 21 points |
| Tue 22 | 10.2 points | 18 points |
| Wed 23 | 6.8 points | 13 points |
| Thu 24 | 3.4 points | — |
| Fri 25 | 0 points | — |
Values: Points left
The value axis starts at 0 points.
Marked at Thu 17: Bug added, 3 points.
Source: Points from the team’s tracker at the close of each working day.
```element chart
{
"type": "line",
"caption": "Burndown: story points left at the end of each day",
"dimension": "Day",
"labels": [
{
"label": "Start"
},
{
"label": "Mon 14"
},
{
"label": "Tue 15"
},
{
"label": "Wed 16"
},
{
"label": "Thu 17"
},
{
"label": "Fri 18"
},
{
"label": "Mon 21"
},
{
"label": "Tue 22"
},
{
"label": "Wed 23"
},
{
"label": "Thu 24"
},
{
"label": "Fri 25"
}
],
"series": [
{
"name": "Ideal",
"values": "34, 30.6, 27.2, 23.8, 20.4, 17, 13.6, 10.2, 6.8, 3.4, 0"
},
{
"name": "Left",
"values": "34, 34, 31, 31, 29, 26, 21, 18, 13, , "
}
],
"units": "points",
"measure": "Points left",
"axisTitles": true,
"min": 0,
"markers": true,
"highlight": "Left",
"annotations": [
{
"axis": "x",
"at": "Thu 17",
"label": "Bug added, 3 points"
}
],
"source": "Points from the team’s tracker at the close of each working day."
}
```Thirteen points left, against an ideal of 10.2. The rest-rule check is the risk: Priya pairs with Wen on it today.
Sections
- 1Goal and commitmentsDecision
- 2Stand-up notes, week oneObservation
- 3The rota-week bug, pulled in on day fourProblemAfter midnight the rota showed next week’s shifts; swaps went to the wrong day.
- 4Stand-up notes, week twoObservation
- 5Review, 25 SeptemberObservation
- 6Retro, 25 SeptemberDecision, key
Sprint 41, Monday 14 to Friday 25 September
Two working weeks. Planning on Monday 14. Swap request, then one-tap approval and the approval alert, run through the first week and into the second. The rest-rule check runs the whole sprint and is critical. The rota-week bug joined on Thursday 17. Swap limits and the screen copy follow; the audit log is last. Review and retro on Friday 25.
| Task | Section | Starts | Ends | Status |
|---|---|---|---|---|
| Swap request | Build | 2026-09-14 | 4 days | Done |
| One-tap approval | Build | 2026-09-15 | 5 days | Done |
| Approval alert | Build | 2026-09-17 | 4 days | Done |
| Rest-rule check | Build | 2026-09-16 | 8 days | Active, critical |
| Swap limits | Build | 2026-09-18 | 4 days | Done |
| Accessibility pass | Finish | 2026-09-14 | 2 days | Done |
| Rota-week bug | Finish | 2026-09-17 | 2 days | Done |
| Screen copy | Finish | 2026-09-22 | 3 days | Active |
| Audit log | Finish | 2026-09-24 | 2 days | |
| Planning | Team | 2026-09-14 | 0 days | Milestone |
| Review and retro | Team | 2026-09-25 | 0 days | Milestone |
Left out: weekends. Weeks start on Monday.
```element gantt
{
"caption": "Sprint 41, Monday 14 to Friday 25 September",
"description": "Two working weeks. Planning on Monday 14. Swap request, then one-tap approval and the approval alert, run through the first week and into the second. The rest-rule check runs the whole sprint and is critical. The rota-week bug joined on Thursday 17. Swap limits and the screen copy follow; the audit log is last. Review and retro on Friday 25.",
"dateFormat": "YYYY-MM-DD",
"sections": [
{
"id": "build",
"label": "Build"
},
{
"id": "finish",
"label": "Finish"
},
{
"id": "team",
"label": "Team"
}
],
"tasks": [
{
"id": "plan",
"label": "Planning",
"section": "team",
"shape": "milestone",
"start": "2026-09-14",
"duration": "0d"
},
{
"id": "req",
"label": "Swap request",
"section": "build",
"shape": "bar",
"start": "2026-09-14",
"duration": "4d",
"status": "done"
},
{
"id": "appr",
"label": "One-tap approval",
"section": "build",
"shape": "bar",
"start": "2026-09-15",
"duration": "5d",
"status": "done"
},
{
"id": "alert",
"label": "Approval alert",
"section": "build",
"shape": "bar",
"start": "2026-09-17",
"duration": "4d",
"status": "done"
},
{
"id": "rest",
"label": "Rest-rule check",
"section": "build",
"shape": "bar",
"start": "2026-09-16",
"duration": "8d",
"status": "active",
"critical": true
},
{
"id": "lim",
"label": "Swap limits",
"section": "build",
"shape": "bar",
"start": "2026-09-18",
"duration": "4d",
"status": "done"
},
{
"id": "a11y",
"label": "Accessibility pass",
"section": "finish",
"shape": "bar",
"start": "2026-09-14",
"duration": "2d",
"status": "done"
},
{
"id": "bug",
"label": "Rota-week bug",
"section": "finish",
"shape": "bar",
"start": "2026-09-17",
"duration": "2d",
"status": "done"
},
{
"id": "copy",
"label": "Screen copy",
"section": "finish",
"shape": "bar",
"start": "2026-09-22",
"duration": "3d",
"status": "active"
},
{
"id": "log",
"label": "Audit log",
"section": "finish",
"shape": "bar",
"start": "2026-09-24",
"duration": "2d"
},
{
"id": "retro",
"label": "Review and retro",
"section": "team",
"shape": "milestone",
"start": "2026-09-25",
"duration": "0d"
}
],
"axisFormat": "%a %e",
"tickInterval": "1day",
"weekStart": "monday",
"excludes": "weekends",
"weekend": "saturday",
"today": "hidden"
}
```Shiftwise sprintsSprint 41
6of 6
Retro, 25 September
Decision, key section, 1 note, 360 words
Result. 34 of 37 points done, and the goal met: a carer can swap a shift from the phone and a manager approves it in one tap. The audit log carries over.
What sprint 41’s retro agreed
The audit log
Carry SHF-216 into sprint 42 at 3 points, first in the queue
Managers asked for it at the review; it is small and nothing else waits on it.
Work that joins mid-sprint
Only bugs that block the sprint goal
The rota-week bug earned its place: swaps were landing on the wrong day. Anything else waits for planning.
Also considered A fixed buffer of 5 points
Estimating rules work
Anything touching working-time rules starts at 8 points
The rest-rule check ran the whole sprint; the 11-hour rule has more edge cases than it looks.
Stand-up at 10.00
Move stand-up to 10.00
Ade and Marta take the care homes’ morning handover calls until 9.45.
Stand-up at 9.30
Daily at 9.30, fifteen minutes
Replaced by Stand-up at 10.00
Sprint length
Stay at two weeks
Revisit after sprint 43, once the Android release has settled.
Also considered One-week sprints
What sprint 41’s retro agreed
The audit log
✓ Decided 25 September
Choice: Carry SHF-216 into sprint 42 at 3 points, first in the queue
Reason: Managers asked for it at the review; it is small and nothing else waits on it.
Work that joins mid-sprint
✓ Decided 25 September
Choice: Only bugs that block the sprint goal
Reason: The rota-week bug earned its place: swaps were landing on the wrong day. Anything else waits for planning.
Also considered: A fixed buffer of 5 points
Estimating rules work
✓ Decided 25 September
Choice: Anything touching working-time rules starts at 8 points
Reason: The rest-rule check ran the whole sprint; the 11-hour rule has more edge cases than it looks.
Stand-up at 10.00
✓ Decided 25 September
Choice: Move stand-up to 10.00
Reason: Ade and Marta take the care homes’ morning handover calls until 9.45.
Stand-up at 9.30
⊘ Superseded 14 August
Choice: Daily at 9.30, fifteen minutes
Replaced by: Stand-up at 10.00
Sprint length
○ Open
Choice: Stay at two weeks
Reason: Revisit after sprint 43, once the Android release has settled.
Also considered: One-week sprints
```element decisions
{
"caption": "What sprint 41’s retro agreed",
"decisions": [
{
"title": "The audit log",
"status": "decided",
"date": "2026-09-25",
"choice": "Carry SHF-216 into sprint 42 at 3 points, first in the queue",
"reason": "Managers asked for it at the review; it is small and nothing else waits on it."
},
{
"title": "Work that joins mid-sprint",
"status": "decided",
"date": "2026-09-25",
"choice": "Only bugs that block the sprint goal",
"reason": "The rota-week bug earned its place: swaps were landing on the wrong day. Anything else waits for planning.",
"alternatives": [
{
"option": "A fixed buffer of 5 points"
}
]
},
{
"title": "Estimating rules work",
"status": "decided",
"date": "2026-09-25",
"choice": "Anything touching working-time rules starts at 8 points",
"reason": "The rest-rule check ran the whole sprint; the 11-hour rule has more edge cases than it looks."
},
{
"title": "Stand-up at 10.00",
"status": "decided",
"date": "2026-09-25",
"choice": "Move stand-up to 10.00",
"reason": "Ade and Marta take the care homes’ morning handover calls until 9.45."
},
{
"title": "Stand-up at 9.30",
"status": "superseded",
"date": "2026-08-14",
"choice": "Daily at 9.30, fifteen minutes",
"supersededBy": "Stand-up at 10.00"
},
{
"title": "Sprint length",
"status": "open",
"choice": "Stay at two weeks",
"reason": "Revisit after sprint 43, once the Android release has settled.",
"alternatives": [
{
"option": "One-week sprints"
}
]
}
]
}
```How it works
At stand-up the whole team looks at one page: the sprint goal in a sentence, the board in three columns, and the burndown against the ideal line. Your assistant redraws the board and adds the day’s points; the retro’s calls go in a decisions register, so sprint 42 remembers what sprint 41 agreed.