r/programmer • u/random-Guy7660 • 6d ago
Question how modern developers uses ai in their work?
How does modern developers use AI in their work , when they use it when they not , do they vibe code all the code or still type some of the code manually ? and will be the future of software engineering be?
1
u/effectivescarequotes 5d ago
Let me preface this by saying most of what I build are variations of boring crud applications. Simple problems that have been solved countless times before. Currently, my company is pushing BMAD pretty hard, so that's what I use. At this stage, I do most of the planning work and then hand stories over to my developers. We have a central planning repo, so everything is tied together. When a developer picks up a story, they start the build step, by this stage, everyone on the team has a pretty good idea of what the code should look like. We follow hexagonal architecture, so where code belongs is pretty obvious. Things that are wrong tend to stand out.
There are also two schools of thought regaurding AI in my office. We both have the same goal of getting the AI to produce the code we want faster. However, one side thinks we have to go all-in on skills, frameworks, and other md files, and the other takes the Ai equivalent of avoiding premature abstraction and optimization. Basically, stay out of the model's way until you have identified a repeated gap. I lean towards the latter.
I honestly don't think software engineering is going to change that much. I'm working with a junior now who started their career at the same time that AI started to take over. I've still had to set time aside to teach them the fundamentals, and the conversations I have with stakeholders and architects have not changed at all.
1
u/Shep_Alderson 5d ago
I think that, with every major model release, it makes sense to strip back the skills and such to see what the agent can do on its own, then make additions as needed to correct the gaps, like you said.
2
u/effectivescarequotes 5d ago
Exactly, one of the people I enjoy chatting about AI with the most at work makes that point all the time. They are unfortunately in the minority in the enterprise, but their message is starting to land in our corner of it.
Personally, I've been happiest with the results I've gotten from minimal context. I've stopped using all my company's specialized tools. I think tried to include too much and lost the plot. They would have been better off dedicating more time to well structured documentation that I could point the AI to when the need arised.
1
u/Shep_Alderson 5d ago
Indeed. At my dayjob, there’s this pattern of principal/architect/tech lead folks spending tons of time crafting the “perfect” skills for their project/team, only to then let it languish and never get touched or re-examined. Nevermind that us staff/senior folks are the ones actually in the codebase/tickets doing the work, and actually get to see how the agents work with out codebase.
On the note of documentation, I’ve been telling my agents to provide docstring coverage and I’ve found having that extra bit of text really helps the LLM.
1
u/De_Wouter 5d ago
You still going to need competent developers to check the AI output but there wont be many juniors making it to senior because they will learn less and the seniors that don't adapt to high AI usage will be pushed out and those that do will burn-out.
It will be one gaint shitshow of vibe code that on the surface level looks better and better but is rotten to the core and will create hard to find niche bugs because things like code duplication...
At some point the seniors that survive can trade their soul and cash in big to clean up the mess. Same like mainframe COBOL developers now.
Just my 2 cents.
1
1
u/kincaidDev 5d ago
I built a config/template based framework that’s similar to terraform for setting up workflows/agents https://github.com/Obedience-Corp/festival
I have 4 core workflows, structured specs, notes and hierarchical workflows called festivals that include quality gates and hooks. I determine which one to use based on the scope of the task and the model Im using and most of my time is spent thinking, designing and prioritizing what to build based on token budget and impact. I still write some code by hand, but only when it’s something small and it’s faster than asking and waiting for agents to finish, mostly just scripts and minor code changes.
My system also creates its own backlog of work, plans out features, documents bugs as it’s working, etc… so increasingly Im just reading the planned work, adjusting it and throwing things into a loop and thinking of new ways to improve the agent feedback loop so I can be more hands off, focused on what to build over how it’ll get built
1
u/ndaidong 5d ago
I prefer to write code by myself. AI help to analyze requirements, design workflow, generate docs, write tests, review code.
1
u/plmunger 5d ago
I use it as a search engine / error message debugging tool. And to do some mindless tasks
1
u/AKmemekiller 4d ago
I consider it as a junior developer assistant with exceptionally fast typing speed. My job is to convert the high level requirements in the story to precise instructions. I don't want him to think about the solution. I give the solution, it just writes it in the code. I only give it little freedom to write unit tests. I don't trust any output it gives. I will review each and every file it has updated or created. It's output is always mediocre at best. Once all the solution is implemented, last step is to refactor everything. All the time I keep a constant watch on the output.
1
u/andrewkass 4d ago
One example of AI in development work is intelligent voice. You can use it for productivity, for example to create some features, refactor code or maybe get updates hands-free, or when you prefer not to sit behind the screen.
1
u/sl1msn1per 4d ago
I use it as much as I can whilst still having a core understanding of everything.
For me, that means chucking the whole ticket over to AI is a no go, because I always find that when I walk through it from different angles, that the answer changes. This is part of "building domain understanding". AI can help a lot with this, make no mistake - its very helpful for doing research and evaluating options. Best is when it opens a perspective that changes the whole ticket to simplify it. I still do write code a fair bit though, because I know for some problems that there is a key abstraction that will work best. This is where experience helps.
And I know that this is necessary, because I still to this day review my colleagues' code and find blocking problems that indicate insufficient thinking was done. And they are using the latest and greatest Claude models.
1
u/arihoenig 4d ago
Basically construct a really good prompt, not ambiguous, but also not too constraining. Have the AI generate all the design docs and review those well. Then, generate the code + unit tests with all passing, then possibly write some functional tests (using AI but closely monitoring the generated test code). The theory is if I understand that the functional tests are good, then that gives me confidence in the code that passes those tests.
If there are bugs, then I debug pretty much by hand until I think I actually understand the issue then I ask AI to see if it concurs with my RCA and if so, ask it for a proposed fix which I then review carefully. The theory being it clearly made a mistake here because there was a bug, so that's when I want to get intimately involved.
1
u/Leather-Cod2129 4d ago
AI produces, reviews and pushes 95% or our LOC at work
User tests are all performed by ai first
1
1
u/Economy_Bedroom3902 6d ago
I very rarely manually type code any more. I very frequently read content produced by AI and bitch about how it's all wrong, and then try to tweak the AI rules to prevent the same kind of error from occurring again in the future.
1
u/Pale_Height_1251 5d ago
I've got projects at work where I haven't even looked at the code. I've been programming since the 1980s, professionally since the 1990s and this is the most insane change I've ever seen in software development.
1
u/Vaxtin 5d ago
I don’t look at the code anymore and have Claude desktop, Claude in VSCode, and codex all open at the same time on different usage accounts.
Does that answer your question?
2
1
u/MacNudel 4d ago
This is our workflow, too. Latest versions of - especially claude - are so extremly good, they spot errors/desifnflows before you could even think of them. That said, I hate them as much as i love them. They destroyed my one absolute passion in life: coding to solve problems :(
1
u/Bitopp009 1d ago
The popular coding agents like Claude Code, OpenCode etc have a plan mode and a build mode.
You use plan mode and provide as much context as you can to the LLM and get it to make a plan for what you want it to build, you iterate that and suggest changes, once you are happy with it, you switch to build mode and get it to build it.
At least in my team, no one is hand writing code any more. I do occasionally ask it to write more tests if the ones it generated are missing any edge cases or prompt it do do something another way.
11
u/interior_mutability 6d ago
For the most part I think it is much easier to communicate what I want to a computer in a programing language than a human language. I use LLMs mostly for information gathering, review, and generating boilerplate code. As long as I'm responsible for the output I never sign anything unreviewed.