- cross-posted to:
- technology@lemmy.world
- cross-posted to:
- technology@lemmy.world
Just to get that straight: Legacy code is practically always large code with countless hidden requirements, and with insufficient or no tests and without documentation. But which works somehow. Any change needs to meet numerous unwritten requirements, and it can often only be tested in the real world. If you have N features, you have N*(N-1)/2 interactions between two features, so it is quadratic growth with N. This is why it is very hard and time-consuming to change.
It shouldn’t be that way, but writing large software - especially in commercial environments - is often like climbing a high roof on a ladder, and then throwing away that ladder. Modifications are only incremental, and usually not documented. Incremental modifications are one of the only two working engineering approaches for software we know - and the only one used for commercial software.
The other way - which is used in aviation for example - is to specify, document, and test everything, right from the start.
Now the problem is you can rewrite legacy stuff as much as you like, but it is near impossible to make sure that large changes work. Because in order to do that, you would need to run the tests that do not exist, or create tests from specifications and requirements which do not exist either.
And GenAI tools are not going to change that. The agentic tools kinda work by filling in missing requirements with assumptions and average observed stuff. It can generate reams of code, fast. But while this kinda works for a small phone app, it doesn’t for large complex stuff. If the code does not fit in the head of one person working for months on it, it will never fit in the context window of an LLM.
I’ve always thought that reverse engineering should have a counterpart. Reverse specification.
Or taking a working system and figuring out what it was designed to do and how. Then writing tests to that so that real world testing is not mandatory.
This is horrendously difficult, since I’ve never knew anyone achieving a successful codebase rewrite.
Another issue also is differentiating between hidden requirenments, undocumented features (positive), bugs (negative) and developer choice made during coding of the legacy software which does not affect the program positively or negatively.
A LLM (or alternatively a tem of developers) could do a reasonable well job of repuducing all these features and behaviors in a new program. But at that point you have effectively just cross-compiled your code (and maybe refactored it a bit).
The real issue is in identifying essential and wanted features from all the features, even if you could magically extract all of them. And in most cases that requires a deep understanding of the target audience/customer, which I would argue no person (including the customer), let alone a LLM, just has without years of requirenment refinement.
Cisco just handed a 27 year old unlimited AI tokens and the keys to 98% of its codebase. Somewhere, a senior engineer is quietly updating their resume. Rewriting code is easy. Discovering why that horrifying 1998 workaround exists is the actual final boss.
Don’t worry, guys. I am sure he adds “make no mistakes” to every prompt. No review necessary, push straight to prod.
“Claude, rewrite all of these repos but better”
Done, and done!
This should be entertaining
Oof, forgot to tell it to make no mistakes. That’s gonna cost another 6 months.
Claude, spawn seventy agents and have each rework the repo with a different method. Watch for mistakes they make and execute the agent responsible as an example to the others.

So they’re replacing battle-tested unmaintainable old code written by humans with bad unreleased unmaintainable new code written by ai.
Both are unmaintainable. What’s the punch line?? Is this not the onion?
My boss did the same thing. A team of experts working on our SaaS applications for 20 years, constantly improving it to be more secure, more maintainable, more usable, more performant, better organized, better documented, more thoroughly tested, more accessible, more suited to what users needed, more adaptable, using the most appropriate technology stack, protected from various attack scenarios, fully standards compliant, efficient to deploy, etc., and we just found out he vibe-coded a total replacement in secret all on his own in a couple of months using Claude and all written in JavaScript, and he is putting it live and retiring what we built. He wasn’t even going to tell us until he had migrated the last customer over to his thing, so he’s been letting us all work on projects that he had no intention of using, just to buy time until his slop was done.
I don’t know. Everyday is the onion.
Is that why I’m crying ?
Nah you just got something in your eye!
lol
When I was 27 I’d been coding for 15 years, so age alone shouldn’t be the red flag.
What is going to be a pop problem is the insane number of Chesterton fences stomped down that fuck everything over, or things that look like they can be optimized out or use cases you don’t think actually happen.
See rust core utils for an example of extremely well trodden and well reviewed software that ran into these issues for years. Not that it’s a bad effort, it’s an inherently hard task.
I think the 24 months is the scariest part. If the Eng is starting now & has 24 months, that’s one can of worms.
If they’ve been rewriting over the last 2 years… AI has changed a lot for code writing in that time… 😬
had founded a translation startup
Doesn’t Cisco know any networking and firmware experts, with extensive legacy code knowledge, who could vibe code through a well thought out plan?
Every single person who actually does work for a living at that company said no, so when the final decision maker found themselves isolated and ridiculed, they decided the collective experience of their employees was meaningless and did this.
Legacy code is still around for a reason. It’s not usually just a matter of refactoring it, but the business logic tied around it all.
Good luck lmao. Cisco will be underwater in years if they actually commit to this.
Isn’t Cisco gear running a lot of the Internet backbone? This should be interesting…
time to buy cisco stock, just remember to dump in about 2 months when this inevitably goes to shit







