Rescue: a modernization program flagged red by the client
I took over a two-workstream modernization program at a Fortune 100 financial services firm, weeks after the client’s own domain review flagged it red. A legacy platform being rebuilt while it stayed in production. Findings in week one: no delivery methodology, no governance plan, no documented commitments, and nobody — on either side — owning requirements. Requirements were being reverse-engineered out of legacy code.
Fourteen engineers across two workstreams, some moving between them. A hard seasonal code freeze I could not move, and a client executive who had already lost confidence. I could not change the team quickly, and I inherited a backlog generated largely by AI from the legacy codebase — tickets that looked complete and carried no business logic.
Led. Primary delivery owner and the client’s main point of contact from delivery lead through executive sponsor. Shared the account with a delivery partner; I owned governance, staffing, reporting and client communication.
Defined milestones with the client rather than inheriting a date, and put one named owner on each. Narrowed three parallel batch jobs to one with a single owner, and reduced front-end scope from five transaction types to one proven end to end, on the reasoning that a repeatable pattern beats five half-finished ones. Rejected: holding the original date and pushing harder — closed volume against work in flight said it would not land, and a missed date after a death march costs more credibility than a renegotiated one.
Nine milestones defined across the two workstreams where there had been none. First two demoed sixteen days after I landed — the first working increment the engagement had ever produced — and presented to the business four days later. On the batch side, specification approved first pass by both client reviewers, stories written the same day, build underway four days after that, on a workstream that had produced no build work at all. My engineer there was promoted to technical lead for work he was already doing, with the client’s explicit backing.
One transaction type complete end to end by the end of September, in production ahead of the October code freeze. The remaining four types then follow the same proven pattern rather than being rebuilt from scratch. Success is working software in production before the freeze, and a pattern the team can repeat without me in the room. In flight.
Phase 1 delivered ahead of the October freeze: all three template files generating on demand, the four remaining lookup domains defined and built, endpoints standardized, and live service reads replacing reference data with output validated against the legacy system by checksum. The client’s bar is one to two batch jobs live for their seasonal peak — Phase 1 is the first of them. In flight.
I moved on governance before requirements ownership, and requirements was the more expensive gap by a wide margin — it has cost more time than engineering capacity ever did. Where a client-side expert owned the specification, the work moved within days. Where nobody would take that seat, it did not. Next time, naming a requirements owner is a condition of the plan in week one, and I escalate the absence of one as a red risk immediately instead of absorbing it.