A3.6 · The program roadmap · dive 3
Independent cadence
Two surfaces over one core ship on their own schedules — sequenced by product priority, not a hard dependency on each other.
Because the web (F6) and the bot (F10) are parallel surfaces over the same facade, neither waits on the other. The shared core is one delivery; each surface is a separate delivery. Pick a timeline on the right to read each surface's cadence over the one shared facade.
Two cadence timelines · pick one
Two cadences over one facade
Because the web (F6) and the bot (F10) are parallel surfaces over the same facade, neither depends on the
other for its core loop. From portal.roadmap.md, verbatim: “F6 (web) and F10
(bot) are parallel surfaces over the same F5 facade — neither depends on the other for its core loop, so
they are sequenced by product priority, not by a hard dependency.” And: “M2 and M3 are both
surfaces over M1's facade; either can lead, and they can advance in parallel once the engine's near-term slice
is shipping.”
So each surface ships on its own cadence. The web ships catalog → live → users; the bot ships answer → identity → browse/enroll/learn. The one soft link is F10.8's webhook delivery, fronted by F6.1's endpoint — named, not a hard ordering of the core loops.
Sequenced by product priority, not a hard dependency: the human Operator chooses which surface's next rung to ship first, by value, while the shared core stays one delivery beneath both.
Reorder one surface — the other is untouched
Re-ordering one surface's roadmap edits that surface's roadmap only. The figure below advances or defers the next rung on one surface; the other surface's row stays fixed, and two counters — “other-surface edits” and “core edits” — hold at zero. No spec is edited either: a reorder is a roadmap move.
The two figures teach different moves: the hero reads each surface's cadence over the shared facade; this one proves that re-ordering one cadence leaves the other surface and the core untouched.
Reorder one surface's roadmap · the other is untouched
Re-ordering one surface's cadence edits that surface's roadmap only — the other surface, the core, and every spec are untouched.
Independent cadence, on the Portal
On the Portal, the web (F6) and the bot (F10) advance as parallel tracks over the same
Portal facade. From portal.roadmap.md's near-term path:
“Continue the web (make it live, then auth and deploy) and the bot (browse, enroll, learn, progress) as
parallel tracks over the same facade.” The Operator chooses which surface's next rung ships first, by
product priority; the Author builds it; the shared core stays one delivery beneath both.
What lets the two cadences run independently is the master invariant. Because each surface calls only the facade and renders only the closed error set, re-ordering F6's rungs edits no F10 rung and no core code. The master invariant is the seam.
# portal.roadmap.md — two surfaces, two cadences, one facade (verbatim relations). # web (F6): f6.1 catalog → f6.6 live → f6.8 users (its own schedule) # bot (F10): f10.1 answer → f10.2 identity → f10.5 learn (its own schedule) # both over the one Portal facade · sequenced by product priority # Re-ordering one surface edits that surface's roadmap only. edited = "web roadmap" # the surface you reordered other_surface = 0 # the bot is untouched core_edits = 0 # the core is untouched spec_edits = 0 # a reorder is a roadmap move, not a spec edit # The master invariant — call only the facade — is the decoupling seam.
Independent cadence — surfaces over one core ship on their own schedules, sequenced by product priority, and re-ordering one leaves the others untouched.
“Call only the facade” — the master invariant. The web (F6) and bot (F10) each call only
the Portal facade, so each surface's roadmap is independent; re-ordering F6 edits no
F10 rung and no core code.
The master invariant lets two roadmaps run on independent cadences over one shared core.
Recap — shared core, separate delivery
The web (F6) and the bot (F10) are parallel surfaces over the same facade, so each ships on its own cadence, sequenced by product priority rather than a hard dependency. Re-ordering one surface's roadmap edits that surface's roadmap only — the other surface, the core, and every spec stay untouched, because each surface calls only the facade. That closes A3.6: the program roadmap orders chapters; one core is surfaced through several adapters; and each surface ships on its own cadence over the one facade.
Return to the A3.6 module hub to review the program roadmap, or to the A3 chapter navigation to continue the roadmap layer.
References
The independent-delivery sources behind separate cadences, and where this connects in the course.
Sources
- Humble & Farley — Continuous Delivery — independent deployability: each component releasable on its own schedule.
- Beck, K. — Extreme Programming Explained — small releases ordered by value, advancing in parallel.
- Hunt & Thomas — The Pragmatic Programmer — orthogonality: one part reordered without disturbing another.
Related in this course
- A3.6 · The program roadmap — the module hub.
- A3.6.2 · One core, many surfaces — the previous dive.
- A3.6.1 · Roadmap of roadmaps — the levels of planning.
- A1.04 · Two layers — the roadmap over the spec.
- F6 · The Portal on the web (Phoenix) — the web surface and its cadence.