I would get called in to rewrite it, using a proper database, documented rules and ensure it stayed scalable - and everyone would be happy.
These Access "apps" were abominations from a technical point of view - but they got the job done without having to spend a load of money on off-the-shelf or bespoke software. And the "tech guy" made a valuable contribution to the company. It's only at a certain point that Access started to struggle.
I foresee the exact same thing happening in the near future - except we won't be building the replacement apps ourselves - we'll just know how to give the coding agents well-specified prompts and tell them when they're making a mistake.
What is different on this one vs the others is I have Claude to help me data dive and write the boring CRUD parts. I am able to spend so much more time with users testing and getting feedback and just thinking deeply about how to structure things. The quality of what I’m building now has never been higher and I think it’s just because I have more time to spend with it.
My experience with AI has been almost wholly positive and I wonder if Rails is part of the reason. Such well established patterns and structure the agent one shots most things and I spend most of my time wrangling view code based on my preferences.
I think what a lot of us are concerned about is that the vibe-coded stuff bloats fast. It's so verbose and all over the place, that picking that thing apart will be a huge job, and relying on an AI to pick apart work that an AI already failed to maintain seem like wishful thinking.
It's literally "The AI is failing! Don't worry I'll just use AI to fix the AI!".
And even if they somehow weren’t, we’d just do what we used to do with documents to turn them into "chewable bites": chunking, extracting, summarising,…
What I needed to do was sit with a user (not a manager/the person buying my services) and ask them to show me the different things they did with the software. Then I could write a spec for the actual _feature_ and would only need to look at the existing codebase if they needed data transferring across[1]. I don't see why our new LLM-based future would be any different
[1] Of course this meant I would leave out edge-cases and/or weird quirks of the system - often this was actually a bonus as they were either no longer relevant or worked that way because that was the only way they knew how to do it
Its not a good experience,esp the "debugger" and its traits - but a good tool that just does its job :-)