159 tracked work items, scoped and sequenced for a database automation program.
- Context
- A clinical research organization automating its Azure Database for PostgreSQL change management: moving from hand-applied schema changes to a version-controlled CI/CD pipeline, under a VP-level sponsor with limited technical detail appetite.
- Problem
- The development team understood the target state and could not express it as a plan the sponsor could fund or track. Requirements existed as conversations. There was no work breakdown, no sequence, and no way to report progress that meant anything to the person approving the budget.
- Role
- My role: scoped and structured the program, and acted as the translation layer between the development team and the VP sponsor. Team: the client's database and platform developers owned technical design and implementation.
- Work
- Ran requirements discovery with the development team, decomposed the program into 159 tracked work items with acceptance criteria, and sequenced them into phases with dependencies made explicit. Established the reporting cadence and the status format the sponsor used to approve continued investment.
- Outcome
- A fundable, trackable program: 159 work items with acceptance criteria, phased and sequenced, and a status format the sponsor read without translation.
- Stack
Turning a target state into a fundable plan
The development team understood the target state and could not express it as something the sponsor could fund or track. Requirements lived as conversations, there was no work breakdown, no sequence, and no way to report progress that meant anything to the person approving the budget. That is a common and expensive place for a technical programme to stall: the work is understood by the people who will do it and invisible to the person who has to pay for it.
The engagement decomposed the programme into 159 tracked work items, each with acceptance criteria, and sequenced them into phases with the dependencies between them made explicit. Nothing was built during that exercise. What it produced was a plan a VP could fund in stages and measure against, which is what unblocked the work rather than any particular technical decision.
The translation layer
The sponsor was a VP with limited appetite for technical detail, and the client's database and platform developers owned the technical design and implementation throughout. The value added in the middle was translation: turning a database change-management target into acceptance criteria and a status format the sponsor could read without an interpreter, and turning the sponsor's funding and reporting needs into a structure the developers could work against.
Establishing that reporting cadence up front is what let continued investment be approved phase by phase, on evidence, rather than argued for in a single large ask. A programme that reports in a language its sponsor trusts is one that keeps its funding; one that cannot is where good technical work stalls for reasons that have nothing to do with the technology.
Why acceptance criteria were the point
A work item without acceptance criteria is an intention, and intentions cannot be funded or checked off with any confidence. Attaching criteria to each of the 159 items is what turned a shared understanding into something a sponsor could actually buy: for every item there was a stated condition for calling it done, which is the difference between reporting that work is progressing and being able to show that it is.
That same discipline is what made the status format legible to a non-technical VP. Progress reported as items meeting their criteria, phase by phase, is a claim a sponsor can trust without having to evaluate the engineering underneath it. It also protects the developers, because a definition of done agreed in advance is far harder to argue with after the fact than a vague sense that more should have been finished by now. On a programme funded in stages, that clarity is not a nicety; it is the thing that keeps each stage's approval from turning into a renegotiation of the last one.
Further reading
- Acceptance criteria for an analytics deliverable
Nobody can look at a dataset and tell you it is right. That is the whole problem, and it is solvable with numbers.
- Writing assumptions so a broken one is observable
An assumption you cannot test on a given morning is not an assumption. It is a sentence you will lose an argument about in week nine.
- A project charter someone will actually read
Most charters are read once, by the person who wrote them. That is a format problem, not a discipline problem.
- What a fractional technical project manager actually does (2026)
The role is widely advertised and inconsistently defined. Here is the version that describes a job rather than a title.