The first signs a programme is in trouble, before anyone admits it


I was brought onto an NHS M365 migration by the CDIO directly, which is usually a sign that the normal channels have already failed. There was a hard deadline — a Microsoft licensing renewal, the kind that doesn’t move no matter how good your excuses are — and the incumbent contract PM had been telling him for weeks that things were on track. The CDIO didn’t believe it anymore. He just couldn’t yet say why, and he’d reached the point where “I’m sure it’ll be fine” from someone he was paying daily had stopped being reassuring and started being the problem.

Within the first couple of weeks I could see it. Not because I knew anything he didn’t have access to — I was reading the same status reports, the same plan, the same RAID log he’d been reading for weeks. The difference was that I was reading them as evidence rather than as updates, and three things in particular told me everything I needed to know before I’d had a single conversation with the technical team.

The status reports had gone generic

A good status report reads like someone who knows exactly what happened that week: which mailboxes migrated, which didn’t, why, and what’s being done about it. This one had drifted into “good progress this week” and “working through some complexities” — phrases that are still technically true and tell you absolutely nothing. Nobody decides one day to start writing vaguer reports. It happens a sentence at a time, because the honest version is starting to look bad and nobody wants to be the one who puts that in writing first. The incumbent PM hadn’t lied to the CDIO. He’d just slowly stopped saying anything that could be checked.

Milestones had stopped having dates

The plan had migration waves landing “end of Q1” rather than on a specific day. Given that the entire programme existed because of a licence renewal with a fixed date on it, a milestone with no date was the loudest possible signal — it meant someone already knew the original commitment wasn’t going to land and had quietly bought themselves room rather than raise it. I’ve come to treat the appearance of a quarter, a month, or “in due course” anywhere a date used to live as the single most reliable leading indicator I know. It’s not a sign that one milestone is at risk. It’s a sign someone has already privately given up on it.

The plan had grown black holes

Every complex migration has genuinely hard-to-size work — data quality issues you can’t see until you’re inside them, third parties who haven’t responded yet. That’s normal, as long as it’s named. This plan had several lines like “Stakeholder Engagement — ongoing” and “Technical Remediation — various,” with no real shape, no owner accountable for shrinking them, and no definition of what “done” looked like. A black hole isn’t dangerous because the work inside it is hard. It’s dangerous because nobody has agreed what the work actually is — which is usually the point at which excuses start arriving instead of progress.


Put together, those three things told me the same thing from three directions: the incumbent PM already knew this wasn’t going to hit the licence deadline, and had been managing the CDIO’s perception of the programme rather than the programme itself. That’s a different problem from a project running late, and it needs a different response. I made the call to remove him, brought in a team I trusted, and we rebuilt the plan around real dates, real owners, and a level of reporting precise enough that vagueness would have stood out immediately. We hit the deadline.

I don’t think I was unusually clever to see it. I think most experienced delivery people would have, given the same papers and the licence to act on what they read rather than what they were told. The harder part, and the part I’d actually want to ask a candidate about, isn’t whether they can spot the pattern. It’s what they did the first time spotting it meant telling a senior stakeholder that the person they’d trusted with a critical deadline needed to go — and meaning it, rather than offering to “work alongside” the incumbent for another month while the deadline got closer.