Skip to main content

08 · Developer Experience & Abstracted Self-Service

Milestones of the roadmap items in this theme

As of 2026-10-22 · today

donein progressplannedwaiting on a dependencyslipped (target date passed)waits fortoday

Gantt​

Q3 · 2026Q4 · 2026Q1 · 2027Q2 · 2027Q3 · 2027Q4 · 2027Q1 · 2028Q2 · 2028Q3 · 2028Q4 · 2028Q1 · 2029Q2 · 2029Q3 · 2029Q4 · 2029Q1 · 2030JulAugSepOctNovDecJanFebMarAprMayJunJulAugSepOctNovDecJanFebMarAprMayJunJulAugSepOctNovDecJanFebMarAprMayJunJulAugSepOctNovDecJanFeb22 · Backstage Internal Developer Platform(IDP)22.1Backstage online, catalog andidentity wired2026-12-18 · in progress · 2/422.2Templates cover what the backends canprovision2027-09-10 · planned · 0/4waiting 22.122.3Request and approval are a Backstageflow, recorded2028-03-10 · planned · 0/4waiting 22.222.4Backstage is the way in foreverything except release2028-09-08 · planned · 0/4waiting 22.323 · Cogwork Desktop Application23.1Cogwork executes a release in theorder the ticket sets2027-05-28 · in progress · 1/4waiting 24.223.2Cogwork triggers GitLab CI where ittriggered Jenkins2028-09-08 · waiting 15.3, 23.123.3Cogwork's credential and network pathunder zero trust2028-07-14 · planned · 0/3waiting 13.324 · Release Ticket System24.1Release requests and their order inone place2026-11-27 · in progress · 3/424.2The release order is data theexecutor can rely on2027-09-10 · planned · 0/4waiting 24.124.3Triggering moves to GitLab CI asJenkins retires2028-09-08 · planned · 0/4waiting 15.3, 24.224.4Every release carries a reviewablechange record2029-01-12 · plannedwaiting 24.3today

Milestones​

#MilestoneStartTargetStatusWaits forTeamEpicDerived
22 · Backstage Internal Developer Platform (IDP)
22.1Backstage online, catalog and identity wired2026-08-172026-12-18in progress—SRE · Platform Engineering——
22.2Templates cover what the backends can provision—2027-09-10planned22.1SRE · Platform Engineering—waiting 22.1
22.3Request and approval are a Backstage flow, recorded—2028-03-10planned22.2SRE · Platform Engineering—waiting 22.2
22.4Backstage is the way in for everything except release—2028-09-08planned22.3SRE · Platform Engineering—waiting 22.3
23 · Cogwork Desktop Application
23.1Cogwork executes a release in the order the ticket sets2026-07-062027-05-28in progress24.2SRE—waiting 24.2
23.2Cogwork triggers GitLab CI where it triggered Jenkins—2028-09-08planned15.3, 23.1SRE—waiting 15.3, 23.1
23.3Cogwork's credential and network path under zero trust—2028-07-14planned13.3SRE—waiting 13.3
24 · Release Ticket System
24.1Release requests and their order in one place2026-07-062026-11-27in progress—SRE——
24.2The release order is data the executor can rely on—2027-09-10planned24.1SRE—waiting 24.1
24.3Triggering moves to GitLab CI as Jenkins retires—2028-09-08planned15.3, 24.2SRE—waiting 15.3, 24.2
24.4Every release carries a reviewable change record—2029-01-12planned24.3SRE—waiting 24.3

Details​

22.1Backstage online, catalog and identity wired2026-12-18in progress · 2/4
  • Backstage deployed and in useowner · Charles
  • Audit events emitted to the trailowner · Charlesarchitecture →
    The producer is already merged in the audit-trail repository, so requests and approvals made here are recorded from the start rather than retrofitted.
  • Catalog entries carry an ownerowner · TBD
    A catalog without ownership answers "what exists" and not "whose is it" — and the second question is the one asked during an incident.
  • SSO groups decide what a person may requestowner · TBD
22.2Templates cover what the backends can provision2027-09-10planned · 0/4
  • Templates for namespaces, Harvester VMs, databases and network changesowner · TBD
  • Each template provisions through the owning backend, never reimplementing itowner · TBD
    A template that provisions by itself becomes a second path with its own defaults, and the two drift. Backstage carries the form; Terraform, Ansible and ArgoCD still do the work.
  • Defaults, quotas and ownership applied out of the boxowner · TBD
  • A template no backend can fulfil is not publishedowner · TBD
    A form that takes a request nobody can serve is worse than no form: it converts a conversation into a queue.
22.3Request and approval are a Backstage flow, recorded2028-03-10planned · 0/4
  • Who applied and who approved, recorded on every requestowner · TBD
  • The scaffolder opens the GitLab MRowner · TBD
  • Those events reach the audit trail with a correlation keyowner · TBDarchitecture →
    This is the head of the chain 20.4 queries: the request and approval are where it starts, and without the key the rest cannot be joined to them.
  • Release is not in this flow — it stays with item 24owner · TBD
    Backstage approves provisioning; the release ticket system approves releases. Different objects, one approval flow each — the alternative is two portals that both think they own change.
