Program Roadmap & Cross-Project Dependency Map
Builds on Topic 4.
What you'll produce
A one-page program roadmap plus a cross-project dependency map and a resource-arbitration decision for the Unified Checkout program at NovaPay — the artifact that proves you can do the thing the "program manager" title actually charges for: coordinate three separate projects toward one shared outcome, rather than run one project well. The roadmap places Checkout-Core (Marco), Partner-Integration (Lena), and Migration & Cutover (Dana) on a single timeline with their own milestones, then draws the dependency arrows between them — the handoffs where one project's output is another's input and where the program lives or dies. The dependency map scores each cross-project link, names the integration milestones (the dates where two projects must meet), and identifies the critical chain that runs across projects, not just within one. Finally, you make one real resource-arbitration call: the shared senior engineer (Diego) is needed by two project leads in the same window — you decide who gets him, when, and why, in writing, the way a program manager has to.
This is the deliverable a senior project manager doesn't produce, because a single project doesn't have it. It proves the program-altitude skills directly: sequencing parallel projects, managing dependencies you don't own (Lena can't fix a date that depends on Marco's team), arbitrating a resource across teams none of whom report to you, and holding a portfolio-level view of "are we going to make it" that no single project board can show. It is the artifact the program-deep-dive interview is built around — "you had three projects and one date; walk me through how you kept them aligned."
Instructions
- State your altitude and pull the outcome forward. Write at the top: "Program altitude — coordinating Checkout-Core, Partner-Integration, and Migration & Cutover toward the charter outcome." Copy the charter's (Deliverable 1) program outcome and the immovable Sep 30 date. The roadmap exists to make that outcome happen across these three projects — not to re-plan any one of them (the WBS in Deliverable 2 already did that for Checkout-Core).
- Lay the three projects on one timeline as swimlanes. One row per constituent project, weeks across the top (anchor to the charter's calendar — W1 = week of Jun 15, hard deadline Sep 30, same as Deliverable 2). In each lane, place that project's own 3–5 milestones with target dates and its own lead's name. The point of a roadmap is that a stakeholder sees all three projects' shapes at once — where they run in parallel, where one waits on another.
- Draw the cross-project dependencies explicitly — these are the program's spine. A cross-project dependency is where one project's deliverable is another project's precondition. Name each as an arrow: from (producing project + milestone) → to (consuming project + milestone), the date it must land by, and what breaks if it's late. At minimum capture the two that define this program: (a) Checkout-Core's stable payment interface → Partner-Integration's integration test (Lena can't test against a moving target), and (b) Checkout-Core + Partner-Integration both done → Migration & Cutover's go-live + PCI sign-off (Dana can't cut over to a flow that isn't finished). Do not list intra-project dependencies here — those belong in each project's own plan; the roadmap is only about the links between lanes.
- Identify the cross-project critical chain and the integration milestones — and prove it with dates that chain. Trace the longest path of dependent work that crosses project boundaries — the chain that sets the program end date. Mark the integration milestones: the specific dates where two projects must meet (e.g., "Payment interface frozen — Jul 3," "End-to-end partner test — Jul 24," "Cutover gate — Sep 21"). Every milestone on the chain must be a real dated marker in a swimlane — including the convergence points. If a downstream gate needs "both projects feature-complete," then both projects must show a dated feature-complete milestone, and the gate date must equal the later of the two (max), not a number you wrote down. Walk the chain end-to-end and check two things: each end-date is monotonic (climbs, never goes backward) and each downstream milestone starts when its upstream lands (no idle gap at the joins). A convergence date asserted with no milestone behind it is the most common way this artifact fails — don't claim "feature-complete by Aug 14," show the two milestones whose max is Aug 14. These are the dates you own as program manager; the leads own the work, you own the seams.
- Make one real resource-arbitration decision, in writing. Diego (senior engineer) is needed by both Checkout-Core and Partner-Integration in the same 2–3 week window (the interface freeze overlaps the start of partner integration). You cannot split him in two. Decide: who gets him, in which weeks, and why — and state the cost to the project that loses him and how you'll cover it. The reasoning must be program-level: protect the cross-project critical chain, not whichever lead complained loudest. Name the backfill or the descope on the losing side. A decision with no stated cost is a coin-flip dressed up as a plan.
- Add a portfolio-level rollup line. Under the swimlanes, one summary row: each project's current RAG and a single program RAG that is never greener than the worst project on the critical chain. State the rollup rule you used in one sentence (this is the same logic your Deliverable 5 dashboard will report weekly). The roadmap is where the rule is born; the weekly report just applies it.
- Keep it to one page and make the seams obvious. A reader should finish it knowing: the three projects, who leads each, the two or three dates where they have to meet, the one resource fight and how you settled it, and whether the program is on track. If your roadmap looks like three independent plans stapled together with no arrows between them, you've drawn three projects, not a program — go back and find the seams.
Worked example
(Program: NovaPay "Unified Checkout." Altitude: program — coordinating three projects toward the charter outcome. Outcome (verbatim from Deliverable 1 charter): one merged, partner-ready, fully migrated checkout flow live for 100% of merchants by Sep 30, tied to the PartnerPay launch and the Q3 marketing push. Calendar: W1 = week of Jun 15 … hard deadline Sep 30. Three projects: Checkout-Core (lead: Marco), Partner-Integration (lead: Lena), Migration & Cutover (lead: Dana). Shared resource: Diego, senior engineer, 50% on the Ledger program, the only person who knows both the merged payment interface and the PartnerPay auth handshake.)
Program roadmap — swimlanes (one row per project)
| Project / Lead | Jun (W1–3) | Jul (W4–7) | Aug (W8–11) | Sep (W12–15) |
|---|---|---|---|---|
| Checkout-Core — Marco | Merge web+mobile codepath · M-C1: payment interface frozen (Jul 3) | Hosted-link variant · hardening | Conversion-parity proof · M-C2: Checkout-Core feature-complete — conversion-parity signed, code-freeze (Aug 7) | Support GA |
| Partner-Integration — Lena | Spec PartnerPay auth (blocked on interface) | M-P1: integration build (starts Jul 3) · M-P2: end-to-end partner test (Jul 24) | Partner UAT · fixes · M-P3: Partner-Integration feature-complete — UAT signed, code-freeze (Aug 14) | Support GA |
| Migration & Cutover — Dana | PCI scoping w/ Legal | Data-migration tooling | M-M1: PCI re-attestation (Aug 21) | M-M2: staged cutover 5%→100% · GA (Sep 30) |
Program RAG: 🟡 Amber. Rule: the program RAG equals the worst project on the cross-project critical chain. Checkout-Core and Migration are Green; Partner-Integration is Amber (see dependency D1 and the Diego arbitration), so the program is Amber.
Cross-project dependency map (links between lanes only)
| # | From (produces) | → To (consumes) | Must land by | Score (L×I) | What breaks if late |
|---|---|---|---|---|---|
| D1 | Checkout-Core: payment interface frozen (M-C1) | → Partner-Integration: integration build can start (M-P1) | Jul 3 | 4×5 = 20 | Lena's team builds against a moving target; every interface change is rework. This is the program's #1 seam. |
| D2 | Partner-Integration: end-to-end partner test passes (M-P2) | → Migration & Cutover: cutover gate can open | Jul 24 | 3×5 = 15 | Dana can't stage a go-live for a partner flow that hasn't passed UAT; slip cascades to GA. |
| D3 | Checkout-Core feature-complete (M-C2, Aug 7) + Partner-Integration feature-complete (M-P3, Aug 14) | → Migration & Cutover: PCI re-attestation (M-M1) | Aug 14 = max(Aug 7, Aug 14) | 3×4 = 12 | Assessor reviews a frozen system; late code = re-review = blows the Aug 21 booking window. M-P3 is the binding milestone — Checkout-Core froze a week earlier (M-C2), so Partner-Integration's UAT sign-off sets the convergence date. |
| D4 | Migration & Cutover: PCI sign-off (M-M1) | → all three: GA allowed (M-M2) | Aug 21 | 2×5 = 10 | No sign-off, no legal go-live, regardless of build status. Hard gate. |
Cross-project critical chain (each join is dated arithmetic, not a claim): D1 — interface frozen Jul 3 → M-P1 integration build starts Jul 3 (zero idle gap at the seam) → M-P2 end-to-end partner test Jul 24 → from M-P2 the two lanes harden in parallel to feature-complete: M-C2 Aug 7 (Checkout-Core, conversion-parity signed) and M-P3 Aug 14 (Partner-Integration, UAT signed) → D3 = max(Aug 7, Aug 14) = Aug 14 → PCI re-attestation reviews the frozen system, sign-off Aug 21 → staged cutover → GA (Sep 30). Every end-date climbs monotonically — Jul 3 → Jul 24 → Aug 7 → Aug 14 → Aug 21 → Sep 30 — and each downstream milestone starts the day its upstream lands (no idle gap at the joins). The chain runs through all three projects; no single project board shows it. Why Aug 14 is real, not asserted: M-P3 (Aug 14) is the later of the two feature-complete dates, so it sets D3; it sits 3 weeks after M-P2 (Jul 24) — exactly the Partner UAT + fixes window shown in the Aug swimlane cell — and leaves a 1-week buffer before the Aug 21 PCI booking. Float between PCI sign-off (Aug 21) and GA (Sep 30) is ~6 working days — the program's only buffer, and it's downstream of every seam.
Resource-arbitration decision: Diego, W4–W6 (Jun 29 – Jul 17)
The collision: Marco needs Diego in W4–W5 to freeze the payment interface (D1, due Jul 3). Lena needs Diego in W4–W6 to stand up the PartnerPay auth handshake (M-P1). Same person, overlapping window, both on the critical chain.
Decision: Diego goes to Checkout-Core for W4 (interface freeze), then moves to Partner-Integration for W5–W6. Reasoning is program-level, not lead-level: D1 is the upstream link in the critical chain — if the interface isn't frozen on Jul 3, Lena's work is rework no matter how much Diego helps her, so freezing it first protects both projects. Sequence beats split.
Cost to the loser and how it's covered: Partner-Integration loses Diego for W4. Cover: (a) Lena's team does PartnerPay spec and scaffolding in W4 (doesn't need the frozen interface), so Diego lands on W5 to ready-to-integrate code, not a blank page; (b) pre-agreed with the Ledger PM (Tom) to hold Diego at 80% on Unified Checkout through W6, backfilling Ledger's lower-priority refactor — escalated to VP Priya for the call, decision logged Jun 17. Net: zero slip to the Jul 3 or Jul 24 dates; the cost is a 1-week deferral of Ledger's refactor, which has no external date.
Note on craft: this is the artifact that earns the "program" half of the title. Notice what's here that a single-project plan can't have — three leads, dependency arrows that cross team boundaries, a critical chain that no one project owns, and a resource fight settled by protecting the chain rather than the loudest lead. A senior project manager owns the rows inside one swimlane; the program manager owns the arrows between them and the one date all three lanes have to hit.
Rubric
The app's AI scores the learner's submission against these criteria and gives feedback. Levels: Needs work (1) / Solid (2) / Excellent (3). Passing = every criterion at Solid or above.
- Three real projects, not one project in three parts — 1: a single plan relabeled, or "projects" that are just workstreams of one team with no distinct lead, backlog, or done-definition · 2: three constituent projects on swimlanes, each with its own named lead and milestones · 3: the three projects are genuinely distinct (different cadences/leads/definitions of done — e.g., two Scrum, one Kanban), and the roadmap makes clear why this is a program (an outcome only all three together deliver), not a project a senior PM could run alone.
- Cross-project dependencies (the seams), not intra-project tasks — 1: dependencies are missing, or they're tasks within one project · 2: at least the two scenario-critical cross-project links are drawn as from→to arrows with dates · 3: every link is between lanes (one project's output = another's precondition), scored by likelihood×impact, dated, with the consequence of a slip stated — and intra-project dependencies are correctly excluded as out of scope for a roadmap.
- Cross-project critical chain & integration milestones — 1: no critical path, one drawn inside a single project, or a chain whose dates don't actually chain (a convergence/gate date asserted with no milestone behind it, end-dates that go backward, or an idle gap at a join) · 2: a dependent chain identified that crosses project boundaries and sets the end date, with end-dates that climb monotonically · 3: the critical chain is traced explicitly through all three projects with named integration milestones (the dates two projects must meet); every convergence point is demonstrable arithmetic — each contributing project shows a dated feature-complete milestone and the gate date equals the later (max) of them, end-dates are monotonic with no idle gap at the joins; the program float is quantified; and the chain — not any one project — is shown to set the Sep 30 date.
- Resource arbitration with stated cost — 1: the shared-engineer collision is ignored, or "split him" with no reasoning · 2: a clear who-gets-him-when decision is made and justified · 3: the decision is justified at program altitude (protects the critical chain, not the loudest lead), names the explicit cost to the losing project, and states the backfill/descope/escalation that covers it — a decision a VP could sign.
- Portfolio rollup with an honest rule — 1: no program RAG, or a program RAG greener than its worst critical-chain project · 2: per-project RAGs plus a program RAG with a stated rollup rule · 3: the program RAG strictly follows "never greener than the worst project on the critical chain," the rule is stated in one sentence, and it's consistent with the logic the weekly dashboard (Deliverable 5) will reuse.
- Coherence with the charter and one-page discipline — 1: disconnected from Deliverable 1, abstract dates, or sprawls past one page · 2: reuses the charter outcome and calendar, fits one page, altitude stated · 3: outcome, dates, leads, and the shared-engineer risk all trace cleanly from the charter; the altitude ("program") is declared; and a reader finishes in under a minute knowing the three projects, the two–three seams, the one arbitration call, and whether the program will make it.