Skip to content
FlowScript templates

Project Management — Release Delivery Pipeline

A release delivery pipeline: the plan on one side, and on the other the work items that actually travelled from committed to shipped. Typed FlowScript for project management. Keywords: Gantt, roadmap, milestone, sprint, timeline.

Template previewFlowScript
Release 24 — scheduling engine2026-04-06 → 2026-06-26 · 82 days · 4 tasks · 3 milestonesApr 26May 26Jun 26Freeze the scheduling API contractPlatform18dConstraint solver rewriteCore39dBack-fill migration for existing schedulesData25dStaged rollout behind a kill switchDelivery18dMilestonesCode freezeRelease candidate…General availabil…

Make it your own.

// A release delivery pipeline: the plan on one side, and on the other
// the work items that actually travelled from committed to shipped. Every
// item that fell out is named, and the points committed across the three
// sprints are summed by the compiler rather than added up by hand.

project release_24 {
  title: "Release 24 — scheduling engine"
  start: "2026-04-06"
  end: "2026-06-26"
  owner: "Delivery lead"
}

milestone code_freeze {
  date: "2026-06-05"
  title: "Code freeze"
  status: "planned"
}

milestone rc_cut {
  date: "2026-06-12"
  title: "Release candidate cut"
  status: "planned"
}

milestone ship {
  date: "2026-06-26"
  title: "General availability"
  status: "planned"
}

sprint s1 {
  start: "2026-04-06"
  end: "2026-04-24"
  points: 68
}

sprint s2 {
  start: "2026-04-27"
  end: "2026-05-15"
  points: 74
}

sprint s3 {
  start: "2026-05-18"
  end: "2026-06-05"
  points: 61
}

task api_contract {
  title: "Freeze the scheduling API contract"
  start: "2026-04-06"
  end: "2026-04-24"
  assignee: "Platform"
  status: "done"
}

task solver {
  title: "Constraint solver rewrite"
  start: "2026-04-13"
  end: "2026-05-22"
  depends: [api_contract]
  assignee: "Core"
  status: "in-progress"
}

task migration {
  title: "Back-fill migration for existing schedules"
  start: "2026-05-11"
  end: "2026-06-05"
  depends: [solver]
  assignee: "Data"
  status: "planned"
}

task rollout {
  title: "Staged rollout behind a kill switch"
  start: "2026-06-08"
  end: "2026-06-26"
  depends: [migration]
  assignee: "Delivery"
  status: "planned"
}

// The compiler adds the sprints up, so the plan cannot disagree with
// itself: 68 plus 74 plus 61.
kpi committed_points {
  title: "Points committed across the three sprints"
  baseline: = sum(kind:sprint, "points")
  target: 203
  unit: "points"
}

// ── Delivery, as accounted arithmetic. 214 candidates, 104 shipped.
cohort backlog_candidates {
  n: 214 source "Release 24 planning board"
}

cohort committed {
  n: 132
  from: backlog_candidates
  excluded: {
    deferred_to_next_release: 61
    cut_by_product: 21
  }
}

cohort merged {
  n: 118
  from: committed
  excluded: {
    blocked_on_dependency: 9
    descoped_mid_sprint: 5
  }
}

cohort passed_release_gate {
  n: 109
  from: merged
  excluded: {
    failed_regression_suite: 6
    reverted_after_merge: 3
  }
}

cohort shipped {
  n: 104
  from: passed_release_gate
  excluded: {
    held_behind_feature_flag: 4
    pulled_at_rc_cut: 1
  }
}

view timeline: gantt(release_24)
view delivery: consort(backlog_candidates)