22.4Backstage is the way in for everything except release2028-09-08planned · 0/4
  • Infrastructure and application self-service requests arrive through Backstage, not tickets or chatowner · TBD
  • Direct routes to the backends closed for routine requestsowner · TBD
    While the old route works it will be used the first time the form is inconvenient, and then the catalog is a second record of a subset.
  • How many requests still arrive another way, measuredowner · TBD
  • Release deliberately excluded, and the reason statedowner · TBD
23.1Cogwork executes a release in the order the ticket sets2027-05-28in progress · 1/4
  • Reads the ordered release list over the ext APIowner · Charlesarchitecture →
  • Advances one system at a time, stopping on failure rather than continuingowner · TBD
    A release of twenty systems that keeps going after the third fails is worse than one that stops: the later systems are now running against something that did not deploy.
  • What "done" means for a system before the next one startsowner · TBD
    Triggered is not deployed and deployed is not healthy. Ordering only means something if the gate between two systems is the right one.
  • Progress visible while a twenty-system release is runningowner · TBD
23.2Cogwork triggers GitLab CI where it triggered Jenkins2028-09-08planned · 0/3
  • The Jenkins panel has no backend once Jenkins retires — repointed at GitLab CIowner · TBD
  • Single-application deploys leave cogwork; ordered releases stayowner · TBD
    14.3 makes a single application's deployment follow a merge, with no person in the loop. An ordered release across twenty systems is the stated exception and it is driven here — the two are different jobs that used to share one button.
  • The ext API contract re-checked against what movedowner · TBD
    24.3 changes what the ticket system does at release time and cogwork reads it over that interface; both sides move, so the contract is checked once from each.
23.3Cogwork's credential and network path under zero trust2028-07-14planned · 0/3
  • The ext API key is a static credential living on laptops — replaced with a per-user identityowner · TBD
    Exactly the kind of credential item 12 exists to eliminate, and it is on the least controlled machine in the estate — while carrying the right to advance a production release.
  • Cogwork reaches internal systems over NetBird, like everything elseowner · TBD
    13.3 makes NetBird the start of every path in; a desktop tool talking straight to internal APIs would be the exception that makes that claim untrue.
  • When a person leaves, revocation is one actionowner · TBD
24.1Release requests and their order in one place2026-11-27in progress · 3/4
  • Platform in production, replacing the Excel release-list processowner · Charlesarchitecture →
  • Zitadel SSO issuing JWT, with rolesowner · Charles
  • Release form, order field, feedback and lifecycle in useowner · Charles
  • The ext API contract with cogwork versionedowner · TBD
    23.2 and 24.3 both move underneath that interface. An unversioned contract between two systems changing at once is how one of them breaks quietly — and here the thing that breaks is a release already under way.
24.2The release order is data the executor can rely on2027-09-10planned · 0/4
  • Order recorded per system, not implied by row positionowner · TBD
    A list that is ordered only because of how it happens to be sorted breaks the first time a row is edited. The executor needs an order it can read, not infer.
  • Dependencies between systems expressed where they existowner · TBD
  • The ext API exposes the ordered list as the contract cogwork executesowner · TBD
  • A release of twenty-plus systems is the normal case, not an edge caseowner · TBD
    This is why the pair exists. A spreadsheet can hold a list; it cannot be the thing another system executes in order, and that is the whole difference.
24.3Triggering moves to GitLab CI as Jenkins retires2028-09-08planned · 0/4
  • Where it triggered Jenkins, it triggers GitLab CIowner · TBD
  • The system triggers CI; it does not deployowner · TBD
    The Git change ArgoCD reconciles comes from a person merging in GitLab. The ticket system authorises, records and triggers — three jobs, none of which is deploying.
  • Decide whether the server-side merge endpoints stayowner · TBDarchitecture →
    test-merge and merge are implemented endpoints with a role check and per-branch conflict reporting; they are not a documentation error. Whether they remain is a decision to make here, and the architecture pages follow that decision rather than the other way round.
  • The release record links the merge, so the audit chain joinsowner · TBDarchitecture →
    Without it the chain 20.4 queries breaks exactly where a human decision was made, which is the part anyone reviewing a release wants to see.
24.4Every release carries a reviewable change record2029-01-12planned · 0/4
  • Change classification agreed, and applied per releaseowner · TBD
  • Review evidence and rollback plan recorded before release, not afterowner · TBD
    A rollback plan written after the release is a description of what happened. Written before, it is the thing someone reads at 3am — and for a twenty-system release it has to say what to do about the systems that already went.
  • Post-release feedback closed on the ticketowner · TBD
  • This is the record a person reviews; 20.4 is the chain a query walksowner · TBD
    Two different needs on the same release. Collapsing them means either a compliance record nobody can query or a query result nobody can review.

Back to the Platform Roadmap overview · the direction behind these milestones is the Platform Roadmap.