Cisco gives engineer unlimited AI tokens to rewrite legacy code
fortune.com
fortune.com
He had the translation use browser integration to compare the new site to the old site automatically. The result was so good that he had to change background color on the new site because he couldn't be sure that he was testing the new site; it was so close to the original he was paranoid about accidentally being on the old site and not knowing it. The whole thing was done in under 2 weeks, including coding, developer testing, tester testing, and deployment. It's been in production 4-6 weeks now and we've had no reports of problems.
Ultimately, the economic analysis needs to use monetary units. How much faster can return on investment be realized, and at what scale? This analysis has proven elusive because people believe that the very definition, not just the execution, of a task can be delegated to an LLM (which in some trivial sense must be true because means and ends are never sharply distinguished).
The engineer still spent a week there.
On a more serious note, the productivity increase is the time which will no longer be needed to maintain two production systems instead of one.
I've seen reports that say any organisation over 150 people needs to be paying API billing with Anthropic but here in the UK the terms seemed to be very clear when we looked that any sort of professional/commercial use is not permitted on the monthly plans like Pro and Max and you need something like API tokens or maybe some enterprise plan on their commercial terms for that kind work.
https://support.claude.com/en/articles/9266767-what-is-the-t...
My understanding is that it's only available under 150 employees.
I imagine this is a luxury cisco will not have for validation
Yes it will lead to new bugs, but the older code probably contains a ton of bugs already and is probably difficult to update (original writers long gone, docs out of date etc), so this is probably the best way out of that situation, as long as proper support is given afterwards so they don't end up in the same situation a year later (this is the hard bit).
The ra-ra commentary from the CEO is somewhat off-putting, but the idea is not all bad.
It got so bad, that in their last global event in Amsterdam in the keynote ( available on YouTube ) their CEO (or CTO.. cant recall) started within the first minutes by apologizing for the past security issues.
Nothing on this is likely to stop this trend.
(Unless I'm misunderstanding your comment, and "horrifying" was not meant to describe the code itself.)
Testing is still the long pull, even if you have an engineer with good expertise.
good thing they have unlimited token, now they would have 5 different model reviewing the work
They have to modernize the code while keeping all weird edge case behaviour. I think this can be done. And I suspect that is probably the request.
The issue is deciding what is weird edge case behavior and what are bugs. It can be a fine line.
Also, extensive commenting inside codebases is useful documentation, incl. these kinds of incidents. Good code documents the how, but not why. Comments shall also include the "why" where applicable.
The new program won't be any easier on that front. It literally doesn't have an original writer. So the new program will certainly be maintained and updated by a LLM, at which point I wonder if the language switch mattered at all?
The billion-dollar question is: what things might an LLM see as a bug or candidate for simplification, but supported a unique use case? https://xkcd.com/1172/ as always is prescient.
The thing about "rewrite X in two weeks" - or an entire company's worth of code in 24 months - is that it gives scarcely little time to do incremental rollouts to limit splash radius, or to identify and gather stakeholders to whom one can ask "why was this necessary" (or who can be guided to mine their emails and chat logs for conversations about the same).
Which is not to say this shouldn't be done! Let AI-native people guide the momentum with all the fervency of a hungry founder... but find project leaders who are committed to the empathy towards those who depend on the quirks of their workflows - ones who will create "curiosity loops" that try to bring in stakeholders as rapidly as possible on material questions, not just "continue, follow what you think is best" loops when the LLM brings up an open business question.
If they didn't have a very comprehensive test suite at the end of the exercise, then based on my experience someone is kidding themselves.
A friend had a tiny accounting system - maybe 15k loc, written in a combination of Python 2.7 / bash / LaTeX. I migrated it to Python 3.13 or whatever by hand. I did try using an LLM for that, but it did things like delete chunks of functionality so I had to check every bloody line it changed. Translating Python 2 to 3 is a fairly mechanical process, so traditional tooling worked better. Then I thought I'd explore LLMs by getting one to translate it to Rust.
The original had no tests or doco. As others have noted, the first attempt superficially looked identical to the original near immediately. You think "Wow". But in my case, it was riddled with bugs. When I asked it to fix bugs I noticed, it introduced as many bugs as it fixed.
I eventually figured out the limited context meant it kept forgetting all the lessons it learned when it fixed things, so it reintroduced old bugs and misunderstandings fixed earlier. (Like I said, this was a learning exercise.) Which is how I came to the same realisation a lot of the industry has - the solution to the context problem is you have to define the application via tests, then tell it to make the tests pass.
The tests rapidly became huge and unwieldy, so part of the exercise became DRY'ing the test code out by getting the LLM to build an integration test harness. The harness captured UI responses, files written, emails and printer output; froze time; fed in known input; and compared the outputs with results captured from the original program.
That cured the bug injection problem, but there were still bugs in all sorts of unexpected places. By unexpected I mean places I would be surprised to find them in human-written code. Human devs run the program in the same way human users do. They use the backspace key and the browser back button to navigate as they test their work. AIs don't. They will use APIs to inject test data unless you explicitly tell them to do it differently. The size of the tests exploded to be far, far larger than the code. Rather than coding I spent my time testing, telling the LLM to write tests to catch the errors I found, then writing standing prompts to try and prevent similar errors. It was meant to be a vibe-coded project, but in the end I got worried about code paths I suspected existed, so I looked at the code anyway to see if they were written the wrong way. Sometimes they would have blown up, say when the SMTP server was offline. To be fair, there was no need to look - I could have just asked the LLM. How a programmer without decades of experience would know what to ask is a mystery.
There is no doubt I got a working Rust program faster than if I had written it myself. Several times faster - but not orders of magnitude. If it was a program I had written, so I was very familiar with it, and it had excellent doco, and a high-coverage test suite, it probably would have been orders of magnitude faster. I think Bun's Rust migration might be an example of that - it's a best-case scenario. There were lots of early announcements, but it took over 6 weeks before they were confident enough to ship it in Claude Code.
But an "I migrated a program with hundreds of thousands of lines of code to a new language and ended up with production-ready code in a few days" - sorry, pics or it didn't happen.
What have been achieved using this port?
And how did you make sure the port is correct?
I'd ask "did you make sure the port is correct?"
Followup question: did anyone read the automated test suite?
Silence.
The software rewrite is shelved.
The goal and objective is to deliver value for your user/customers; to the speed, reliability, and assurance requirements your market segment expects.
I’ll take the system written in a language that people can maintain and fix
The answer is always that the rewrite was bug-compatible on purpose, the bugs were to be fixed later on the more tractable system. Every time development was abandoned right away, because there was no gain in using the new system.
Why not just ask the coding assistant?
If you have good test coverage, and the tests are reliable, then what's the problem?
If your engineering culture is bad already and you don't have good test coverage or they're flaky or whatever then that is different. If that is the case, it is probably from smart-ass attitudes like yours asking these "clever" rhetorical questions to derail people trying to improve things that led it to be like that. Do everyone a favour and keep your mouth shut and let people fix things.
27 is still quite young though and very possibly over confident.
Perhaps I'm merely feeling my age. But while I suspect Cisco will eventually be disappointed, my emotional state remains a profound void. There is no feeling.
I reserve empathy instead towards those at Cisco who chose rightly in life. They get to work, they do the job, they return home, they feed their family bread. Please endure the 'vision' of your corporate masters. You have already arrived and your destination is good.
When I was young I was told the book of Ecclesiastes was depressing. But with age I see it as a book of hope. Your job is pointless and that will never change regardless of your token burn rate. Enjoy your family as the sun sets.
For anyone who wants to run the game in your browser, here it is - https://bonkheads-port-by-kapil.pages.dev/
Good memories of playing this at a friends place, way back when
It is almost an exact copy of the Mario battle game, Im surprised Nintendo didnt nuke it.
A change in behavior maybe construed as a bug, a breaking change or a regression, and a lot of time it's not so obvious. Sometimes you want the original behavior, sometimes you don't. Sometimes changing one for the better means another behavior needs to go, and you don't know if the user already depended on that other behavior. That's the real staying power of legacy software despite universal agreement that they suck.
https://www.cisco.com/c/en/us/support/docs/field-notices/743...
"Cisco Access Points That Are Running, Or Have Run, Releases 17.12.4, 17.12.5, 17.12.6, or 17.12.6a May Exhaust Flash Space, Preventing Upgrades"
Recovery path basically involves either factory resetting every single AP or up to, if it's already bricked, Cisco TAC + you having to console into every single bricked AP you have to pass a secret challenge/response at the bootloader to flash a recovery image :)
If history has taught us anything. It’s that the measure of a successful product is usually more to do with its sales people.
Almost every new product of theirs I’ve touched in the last 20 years has been trash, and even the R&S golden goose is being dragged in that direction with customer-hostile functionality like Smart Licensing and a general decline in quality.
Being a mess isn't a problem when you have more than 6 items context.
We had developed the original app in 2020-2021 when Covid was around, and we were bored sitting at home not having much to do, and wanted to learn Angular. Our employer/company we worked for, wanted all of us to be to be Full-stack and both of us were backend developers. Hence we did our dating app as a side project as my co-founder was single.
Initially it was a $100 Claude Max license, and we were maxxing it at every stage, but once rewritten, $20 is good enough to maintain it.
I'm not trying to be anti-AI snide. Having it write tests, having judge agents, reviewing every PR? I'm legit curious.
We reverse engineered our Angular/Spring test cases to English. After rewriting, used the English test cases to automated tests again. Also released the new app to a niche/specific country audience at a time. We also have a form for users to log complaints. A few came and we fixed it.
https://slimemoldtimemold.com/2026/08/05/a-stupid-idea-for-a...
Just like you just need to ask the LLM to "make it bug free".
(At this point even I'm more sure if any of this is sarcasm.)
The main takeaway though is we had one person, in a single month, do the equivalent of at least a couple years of work for a small team. We view bugs and performance issues as a currently inevitable part of the process and we are dealing with them with models just like we do with humans on every other project already. Overall though it is representing an absolutely massive speedup. If you work in an environment where the models make egregiously more mistakes than your human counterparts then I am quite jealous.
Otherwise he's just going to replicate all the legacy bugs and questionable design decisions.
Right? ...
[1] https://github.com/enterprisequalitycoding/fizzbuzzenterpris...
It's a bunch of text files in a repo with massive churn (all new version 5!), but somehow even the technical debt 'skill' (i.e. text file) has technical debt itself:
https://github.com/DietrichGebert/ponytail/blob/main/skills/...
> ...every ponytail shortcut is marked with a shortcut: comment ... (older code may say ponytail:).
-Works according to a defined specification
-Within the bounds of that specification, has a lot of code written to optimize speed, cost, latency, etc - all measureable goals
-Written in c, with all it's weakness
-Given limitless engineering work, some could be ported to better hardware
-the new system could be automatically compared to the old system for functional correctness
All those factors fit well with agent based development.
Btw, many of them are true in general to embedded systems.
Then consider that not all vendors implement the standards identically, because the standards can be a bit woolly and in some cases followed rather than lead live implementations.
There will be a bunch of code that looks useless, but is actually there because of specific interoperability scenarios.
I wonder whether AI is any good at looking at that code,running the system, and documenting those edge cases?
Lots of this stuff should work in theory, you only find out that it doesn't in practice when you try it on real hardware. And there are thousands of bits of hardware.
This whole thing sounds like a deluded vanity project birthed in an ivory tower.
But yes, fact it uses a bunch of very well documented standards with multiple implementations gonna help massively
The whole design where you need to get a magical list of IDs to decode the metrics and the list is not even shipped with device is entirely asinine
There are also tight time budgets (basically SLAs) that must be met along with memory considerations (both in SW and on the NPU/HBM), not to mention how the device needs to respond to load and various failure scenarios.
- explore the features and behaviour of the existing code
- first write lots of E2E tests for literally everything
- human-in-the-loop to review the feature list and test cases to see if some obvious or important stuff is missing
- then let implement it and verify by tests
I used this in (way) smaller scenarios and got really good examples with minimal human interaction.
Legacy code is typically a euphemism for old unmaintained code, no one knows how it works so it can be edited, and it probably doesn't align with current work practices.
Not to say a rewrite is necessary right, but avoiding rewrites of working code is how we ended up with more COBOL code than COBOL programmers in 2026.
I think people are assuming the worst but AIs most helpful contribution beyond churning out code is explaining the code base.
Who knows if they will do a good or bad job that's down to the engineers and not the tools imo.
The issue with using "the code as the spec" is that humans can't read 100K lines of code in a day, can't hold the entire ball of unstructured mud in their brains all at once, and generally require hierarchical "structure".
Modern AIs just don't have these issues! Their context windows are big enough to encompass an entire codebase, so they can "see everything", all at once.
Each line of new code they write is compared against every relevant line of code in the original, which they treat as a spec.
My main issue in my experience is that that AIs tended to reproduce the legacy behaviour "bug for bug", which was not my intention.
Similarly, the AIs were hamstrung by external constraints: I typically prefer to leave the DB schema unchanged, which meant the torturous workarounds were needed for design errors in some stored procedures, etc.
The older the code, the bigger the issues with baked-in assumptions about transactions, stateful sessions, data types, string formats, etc.
This trips up AIs just as much as humans. You can't trivially maintain backwards compatibility and modernise the codebase! Those are conflicting goals, no matter what.
Not necessarily. It's the name for the last thing(s) before the new thing, but you can't shut it down because people are using it and/or the new thing actually isn't so great.
Surely we have more code than programmers for every language in existence?
Except for the part where the concept isn't even well-defined, this sounds like a complaint that the world contains more bricks than bricklayers. Of course it does.
E.g. some critical security vulnerability that is not backported to the library/compiler/runtime you are using in production, or you can't get spare parts for your servers any more so need to upgrade to something newer but you can't run your old OS version on new hardware so you have to upgrade the OS too and now it's dropped support for foo etc etc. Lots of things pile up.
I don’t believe it has to be this zero sum game where either you use AI and lose understanding or you don’t use AI and gain understanding. There’s a way to do both since, if used properly, AI could be the best teacher we’ve had.
Most engineers should be aware of ADRs. This is in the training data. LLMs know what to do with this.
I feel like that's a pretty standard expectation, even though we all know that the commit history can be 50% "fix bug -> fix bug try 2" and good documentation is often missing.
Your rewritten codebase will presumably look much cleaner and more maintainable that what it's aiming to replace, but it's easy to miss the purpose/necessity of all of the old "cruft" which need not be just poor coding but rather later enhancements not anticipated by the original design whose implementation was therefore crufty.
Does anyone here work at Cisco, and have any insight as to why a rewrite is considered necessary and might be expected to succeed?
A rewrite has historically been a huge mistake in many situations, some of which I've personally had the agony of witnessing firsthand, powerless to stop it. But AI completely changes the calculus because it doesn't waste significant developer time or energy crawling back to the previous working state, it just does it while you go get coffee. And this I've found to be a huge benefit, that I can continue making my codebases nicer to work with and better documented/integrated with bugs stamped out for free. There are upsides to a rewrite, and they're now much more likely to be worth it as the downsides are automated away.
AI has no magic powers to figure out what the “API/etc contracts” are in a nasty old codebase. This problem is fundamentally hard and not always well defined.
AI is also (at least for now) not consistently good at writing tests that test the behavior that matters. Recent models seem to be getting slightly less bad, but again, this is a hard problem.
I’ve personally used AI to rewrite gnarly code where the goal is to have exactly identical results to the old code. GPT-5.6 Sol could do this correctly with some extra help guiding it to rest the right things, and I haven’t tried this particular task on a newer model.
But ancient code like in the article is probably an enormous buggy mess full of accidental behaviors and implementing protocols in ways that do not fully match the spec. Some, but not all, of the mismatches will be cases where the spec is wrong. Sure, an AI can probably generate a new implementation with a similar set of bugs, but is this what is actually wanted? Also, depending on the gnarly set of bugs, a clean implementation may be unable to reproduce the bugs, leading to a messy implementation instead.
An LLM doesn't have enough context to know what you so and don't want. If you give it call logs for every function that was called and how, maybe, but a seasoned engineer will have more context around what the company needs.
But there is pretty big risk of false positives and negatives; some "bugs" are design decisions that were not documented well/at all, and inevitably some new ones will appear when it reasoned something wrong.
AI makes these projects significantly more feasible, at least in my domain. We have some critical-path software I wouldn't touch with such an approach, but the vast majority of our code is internal and/or supporting tooling.
For those cases, burning it down and rewriting via AI tooling has proven far more productive than anything we have attempted in the past. This is for old technical debt laden stuff everyone has been afraid to touch for well over a decade.
It's not perfect, but it moves the needle where before a lot of such projects were stuck on the backburner for years.
It certainly introduces new bugs and such, but at least this way forward momentum is happening vs. just being stuck in decision/analysis paralysis forever.
This also assumes some very senior SME folks are driving the process. I would not expect similar results with junior or even mid-level folks in these specific domains.
One of the reasons to avoid rewriting has long been that the time spent rewriting code that works is time not spent writing code to meet new business needs. In other words, it's usually a huge opportunity cost, rarely balanced out by sufficient gains to be net positive.
I do think AI does challenge this prior, as the time needed to do a rewrite shrinks dramatically. It's not zero, of course, but it now becomes worth asking if it's worth doing, rather than defaulting to avoiding rewrites in nearly all cases.
Ha, Ha. Tell that to Gnome or KDE teams.
Until one day you leave and the next guy comes and says “what is all this shit”
A critical security firmware update once brought down redundant pair of firewalls we used because the bug didn’t manifest until a counter buffer overflowed months after application. Three hours into the outage the tech power cycles the thing and our services came back to life.
Cisco is only doing this because some other alternative is more expensive. They had more than a decade to get started.
We had to turn off a bunch of on-by-default features in the system I'm deploying now because IOS matches too aggressively and decides that arbitrary UDP datagrams are DHCP requests or PTP packets that need rewriting (and then dropping when they turn out to not be DHCP/PTP). I have to think that an AI rewrite with a today-good model would recognize the lax checks and do them better.
it's weird new reality, but if it works it works I guess. I'm still waiting on the first vibe-coded mass used prod app, not ware of any yet.
https://www.reddit.com/r/programming/comments/eaqgk/java_is_...
"XML is like violence: if it doesn't solve your problem, you aren't using enough of it." -Chris Maden
https://www.reddit.com/r/ProgrammerHumor/comments/1mbgih/xml...
"XML is a giant step in no direction at all" -Erik Naggum
https://quotefancy.com/quote/1643080/Erik-Naggum-XML-is-a-gi...
The views of these business leaders betray their own lack of vision, they are barking up the wrong tree.
The ability to think differently is not the preserve of the young. Instead of only hiring a bunch of greenhorns they should identify and cultivate people who are idea generators and flexible thinkers, of any age group, starting inside their own organization.
If you, as a business leader, are not stimulating a culture of innovation and instead maintain the status quo of traditional hierarchical roles where managers become gatekeepers of ideas, and everyone is protecting their own little domains, then you are the problem. Shit organizations will quickly turn original-thinking young people into corporate drones.
yeah, i think they'll survive whatever the outcome
I'm worried for us users of the internet rather than them.
Jeetu Patel is the CEO of Cisco, Paddy is actually Padmanabhan Krishnamurthy, a 27yo student/fonder.
Not clear to me what he's doing. Re-implement switching? Simplify features? Reduce LoC? Add test coverage? Either way, AI in that world will be helpful. I'm sure it'll spot all kinds of problems in opaque drivers that are hard to follow from MF specs.
rewrite can be done to quickly refactor and/or close the feature parity, improve the UI/UX for end customer, add missing features or integration needs
it's the testing in real world usage to shake out all the edge cases and bugs that's hard and that you can't just write unit tests for
LOL. All 27 year-olds looking at a heap of legacy code think they can easily rewrite it better. It's never as easy as it seems on the surface.
On the other hand, models a few years from now will be smarter and more likely to have a track record of success with this task, so being one of the first to do it makes no sense even it had advantages.
So there's no urgency to rewrite; it's all risk with little to no reward for a problem that will probably be much easier to solve if you defer it a little longer. Like, first at least get to 100% AI automatic development for all new products/services, and then for all maintenance, so you know that it actually works.
Fortune's source was the CEO himself:
> “I’ve given him unlimited tokens because he’s going to refactor code,” Patel told Fortune at a small roundtable dinner. “So I’m like, you can go, you can go nuts.”
I think that Fortune story is better than the Tom's Hardware one. It ties the Cisco anecdote into a larger trend of some people deliberately hiring younger, less experienced developers for their AI projects - because they are more likely to be "AI native".
I frequently find myself in conversations with people who are resistant to AI and turn out to have a very skewed idea of what it can and cannot do.
Or they were reading your comments and articles and couldn't reproduce any of the fantastic results that you were claiming, even back then. Things have indeed changed since the first Opus release about a year ago and LLMs are good at programming now. But still, experienced professionals are not so keen to sign off 1000s of lines of code that they never read, take responsibility for it etc. Also, it is a different job and it will take some time to adjust. Can you blame them?
Moreover, other trades have their own guilds or are otherwise protected through regulation. Can you blame programmers for fighting to keep doing things as they were doing it until recently?
Demonstrates fanatical devotion to capital’s golden idol - “yes, all of the code; yes, unlimited budget”. Doesn’t actually cost the company anything - only one engineer off task, any nuggets of value can be harvested as it progresses but any costs or big changes can be deferred until completion of the impossibly large open-ended mandate (ie never), one guy won’t have the personal bandwidth to spend so much that the “unlimited” part actually matters, and in case of emergency it only costs six months severance to make it all go away. It even rescues a fellow national from the ignominy of being employed so far below his previous station, there’s so much to like about it. Hmm? The code? What about it?
I see you haven’t met my coworkers and their fanatical use of parallel “workflows”
Tell me you don’t use agents effectively without telling me you don’t use agents effectively.
The feeling of coding like that is a bit like realizing that an elevator is 10cm of aluminum and a 100 meters of empty space under your feet.
After the first few bouts of existential dread you get uses to it.
Lightly manually edit for speech rec failures.
LLM takes that and converts it into a much much denser, much more structured technical spec in markdown. This is issue 1 in the repo.
I edit this directly extensively, adding detail, removing misconceptions, adding sections with more dictated text.
LLM takes this and further densifies it, closer to an actual implementor’s spec. I carefully note what got added, removed, edited in this step.
I edit this carefully and extensively again. Some removals get added back, some additions get removed. This is the first commit and closes issue 1.
I then have an LLM write an implementation plan and basic project scaffolding. Makefiles, smoke tests, logging, test framework, DI. I edit the plan, and the plan is the second commit. An LLM uses both plus scaffolding plus my repo policy documents (global) to write a README. We’re still single threaded.
An agent files the first n top level implementation tickets. These refer to and sometimes quote any interface contracts in the spec or implementation plan. These usually map 1-to-1 to a module/directory. These sometimes have stub commits to create the module directory and commit interface definitions. Some larger modules have a README in their module directory if their purpose or structure or inputs or outputs are complicated or non-obvious.
Parallel agents write commit level issues that are the task items for each top level implementation ticket. One agent per module.
Then, spawn parallel agents with detailed global instructions, the full spec+plan, and the full readme, and the full code from the module it is working in, plus the issue text. Its output is a single commit on the feature branch and a PR that closes out one feature ticket.
This spawns an adversarial reviewer which has detailed agent instructions as well as our code style guides and repo policies. The scaffolding includes tests and linting and checks. Any failures spawn rework agents until the feature branch is up to snuff.
I review the feature branch diff and merge it, having read the review and rework comments on the PR. I frequently add comments about the implementation (“don’t do x, do y”) and add WIP: back to loop it back for more rework. I don’t see anything that isn’t green, formatted, passes linting, passes tests, and a (dumb) bot thinks is ready to land. Most of the time, it is. Sometimes, it did it the wrong way and I correct it.
The more modular the code, the easier it is to parallelize (obviously). It is ridiculously easy to build large software quickly now, provided it is sufficiently modular so the implementation doesn’t have to cross modules very much. The detailed spec and implementation plan up front helps a lot with this. It’s a lot like writing multithreaded programs really.
Any bugs discovered are tackled with strict TDD, one commit with a failing test, one bugfix commit that must be green and not touch the test.
Individual modules must conform to good contracts, meet best OOP practices, and fit into context. Too big and they get broken down further. Context size is actually a useful constraint for code structure here.
This workflow, the code standards, the styleguide, the linter settings, the fmt settings (obviously only applicable to non-Go as the Go fmt is not configurable), everything is global and stored in another repo and is vendored into each AI managed project repo. It has a fair bit of “I shouldn’t have to say this, but…” stuff (in the style of “fire codes are written in blood” - each warning sign came from experience).
My results are quite good. It’s as the saying goes, much like managing a team of junior devs. It is easy to end up with a LOT of parallel implementors, reviewers, reworkers, and tons of CI, but it’s still so much vastly cheaper than humans that it doesn’t matter.
Someone will make a LOT of money wringing out the inefficiencies from this workflow, because I think the “agent as replacement for third-world contracted junior dev” model is the one almost everyone is using right now.
“If you don’t hire the early-in-career [workers], and you just let your workforce continue the way that they were, where do fresh ideas get injected? How do you challenge the status quo?” he said."
-------------------
This would be an interesting approach for a bleeding edge startup that's betting big on producing something novel or going bankrupt. If you're going to bet the company on one guy and some AI, that's bold. He'd better have some serious chops and not be merely a slick salesman.
However, Cisco is an infrastructure company. Status quo is what most people want from an infrastructure company. You don't want your Cisco stuff to suddenly start doing new, innovative things that require a complete redux of everything built on top of it. This, of course, assumes that having one guy do a refactor of your entire code-base produces something "innovative" rather than a cavalcade of snafu's.
It's probably not the best time to be holding CSCO.
I’d love to know what internal services and tools that are included in this, as well as any deliverables that shipped as software products to customers.
If it’s legacy code for IOS firmware, however, I’d be very worried.
I think it is a reasonable risk to encounter these bugs again in order to get a more clean and documented codebase. Especially when asking AI to plan and A/B release is also trivial.
The ability to clean room Adobe products came at about the same time Claude's RE abilities suddenly improved.. Hmm lets think about this a little more.
Anthropic sucked the bones dry of the public domain, literature and all of opensource. It seems likely that Anthropic RL'd Claude into being a great reverse engineer because it needed more training data.
I believe that Anthropic turned Claude into a digital software shredder and started decomping proprietary code, like adobes.
So the reason Claude can suddenly clean room Photoshop isnt because it became a more capable programmer, but rather, the Adobe code is literally in its training data now.
Ciscos internal legacy code is not going to be in Claude's data (yet).
The decision to increase Claudes ability to RE is brilliant, because now everyone is doing the source code decomp for them, and sending them fresh data from previously closed source repositories of code.
Thanks for the very thought provoking reply tho!!!!!!!!!!!