If Only We Had AI Back Then
The other day, I was catching up with an engineer friend I’ve worked with for years, and we started swapping stories about “the worst project of our lives.”
The one that came up was a migration project from about 10 years ago.
The Conditions From Hell
- Source code: not available
- DB schema: not available
- Specs: barely any
- What we had: only the UI and the data
And we were told:
“Build the same thing.”
Yeah, right.
And the source system was…
A Windows client app → migrate to a web system.
Which meant:
- Event-driven
- Heavy local state
- Tons of mystery logic
Rebuild that as a web app.
And the internals were a complete black box.
What was the toughest part?
The real killer: we didn’t understand the DB structure.
You can only infer so much from the UI.
- Is this data normalized?
- Are there history tables?
- How is status managed?
We couldn’t see any of it.
So we ended up building “something that looks plausible,” and later the whole thing collapsed.
And the project died.
But what about today?
Honestly, today I feel like we could pull it off.
1. UI → Structure Inference
Throw screenshots or HTML at an AI.
→ “Given this screen, the table structure would look like this” → “This field likely relates to this one”
It comes back with surprisingly solid results.
That part used to be 100% human work.
2. Data → Reverse-Engineered Schema
Give it CSVs or dumps.
→ Type inference → Primary key candidates → Normalization proposals
It just produces them.
You escape the “let’s build it and see” trap.
3. Auto-Generated Test Cases
From UI and data alone:
→ Happy paths → Error paths → Boundary cases
It spits out test patterns in bulk.
Quietly huge.
4. Run Everything in the Cloud
- DB creation
- API creation
- UI generation
- Test execution
All of it with IaC + AI.
Instead of the old “build and break” cycle, you start with something reasonably shaped.
That said…
It’s not a silver bullet.
- Tacit business logic
- Users’ operational rules
- Quirks of exception handling
These are still rough, even today.
Still…
That project —
I think it would’ve dropped from “impossible” to just “very hard.”
Conclusion
Back then: 👉 “You can’t build what you can’t see.”
Today: 👉 “You can mostly infer what you can’t see.”
A slightly scary thought
The flip side of this is:
We’re entering an era where you can build systems without specs.
Which means…
More half-baked systems will get built.
Summary
- Black-box migrations used to be nearly pure luck
- Today, AI can infer structure
- But business logic is still human territory
If only we’d had AI back then…
That project probably wouldn’t have died.
(Though it might’ve died for some other reason.)