My 2c: I rarely need agent mode. As an older engineer, I usually know what exactly needs to be done and have no problem describing to the LLM what to do to solve what I'm aiming to do. Agent mode seems its more for novice developers who are unsure what tasks need to be broken down and the strategy that they are then solved.
I’m a senior engineer and I find myself using agents all the time. Working on huge codebases or experimenting with different languages and technologies makes everybody “novice”.
Agent mode seems to be better at realizing all the places in the code base that need to be updated, particularly if the feature touches 5+ files, whereas editor starts to struggle with features that touch 2-3 files. "every 60 ticks, predict which items should get cached based on user direction of travel, then fetch, transform and cache them. when new items need to be drawn, check the cache first and draw from there, otherwise fetch and transform on demand." this touches the core engine, user movement, file operations, graphics etc and agent mode seems to have no problem with this at all.
Personally, I’ve found agents to be a great “multitasking” tool.
Let’s say I make a few changes in the code that will require changes or additions to tests. I give the agent the test command I want it to run and the files to read, and let it cycle between running tests and modifying files.
While it’s doing that, I open Slack or do whatever else I need to do.
After a few minutes, I come back, review the agent’s changes, fix anything that needs to be fixed or give it further instructions, and move to the next thing.
"Novice mode" has always been true for the newcomer. When I was new, I really was at the mercy of:
1) Authority (whatever a prominent evangelist developer was peddling)
2) The book I was following as a guide
3) The tutorial I was following as a guide
4) The consensus of the crowd at the time
5) Whatever worked (SO, brute force, whatever library, whatever magic)
It took a long ass time before I got to throw all five of those things out (throw the map away). At the moment, #5 on that list is AI (whatever works). It's a Rite of Passage, and because so much of being a developer involves autodidacticism, this is a valley you must go through. Even so, it's pretty cool when you make it out of that valley (you can do whatever you want without any anxiety about is this the right path?). You are never fearful or lost in the valley(s) for the most part afterward.
Most people have not deployed enough critical code that was mostly written with AI. It's when that stuff breaks, and they have to debug it with AI, that's when they'll have to contend with the blood, sweat, and tears. That's when the person will swear that they'll never use AI again. The thing is, we can never not use AI ever again. So, this is the trial by fire where many will figure out the depth of the valley and emerge from it with all the lessons. I can only speculate, but I suspect the lessons will be something along the lines of "some things should use less AI than others".
I think it's a cool journey, best of luck to the AI-first crowd, you will learn lessons the rest of us are not brave enough to embark on. I already have a basket of lessons, so I travel differently through the valley (hint: My ship still has a helm).
> that's when they'll have to contend with the blood, sweat, and tears.
Or, most software will become immutable. You'll just replace it.
You'll throw away the mess, and let a newer LLM build a better version in a couple of days. You ask the LLM to write down the specs for the newer version based on the old code.
If that is true, then the crowd that is not brave enough to do AI-first will just be left behind.
Do we really want that? To be beholden to the hands of a few?
Hell, you can't even purchase a GPU with high enough VRAM these days for an acceptable amount of money. In part because of geopolitics. I wonder how many morerestrictions are there to come.
There's a lot of FOMO going around, those honing their programming skills will continue to thrive, and that's a guarantee. Don't become a vassal when you can be a king.
The scenario you paint sounds very implausible for non-trivial applications, but even if it ends up becoming the development paradigm, I doubt anyone will be "left behind" as such. People will have time to re-skill. The question is whether some will ever want to or would prefer to take up woodworking.
Whether one takes up woodworking or not depends on whether or not development was primarily for profit, with little to not intrinsic enjoyment of the role.
Coding and woodworking are similiar from my perspective, they are both creative arts. I like coding in different lanuages, woodworking is simply a physical manifestion of such. In a world where you only need agents, is not a world where nerds will be employed. Traditional nerds cant stand out from the crowd anymore.
This is peak AI, it only goes downhill from here in terms of quality, the AI first flows will be replaceable. Those offshored teams that we have suffered with for years now will be primarly replaced (google first programmers). And developers will continue, working around the edges. The differences will be that startups wont be able to use technology horading to stifle competition, unless they make themselves immune from the ai vacumes.
I can appreciate the comments further up around how AI can help unravel the mysterys of a legacy codebase. Being able to ask questions about code in quick succession will mean that we will feel more confident. AI is lossy, hard to direct, yet very confident always. We have 10k line functions in our legacy code that nests and nest. How confident are you to let ai go and refactor this code without oversight and ship to a customer? Thus far im not, maybe i dont know the best model and tools to use and how to apply them, but even if one of those logic branches gets hallucinated im in for a very bumpy ride. Watching non-technical people at my org get frusted and stuck with it in a loop is a lot more common then the successes which seem to be the opposite of the experienced engineers who use it as a tool, not a savour. But every situation is different.
If you think you company can be a differentiator in the market because it has access to the same AI tool as every other company? We'll well see about that. I believe there has to be more.
Im an experienced engineer of 30+yrs. Technology comes and goes. AI is just a another tool in the chest. I use it primarily because i dont have to deal with ads. I also use it to be a electrical engineer, designing circuts in areas i am not familiar with. I can see very simply the noivce side of the coin, it feels like you have super powers because you just dont know enough about the subject to be aware of anything else. Its sped up the learning cycle considerably beacause of the conversational nature. After a few years of projects, i know how to ask better questions to get better results.
That's like saying "I'll just burn down my house because I can replace it. Anyone who repairs their house will be left behind."
It's true, you can replace it, so I can't put my finger on what has been stopping people from burning their houses down instead of, say, spring cleaning
If that is true, then the crowd that is not brave enough to do AI-first will just be left behind.
Not even, devoured might be more apt. If I'm manually moving through this valley and a flood is coming through, those who are sticking automatic propellers and navigation systems on their ship are going to be the ones that can surf the flood and come out of the valley. We don't know, this is literally the adventure. I'm personally on the side of a hybrid approach. It's fun as hell, best of luck to everyone.
It's in poor taste to bring up this example, but I'll mention it as softly as I can. There were some people that went down looking for the Titanic recently. It could have worked, you know what I mean? These are risks we all take.
Quoting the Admiral from Starcraft Broodwars cinematic (I'm a learned person):
> It's in poor taste to bring up this example, but I'll mention it as softly as I can. There were some people that went down looking for the Titanic recently. It could have worked, you know what I mean?
Not sure if you drew the right conclusion from that one.
I'm not using AI and I'm still an incredibly high velocity engineer because I own my codebase. I've written each line ten times over, like a player who has become highly skilled at one particular game.
Same here. It’s fine for me to use the ChatGPT web interface and switch between it and my IDE/editor.
Context switching is not the bottleneck. I actually like to go away from the IDE/keyboard to think through problems in a different environment (so a voice version of chatgpt that I can talk to via my smartwatch while walking and see some answers either on my smartglasses or via sound would be ideal… I don’t really need more screen (monitor) time)
Sorry to say but this workflow just isn't great unless you're working on something where AI models aren't that helpful -- obscure language/libraries/etc where they hallucinate or write non-idiomatic solutions if left to run much by themselves. In that case, you want the strong human review loop that comes from crafting the context via copy paste and inspecting the results before copying back.
For well trodden paths that AI is good at, you're wasting a ton of time copying context and lint/typechecking/test results and copying back edits. You could probably double your productivity by having an agentic coding workflow in the background doing stuff that's easy while you manually focus on harder problems, or just managing two agents that are working on easy code.
20yrs engineer here, all my life I've dreamed of having something that I could ask general questions about a codebase to and get back a cohesive, useful answer. And that future is now.
I would put it more generic. I love that one can now ask as many dumb questions as it takes about anything.
With humans there is this point where even the most patient teacher has to move on to do other things. Learning is best when one is curios about something and curiosity is more often specific. (When generic one can just read the manual)
One benefit is when working on multiple code bases where the size of the code base is larger than the time spent working on it, so there is still a gap of knowledge. Agents don't guarantee the correctness of a search the same an old search field does, but it offers a much more expressive way to do searches and queries in a code base.
Now that I think about it, I might have only ever used agents for searching and answering questions, not for producing code. Perhaps I don't trust the AI to build a good enough structure, so while I'll use AI, it is one file at a time sort of interaction where I see every change it makes. I should probably try out one of these agent based models for a throw away project just to get more anecdotes to base my opinion on.
I dont agree. I use agents all the time. I say exactly what the agent should do but often changes need to be made in more than one place in the code base. Could I prompt it for every change one at a time per file? Sure, but it is faster do prompt an agent for it.
At it's most basic, agentic mode is necessary for building the proper context. While I might know the solution at the high level, I need the agent to explore the code base to find things I reference and bring them into context before writing code.
Agentic mode is also super helpful for getting LLMs from "99%" correct code to "100%" correct code. I'll ask them to do something to verify their work. This is often when the agent realizes it hallucinated a method name or used a directionally correct, but wrong column name.
I think this perspective is better characterized as “solo” and not “old”. I don’t think your age is relevant here.
Senior engineers are not necessarily old but have the experience to delegate manageable tasks to peers including juniors and collaborate with stakeholders. They’re part of an organization by definition. They’re senior to their peers in terms of experience or knowledge, not age.
Agentic AIs slot into this pattern easily.
If you are a solo dev you may not find this valuable. If you are a senior then you probably do.
Considering that Agent Mode saves me a lot of hassle doing refactoring ("move the handler to file X and review imports", "check where this constant is used and replace it with <another> for <these cases>", etc.), I'd say you are missing the point...
I actually flip things - I do the breakdown myself in a SPEC.md file and then have the agent work through it. Markdown checklists work great, and the agent can usually update/expand them as it goes.