01 — Sprint Cadence

Thirteen months is 26 fortnights. Call them S1 through S26. Four of those 26 are buffer sprints — reserved, non-negotiable, do-not-plan-work-into-them. You get 22 working sprints to deliver a career-shifting body of C work. That is your unit of time. Not “the month,” not “when I have time.” The two-week sprint.

If you cannot ship something in two weeks, the goal was wrong, not you.

The sprint shape

Each sprint is exactly 14 days, Monday-of-week-1 to Sunday-of-week-2. It has:

  • A Monday kickoff (30 min, written down)

  • 11 working days (roughly 10–15 hours total for you)

  • A Sunday retro (30 min, written down)

  • One public-facing shippable — a commit, a blog post, a PR, a benchmark report, something with a URL you can send to a stranger

The no-sprint-with-no-deliverable rule is the entire rule. If a sprint has no deliverable, the sprint failed even if you learned things. Learning without artifact does not compound.

Sprint kickoff template

Copy this into a sprint_SNN.md at sprint start. Monday morning. Before the week eats you.

# Sprint SNN — YYYY-MM-DD to YYYY-MM-DD

## The 3 outcomes (must-ship)
1. …
2. …
3. …

## The 1 stretch (nice-to-ship, does not block retro success)
- …

## Buffer hours estimated: __ h
(actual expected work-hours across 14 days; be honest)

## Risks I already see
- …
- …

## The one shippable
By Sunday of week 2, the artifact I will send to a stranger is: …

Three outcomes, not five. Not seven. If you cannot pick three, you are avoiding the picking. Pick three.

Sprint retro template

Copy this into the same file, Sunday of week 2, in the evening. Not next Tuesday.

## Retro (Sunday YYYY-MM-DD)

### What actually shipped
- …

### What slipped and why
- …

### The delta between plan and reality (hours)
Planned: __ h · Actual: __ h · Delta: __ h

### One thing to change next sprint
…

### Was the shippable public? (link)
…

### Energy check (1–5): __
### Body check (1–5): __

The energy and body check exist so that when you look back at S12 and see three consecutive 2/5 body scores, you know the burnout was not surprise — you logged it and ignored it.

The buffer sprint rule

Four sprints of the 26 are reserved. They are:

  • S7 (mid-M4) — after the first hard stretch on memory/pointers

  • S13 (start of M7) — the Valley of Despair mid-point

  • S20 (mid-M10) — post-project depletion, pre-study-prep

  • S25 (start of M13) — before the final portfolio consolidation

A buffer sprint has ONE outcome: rest, read, walk, tidy the notebook, write one small reflective post. It is not a “catch-up sprint.” If you use it to catch up, you have already lost the reserve. Protect it.

Sample: S1–S4 for the C roadmap (M1 concrete)

Sprint

Dates (2026)

3 outcomes

Shippable

S1

Jul 06 – Jul 19

Toolchain up (gcc/clang/make/gdb/valgrind on Mac + Linux VM); K&R Ch 1–2 exercises done; write hello_c_again.md blog post on why you’re doing this

Blog post published + GitHub repo initialized

S2

Jul 20 – Aug 02

K&R Ch 3–4; first small utility (wc clone) with test cases; set up lab notebook

wc-clone repo with README + tests

S3

Aug 03 – Aug 16

K&R Ch 5 (pointers) — slow, do every exercise; predict-then-measure notebook entries ≥ 3; refresh gdb muscle memory

Blog post: “3 pointer mistakes I made this week”

S4

Aug 17 – Aug 30

K&R Ch 6–7 (structs, I/O); ship wc-clone v2 with -l, -w, -c flags and man-page-quality README

Public v1.0 tag on wc-clone

Notice: every sprint has a URL-able artifact. Notice: S3’s deliverable is a blog post, not code — teaching counts. Notice: the ambition is small. Small and shipped beats grand and unfinished. Repeat that until you believe it.

The one rule that outranks all others

If a sprint ends without a shippable, do not roll the outcomes into the next sprint. Cut them. The next sprint gets fresh, honest, smaller scope. Otherwise sprint N+1 arrives already 40% behind, and sprint N+2 arrives 80% behind, and by S6 you are running a fantasy calendar. Cut and reset. That is discipline.


Return to README.md · Next: 02_lab_notebook.md