01 — Sprint Cadence¶
The unit of work in this plan is not the day. It is the two-week sprint.
Days are noisy. Some days a bug at work eats your evening. Some days your mother wants you to come over for dinner. Some days the AC breaks in a June heat wave and you cannot think. Sprints smooth all of that out. Over 14 days, you either shipped what you said you would ship, or you did not. That signal is honest.
You get 26 sprints. That is 52 weeks of active work plus 4 weeks of buffer, spread across 13 months. Below is the mapping.
The 26 Sprints (July 2026 → August 2027)¶
Sprint |
Weeks |
Approx. dates |
Anchored to |
|---|---|---|---|
S1 |
W1-W2 |
Jul 2026 (early) |
M1 — Fundamentals refresh, dev env, first 15 programs |
S2 |
W3-W4 |
Jul 2026 (late) |
M1 — Programs 16-35, collections, I/O |
S3 |
W5-W6 |
Aug 2026 (early) |
M2 — Programs 36-50, phase 1 project |
S4 |
W7-W8 |
Aug 2026 (late) |
M2 — DSA warmup, arrays + strings on LeetCode |
S5 |
W9-W10 |
Sep 2026 (early) |
M3 — DSA: linked lists, stacks, queues, hashing |
S6 |
W11-W12 |
Sep 2026 (late) |
M3 — DSA: trees, BFS/DFS |
B1 |
W13 |
Oct 2026 (early) |
Buffer week — Q1 recovery |
S7 |
W14-W15 |
Oct 2026 (mid) |
M4 — DSA: graphs, DP, tie off at ~100 problems |
S8 |
W16-W17 |
Oct/Nov 2026 |
M4 — OOP + SOLID refactor project |
S9 |
W18-W19 |
Nov 2026 (mid) |
M5 — Design patterns catalogue, small implementations |
S10 |
W20-W21 |
Nov/Dec 2026 |
M5 — Modern Java: streams, functional idioms |
S11 |
W22-W23 |
Dec 2026 (mid) |
M6 — Generics deep dive, |
S12 |
W24-W25 |
Dec 2026 (late) |
M6 — Streams project |
B2 |
W26 |
Jan 2027 (early) |
Buffer week — Q2 recovery |
S13 |
W27-W28 |
Jan 2027 (mid) |
M7 — Concurrency: threads, executors, futures |
S14 |
W29-W30 |
Jan/Feb 2027 |
M7 — Concurrency: locks, |
S15 |
W31-W32 |
Feb 2027 (mid) |
M8 — JVM internals: memory model, GC, class loading |
S16 |
W33-W34 |
Feb/Mar 2027 |
M8 — Profiling: JFR, async-profiler, JMH benchmarks |
S17 |
W35-W36 |
Mar 2027 (mid) |
M9 — Spring core, Boot basics, layered app |
S18 |
W37-W38 |
Mar/Apr 2027 |
M9 — Spring Data, JPA, transactions |
B3 |
W39 |
Apr 2027 (early) |
Buffer week — Q3 recovery |
S19 |
W40-W41 |
Apr 2027 (mid) |
M10 — REST API project, testing (JUnit 5, Mockito, Testcontainers) |
S20 |
W42-W43 |
Apr/May 2027 |
M10 — Security basics, observability, dockerize the API |
S21 |
W44-W45 |
May 2027 (mid) |
M11 — Distributed: messaging (Kafka), caching (Redis) |
S22 |
W46-W47 |
May/Jun 2027 |
M11 — Integration project, contract tests |
S23 |
W48-W49 |
Jun 2027 (mid) |
M12 — Capstone build (start) |
S24 |
W50-W51 |
Jun/Jul 2027 |
M12 — Capstone build (finish + deploy) |
B4 |
W52 |
Jul 2027 (mid) |
Buffer week — Q4 recovery |
S25 |
W53-W54 |
Jul/Aug 2027 |
M13 — Portfolio polish, resume, mock studies |
S26 |
W55-W56 |
Aug 2027 |
M13 — Job/internal-move conversion, final talk/blog |
The dates are approximate. Shift them by a week if S1 does not start on a Monday. The pattern matters more than the calendar.
Sprint Template (Copy This)¶
At the start of every sprint, spend 30 minutes writing this in a file called SPRINT_S{N}.md inside 13_MONTH_ROADMAP/13_discipline/log/:
# Sprint S{N} — {start_date} to {end_date}
# Anchored to: M{month} — {month theme}
## Goals (max 3, ranked)
1. …
2. …
3. …
## Deliverables (concrete, checkable)
- [ ] …
- [ ] …
- [ ] …
## Not doing this sprint (explicit non-goals)
- …
- …
## Time budget
- Weekday sessions planned: __ / 10 (weekday slots in 2 weeks)
- Weekend sessions planned: __ / 4
- Total hours target: __
## One sentence: what does success look like?
> …
Two rules for the goals list:
Max 3 goals per sprint. If you need 4, it is 2 sprints. Overpacking a sprint is the single most common way this plan fails at the process level (see
06_failure_modes.mdF7).Goals are outcomes, not activities. “Finish concurrency chapter of Java Concurrency in Practice” is an activity. “Write and benchmark a
ConcurrentHashMapvsCollections.synchronizedMapcomparison and publish the results” is a goal.
Sprint Planning Checklist¶
Before the sprint starts, walk through this in order:
Read last sprint’s retro
Read the current month’s README from the technical directory (e.g.
05_concurrency_multithreading/README.md)Pick 2-3 goals from that README’s deliverables
Write the sprint file (template above)
Block calendar: weekday sessions, weekend deep-work slot, sabbath day
Write one specific micro-goal for tomorrow morning (the “first hour” hook)
Push the sprint file to git
Sprint Retro Template¶
On the last day of each sprint (Sunday works well) spend 20-30 minutes writing this at the bottom of SPRINT_S{N}.md:
## Retro
### Shipped
- …
### Slipped
- … (why? one honest sentence per item)
### What I got wrong (predictions vs reality — see 02_lab_notebook.md)
- …
### What surprised me
- …
### Health check
- Sleep avg this sprint: __ hrs
- Sessions completed: __ / __ planned
- Days with zero work: __
- Body: (energy, eye strain, anything hurting)
### Next sprint focus
> One sentence.
Do not skip the retro. The retro is where the calibration happens. Without it, you are just doing sprints with no feedback loop, and the whole cadence system collapses into an activity list.
Slippage Protocol¶
You will slip. Everyone slips. What matters is what you do next.
Slippage of 1-3 days within a sprint: Normal. Ignore. Adjust the remaining days.
Slippage of a full weekday session:
Note it in the sprint file. Do not “make it up” on Sunday. Sunday is off (see 08_health_burnout.md).
Slippage of 3+ weekday sessions in one week:
Warning. Check the failure modes file (06_failure_modes.md) — usually F2 (work load), F5 (shiny object), or F6 (isolation). Downshift the sprint scope. Do not extend the sprint.
Slippage of a full sprint goal: The goal moves to next sprint. Only one carry-over goal is allowed. If two goals slip, one gets dropped, not carried.
Slippage of 2+ full sprints:
Reset protocol. See 99_pre_mortem/09_summary_and_reset_protocol.md.
The core rule: sprint boundaries are fixed. Sprint scope is variable. You never move the sprint end date to fit the work. You move the work to fit the sprint.
The Four Buffer Weeks¶
The four buffer weeks (B1-B4, one per quarter) exist for exactly three purposes:
Recovery — if the previous 6 sprints ran hot, take the week light.
Catch-up — if a sprint slipped, pull the slipped goal into the buffer.
Reflection — a quarterly-review post, resume update, portfolio cleanup.
Do not use buffer weeks to “get ahead.” Getting ahead is a mirage. The cadence has 26 sprints, not 27, and if you use a buffer week to add more scope, you have nowhere to fall back when work explodes in the next sprint.
If a quarter went well and you don’t need catch-up or recovery, use the buffer week for reflection: write a quarterly retro blog post, update the resume, tidy the portfolio README.
When Life Explodes¶
If life explodes (family emergency, health scare, work crisis), you do not “power through.” See 08_health_burnout.md and 99_pre_mortem/08_fm_life_and_health.md. There is a formal pause protocol. The plan waits.
Next: 02_lab_notebook.md Previous: README.md