Reframing Impossible: From Legacy App Nightmare to Modern Solution
When a client demanded resurrection of a 10-year-old iOS app, we reframed the impossible request into a solvable problem and delivered in two months instead of chasing legacy code.
Overview
A junior PM came to me in distress. Her client suddenly demanded we resurrect a 10-year-old iOS app that had been sunsetted before we even won the project. The urgency was real: new iPads were arriving in a month and they needed to deploy kiosks immediately.
What made this challenging was that the original app was:
- 32-bit architecture (won’t run on modern iOS)
- Built on legacy Ionic 3 framework
- The original developer was long gone
The client assumed it was a simple fix—just update the printer driver. They saw a technical problem where there was actually a product strategy problem.
The Challenge
The request looked impossible from a technical standpoint:
- Resurrecting 10-year-old code with no context or documentation
- Using a framework no one on the team was familiar with
- Potential for throwaway work if the resurrected codebase proved unsustainable
But beneath the surface, the client’s problem wasn’t “fix the iOS app”—it was “we want kiosks on these new iPads.”
The technical request was a symptom, not the actual need.
The Solution
I coached the PM to step back and reframe the conversation. Instead of responding to the impossible request, we identified the core problem statement: the client needs kiosk functionality on modern iOS devices.
Working with the engineering team, we developed two option paths:
-
Resurrect the legacy codebase
- High risk: unfamiliar framework (Ionic 3)
- Potential throwaway investment
- No guarantee of long-term sustainability
-
Add iOS support to the current web app
- Safer: team already knows the stack
- More sustainable investment
- Requires: USB device bridge code for printer connection
Rather than debate, I recommended a 2-week proof-of-concept experiment: build a simple bridge to access one USB device. This gave us real data to present—evidence instead of speculation.
Results
The bridge worked perfectly. Armed with this concrete data, I walked the client through the comparison:
- Option A estimates: 6+ months, high risk, unfamiliar tech stack
- Option B (POC): 2 months proven, leverages existing codebase, sustainable
The client agreed immediately. We shipped iOS support in two months—delivering kiosk functionality on their new iPads exactly when they needed it, without touching a single line of that 10-year-old legacy code.
The Learning
When a client request looks impossible, reframe it as a problem statement. Ask what they actually need, not what they’re asking for.
Then explore multiple paths with data:
- Don’t debate in abstractions
- Run small experiments that generate evidence
- Let the data tell the story
A tiny proof-of-concept beat months of architectural debate. We turned an impossible request into a strategic win for everyone.