F7 — Scope Creep & Shiny Objects

Probability without countermeasures: 45%. Window: M3-M10, worst in M5-M7 when Java fundamentals feel routine and every new library looks more exciting than the current phase. Severity if unchecked: medium-high — the plan does not fail dramatically, it drifts. You arrive in August 2027 having learned six things halfway instead of one thing deeply.

What This Failure Mode Actually Is

It is a Wednesday evening in M6. You are supposed to be on Phase 04 (concurrency) — specifically, the ReentrantReadWriteLock exercise. Instead, you saw a tweet earlier that day: “GraalVM native-image just cut cold-start time to 40ms for Spring apps.” You cannot let it go. You open a GraalVM tab. Two hours later you are cloning a GraalVM tutorial repo, reading about closed-world assumption, and mentally rewriting your entire plan to “include a GraalVM month.”

The next week, a JEP drops: JEP 458, Launching multi-file source-code programs, is now official in Java 22. Fascinating. You spend a Saturday afternoon on it.

The week after: “Kotlin is objectively better than Java for backend now,” says a Medium article. You feel a pang. You open a Kotlin tutorial for 40 minutes.

None of these are bad topics. Each one, in isolation, is legitimately interesting and possibly useful. The failure is not the topics — it is the aggregation. Six of these in a quarter, and you have spent 30-40 hours on tangents while your 50-programs list is still at 27 done. The plan does not visibly break. It just quietly loses velocity, and you convince yourself you are “broadening your horizons” instead of admitting you are drifting.

By M10 you have opinions on GraalVM, Kotlin, Loom internals, Panama, and vector API — and you still have not finished the CRUD service you were supposed to ship in M8.

Why the Probability Is 45% for You Specifically

Medium-high. Lower than the top failure modes but real. Two reasons it applies to you specifically:

  1. ML-engineer curiosity is a double-edged sword. You are trained to scan papers, sample new libraries, try things. That habit is a superpower in ML research and a liability in a 13-month depth plan. The very reflex that made you good at your day job is the reflex that will fragment this plan.

  2. New frameworks are seductive to engineers rebuilding a skill. Every new library seems to promise “the shortcut you missed while you were away.” GraalVM, Kotlin, Ktor, Micronaut, Quarkus, Vert.x — each looks like it might be the thing that makes the rebuild easier. None of them are. The rebuild is the rebuild; frameworks are decoration.

Early Warning Signs

Any two of these in a sprint means F7 is active:

  • Multiple unfinished branches in your repos, each on a different topic.

  • Your README.md gets updated more often than your .java files.

  • Tab count > 30 by mid-week, and half of them are on topics not in the current phase.

  • You catch yourself saying “I should learn Kotlin this weekend because it is arguably better anyway.”

  • You cloned a rust-lang or Zig tutorial repo in the middle of Phase 05.

  • You started a new repo for a shiny-object project without finishing the previous one.

  • You added a new dependency to your current project that has nothing to do with the current phase’s learning goal.

  • You spent more than 3 hours in a sprint on a topic that was not in the sprint plan.

Root Causes

  1. Novelty as procrastination. When the current phase feels hard, a new topic feels like relief. You are not learning — you are avoiding.

  2. The illusion of “related” topics. “GraalVM is Java-adjacent, so it counts.” It does not. It is a specialized topic that belongs after Phase 12, not during Phase 04.

  3. Social-media-driven urgency. Twitter and HN create the sense that everyone is learning the new thing right now. They are not. Most of them are also drifting.

  4. The completionist trap. Finishing a phase is 80% grinding, 20% novelty. New topics are 100% novelty. Your brain prefers the 100%.

Mitigation

The One-Topic-Per-Sprint Rule

Each sprint has exactly one primary topic — the topic of its phase. No secondary topics. No “and also I want to explore X.” If it is not on the sprint plan, it does not get any of the sprint’s 20-30 hours.

