The 26-Sprint Calendar¶
Two-week sprints, Monday start / Sunday close. Twenty-six total sprints across 13 months. Four buffer sprints reserved (S6, S13, S20, S26). Buffer sprints are not “lighter work weeks” — they are slippage-absorption weeks with a hard rule: if you’re on track, rest; if you’re behind, catch up; never plan new work into them.
Each sprint has: number, week span, calendar dates, primary phase, primary deliverable, learning load target (hours), and a lab-notebook expectation. The slippage log at the bottom is where reality gets recorded.
The Full Calendar¶
Sprint |
Weeks |
Dates |
Phase |
Primary deliverable |
Load (hrs) |
Lab-notebook expectation |
|---|---|---|---|---|---|---|
S1 |
W1–W2 |
2026-07-06 → 2026-07-19 |
0 |
Toolchain installed; 8 syntax drills complete |
20–25 |
Predict/measure entry per drill |
S2 |
W3–W4 |
2026-07-20 → 2026-08-02 |
0 |
Rung 1 |
20–25 |
“What surprised me returning to C++” post-mortem |
S3 |
W5–W6 |
2026-08-03 → 2026-08-16 |
1 |
RAII + move semantics read; LRU cache started |
20–25 |
Sanitizer output diary |
S4 |
W7–W8 |
2026-08-17 → 2026-08-30 |
1 |
LRU cache complete; benchmark table honest |
BUFFER W7 + 15 |
LRU predict-vs-measured entry |
S5 |
W9–W10 |
2026-08-31 → 2026-09-13 |
1 + 2 (DSA on) |
Templates + concepts; JSON parser started; DSA daily habit |
25 |
First 15 NeetCode solutions in C++ |
S6 |
W11–W12 |
2026-09-14 → 2026-09-27 |
1 + 2 |
Rung 2 |
25 |
Sprint retro: Phase 1 exit |
S7 |
W13–W14 |
2026-09-28 → 2026-10-11 |
2 |
Rung 3 |
20–25 |
Pattern-recognition entries |
S8 |
W15–W16 |
2026-10-12 → 2026-10-25 |
2 |
60/150 NeetCode; graphs+DP begun |
20 |
Diwali-adjusted, plan a light sprint |
S9 |
W17–W18 |
2026-10-26 → 2026-11-08 |
2 |
90/150 NeetCode; study simulation practice |
20–25 |
First timed mock study log |
S10 |
W19–W20 |
2026-11-09 → 2026-11-22 |
2 + 3 (memory) |
Rung 4 |
BUFFER W20 + 15 |
“Valley of Despair mid” journal entry |
S11 |
W21–W22 |
2026-11-23 → 2026-12-06 |
3 + 4 (CMake) |
Memory model + threads read; P3.1 SPSC ring buffer |
20–25 |
TSan output diary |
S12 |
W23–W24 |
2026-12-07 → 2026-12-20 |
3 + 4 |
P4.1 reference C++20 project template; CMake fluent |
20–25 |
“CMake mistake I made” ledger |
S13 |
W25–W26 |
2026-12-21 → 2027-01-03 |
3 + 4 |
BUFFER SPRINT; if on track: rest; if behind: catch up |
BUFFER 10–15 |
Year-end review; write M1–M6 retrospective |
S14 |
W27–W28 |
2027-01-04 → 2027-01-17 |
3 finish → 5 |
Rung 5 |
25 |
First Eigen program vs NumPy diff |
S15 |
W29–W30 |
2027-01-18 → 2027-01-31 |
5 |
P5.1 Eigen MLP MNIST ≥95% |
25–30 |
Predict-measured accuracy log |
S16 |
W31–W32 |
2027-02-01 → 2027-02-14 |
5 |
P5.2 pybind11 wrap of P5.1 on Test PyPI |
25 |
Wheel-build log; pybind11 gotcha ledger |
S17 |
W33–W34 |
2027-02-15 → 2027-02-28 |
5 |
P5.3 ONNX Runtime inference server (local) |
BUFFER W33 + 15 |
ORT vs LibTorch decision entry |
S18 |
W35–W36 |
2027-03-01 → 2027-03-14 |
5 finish → 6 |
🟧 Rung 6 |
30 |
Hard-gate ship entry; blog draft |
S19 |
W37–W38 |
2027-03-15 → 2027-03-28 |
6 |
gRPC + Drogon read; P6.1 gRPC service started |
25 |
gRPC async-vs-callback decision |
S20 |
W39–W40 |
2027-03-29 → 2027-04-11 |
6 |
Prometheus + OTel wired; first Grafana dashboard |
BUFFER W40 + 15 |
India fiscal-Q4 Zoho creep check-in |
S21 |
W41–W42 |
2027-04-12 → 2027-04-25 |
6 |
P6.2 observability harness end-to-end |
25 |
Trace vs log vs metric decision matrix |
S22 |
W43–W44 |
2027-04-26 → 2027-05-09 |
6 finish → 7 |
🟧 Rung 7 |
30 |
Load-test raw data; k6 outputs archived |
S23 |
W45–W46 |
2027-05-10 → 2027-05-23 |
7 |
Capstone Alpha |
25 |
Alpha architecture doc |
S24 |
W47–W48 |
2027-05-24 → 2027-06-06 |
7 |
Capstone Beta |
25 |
Beta accuracy/latency tradeoff notes |
S25 |
W49–W50 |
2027-06-07 → 2027-06-20 |
7 |
Capstone Alpha published + deployed |
25 |
Alpha demo screencast recorded |
S26 |
W51–W52 |
2027-06-21 → 2027-07-04 |
7 finish |
Capstone Beta published; W52 buffer / celebration |
BUFFER W52 + 20 |
Final year retrospective; pitch rehearsed |
S25–S26 stretch through late June into early July. If you want the roadmap to end on the anniversary date (2027-08-06), consider S26 as a soft close with M13 extended by 4 weeks for study-conversion work.
Buffer Sprint Doctrine¶
The four buffer sprints are non-negotiable rest / catch-up periods. Their rule:
If you are on track at the start of a buffer week, rest (10–15 hrs load, mostly reading, no new project work).
If you are 1–5 days behind, catch up — use the buffer to close the gap.
If you are >5 days behind at the start of a buffer, do not use the buffer for catch-up alone. Do the reset protocol in
99_pre_mortem/09_summary_and_reset_protocol.md— rescope, drop something, and continue.Never plan new deliverables into a buffer sprint. This is the mistake that turns a 13-month plan into an 18-month plan.
Slippage Log Template¶
Copy this table into 13_discipline/slippage_log.md (create it Sunday of Sprint 1). Update at the end of every sprint retro. This is the honesty ledger; it is the only place your calendar reflects reality.
Sprint |
Planned deliverable |
Actual outcome |
Days slipped |
Reason (1 line) |
Recovery plan |
|---|---|---|---|---|---|
S1 |
Toolchain + 8 drills |
Toolchain done W1; only 6 drills W2 |
+3 |
Underestimated LLVM install issue |
Push 2 drills into S2 W3, don’t skip |
S2 |
Rung 1 published |
(record honestly) |
(fill in) |
(fill in) |
(fill in) |
… |
… |
… |
… |
… |
… |
Slippage rules¶
≤3 days slip in a sprint: normal. Log it. Continue.
4–10 days slip in a sprint: yellow flag. Read
13_discipline/06_failure_modes.mdand adjust load estimate for next sprint.>10 days slip OR 3 consecutive sprints in yellow: red flag. Enter reset protocol.
Missed hard gate by >14 days (Rung 6 M9 or Rung 7 M11): hard-gate miss protocol,
99_pre_mortem/05_the_hard_gate_M9_miss.md. 14-day pause, honest rescope.
Sprint Retro Template (Sunday of Sprint End)¶
Copy this into your lab notebook every other Sunday. Ten minutes maximum. If it takes longer than 15 minutes you are overthinking it.
### Sprint SN retro — YYYY-MM-DD
**Shipped:** (bullet list of what actually got to a green state)
**Skipped:** (what was planned but didn't happen — be honest)
**Slipped:** (what got partially done — be specific about %)
**Blocked by:** (list external / real blockers; do NOT list "motivation" or "time" — those are inputs, not blockers)
**Predict-vs-measured surprises:** (what did I think was true that the compiler told me otherwise?)
**Load estimate accuracy:** (planned N hours, actual M hours, ratio M/N)
**Next sprint intent:** (one sentence — not a plan, an intent)
What Most People Get Wrong About Sprint Calendars¶
They treat the calendar as a commitment device rather than a measurement device. The calendar’s job is not to make you feel guilty when you slip. Its job is to tell you the truth about how fast you actually work, so you can plan future sprints accurately. If you slip 3 days in every early sprint, you don’t have a discipline problem — you have a load-estimate problem, and your S10+ estimates need to shrink by 20%. The calendar is a measuring instrument. Slippage is data, not shame.
The second failure: they hide slippage. They rewrite Sunday retros to look better than reality. Six months later they wonder why they missed the hard gate. Track it honestly on the day it happens.
Return to: README.md · Next: 03_north_star_artifacts.md — the 8 portfolio rungs mapped to the calendar.