This is a scope discipline, not a curiosity ban. Curiosity is fine — the curiosity just does not spend the sprint’s budget.

The LATER.md File (non-negotiable)

Create LATER.md at the top of your personal notes today. Every shiny object goes there, with a date and one line about why it caught your attention. Example entries:

2026-11-04 — GraalVM native-image (cold-start claims for Spring apps, revisit in Phase 08)
2026-12-19 — JEP 458 multi-file source scripts (interesting for tooling, low priority)
2027-01-08 — Kotlin coroutines vs Java virtual threads (defer to Phase 07 or later)

Rule: you log it, you close the tab, you go back to the sprint. The logging itself is the ritual that discharges the urge. Ninety percent of shiny objects, once logged, lose their pull. The other 10% get their moment at the quarterly review.

The Quarterly Review Only

You revisit LATER.md exactly four times in 13 months: end of M3, M6, M9, M12. Not weekly. Not monthly. Only at the quarter boundary.

At each review, you pick at most one item from LATER.md to incorporate into the next quarter’s plan — if and only if it fits the phase you are entering. Everything else stays in the file. Most items will still be there at the end of M13, and that is fine. The file is a graveyard for shiny objects, not a promise to visit them.

The “Rock In Your Pocket” Mantra

When a shiny object refuses to leave your head, repeat this to yourself:

If it is not in this sprint’s goals, it is a rock in my pocket, not a resource.

A rock in your pocket slows you down. It does not help you carry anything. New topics that are not in the current phase are exactly that — weight without carry. Say the sentence out loud once, log the topic in LATER.md, close the tab.

The Sprint-Goal-Adherence Metric

At every sprint retro, compute one number:

(hours spent on sprint goals) / (total sprint hours) = adherence ratio

Target: adherence >= 80%. If it drops below 80% for two sprints in a row, you are drifting, and the next sprint gets a hardened scope — no new libraries, no side reading, only the phase’s core exercises. This is a lock-down sprint, and it repairs the drift.

Escalation Trigger

If any sprint’s actual work is more than 30% off its sprint goal, cancel the remaining sprint time, do a 30-minute mini-retro, and restart the next sprint with the original goal at reduced scope.

Do not try to “finish both” the original goal and the shiny topic. That is how drift compounds. You explicitly abandon the tangent, note what happened in the retro, and start clean. The abandoned tangent goes to LATER.md. If it survives four quarterly reviews, then maybe it earns a real slot in the plan.

One sprint drift is normal. Two sprints of drift is a pattern. Three is a plan change — and plan changes happen at quarterly reviews, not mid-sprint on a Tuesday because of a tweet.

The Special Case: JEP Drops and JVM Release Cycles

Java has a 6-month release cadence. Every six months there will be a new release with 8-15 JEPs. You will be tempted to “stay current” with all of them. Do not.

Rule: at each JEP drop (April and October releases in 2026-2027), spend at most 90 minutes reading the release notes and picking one JEP that intersects your current phase. Log the rest in LATER.md. Currency is a distraction from depth. Senior Java engineers can name 4 recent JEPs and shrug about the other 40 — because they know the JVM well enough that new features are variations on a theme, not homework.

What Success Looks Like

By end of M13:

  • Your LATER.md has 40-80 entries. Most of them were never acted on. That is the point — the file absorbed the curiosity so the sprints could stay focused.

  • Every sprint retro shows an adherence ratio >= 80%.

  • You can name the three JEPs from 2026-2027 that actually matter for your work, and you can shrug about the rest without FOMO.

  • Your GitHub shows a linear progression through the phases, not a scattered constellation of half-finished side projects.

  • You have opinions on Kotlin/Rust/GraalVM — informed by 90-minute investigations, not 40-hour rabbit holes.

That is disciplined curiosity: alive, logged, deferred, honored at the right time.


Previous: 06_fm_isolation_and_no_feedback.md | Next: 08_fm_life_and_health.md