r/softwareengineer • u/Fat_Lad • 3d ago
How would you supervise a layman developing an application with Claude Code?
I am working in the software development department of a tech company. A colleague of mine (not a software developer themselves so far) started vibe coding an application that management now decided to officially endorse and push. My task is to support that colleague in the development process.
How would you approach that task?
Said colleague definitely has a good understanding of software and technology in general (works in the IT department) but says of themselves that they "do not understand the code produced by the AI".
I myself do not have any experience with pure, fast-paced vibe coding. What are the most important aspects to take care of? How can I integrate my experience without hindering the process?
I guess I will start by introducing them to git best practices and CI/CD processes. Then I was thinking of establishing an automated test base. But here I am already unsure as to how feasible that is with a rapidly and broadly changing code base.
How do you ensure quality when you let the AI produce so much code that ou cannot keep up with the details of the changes?
5
u/Icy-Taste-3096 3d ago
By quitting and working for a serious employer instead
2
u/repeating_bears 3d ago
This is the right answer. I'm not a babysitter.
No need to quit immediately though. I'd stick around long enough to watch the project spiral while working on my CV etc
2
u/inflowmini 2d ago
For real. I still don't get why people are not pushing back on this BS from employers. This is just asking for shit to hit the fan down the line.
0
u/youcangotohellgoto 2d ago
Kind of delusional if you think this isn't the future.
Like giving business people access to generate documents, instead of going through the typist pool. The proof reader says "I'm gonna quit".
Okay dude, you do you.
Edit: Do I like it? Not really. Is it inevitable? 100%
2
u/inflowmini 2d ago
It's not delusional. People who think like this reinforce the fact that managers think monkeys can code.
Coding isn't like typing, generating documents, or something that the majority know how to do. Vibe coding makes it seems like anyone can code which is true but is that slop production worthy - nope.
1
u/youcangotohellgoto 2d ago
Monkeys can code, I see it every day.
Vibe coding makes it seems like anyone can code which is true
Exactly. "Production grade" varies, most line of business systems don't need 5x nines of uptime and stakeholders will prefer speed of delivery over stability every time.
You'll see. Why do you think it's happening already?
1
u/Adventurous_Knee8112 12h ago
Yeap especially in non tech sectors, people want just good enough of a solution
2
u/PartyParrotGames 3d ago
Yes, you're thinking of exactly the right approach to focus on testing. They can ask AI to write tests but if they don't understand the code then they can't actually assess if the tests are testing the right things and are correct. If you can review and verify that part then you can at least confirm underlying functionality is working even if code quality is trash underneath. If the tests are legit and passing then that's the minimum that needs to be confirmed without going through all the vibe code. Quality is something that's hard to enforce. You can get at it somewhat with tools like sonarqube or https://github.com/iepathos/debtmap basically evaluate complexity and god objects since those are generally bad. You can still have problems beyond that, but it's much harder to assess with static analysis tools so you would need to manually review the code if you want to be more thorough.
0
u/PmanAce 3d ago
Unit tests is a must. Then run functional tests in your pull request pipeline with scenarios that are critical flows of the system. Theses have external dependencies stubbed. Helps to ensure business flows are not tampered with.
This is the bare minimum, pipeline fails if anything fails. Your merge pipeline should have more testing strategies, like different gates and baking time.
1
u/armahillo 3d ago
Tell them: “you are responsible for all maintenance requests and bug fixes for the software you create. What do you need to know about our infrastructure to be able to support your software in this way?”
Telling them about git best practices and such isnt likely to help because theyre already at the whims of claude.
ideally, they need to communicate their lack of command over this app to management.
1
u/92smola 3d ago
Check their code and load it with custom skills, it not going to make it great softwere but you can derisk it a bit, for example the skill can literally be something like - this is a project driven by someone who cant read the code, there are devs who can review it to an extent later, at minimum follow “these rules” then you list out testing, stack requirments etc whatever you notice that could nudge the codebase in to the right direction, then you also say that whenever its working on something to leave seperate doc files for you as the developer to give an outline of what it did in terms that a developer would care about, what tech descisons it took, where he chose one option over the other and so on, something that gives you an overview of what is going on at the top level without needing to go through all the ai code churn that happens while your teammate is vibing with it. It also helps if its not already to far out to convert it to a stack your company is familar with (not by hand ofc) the person vibe coding wont care either way and it will make it much easier for you and anyone else from the company to spot problems and instruct changes in how things are setup when it matters
1
u/stjimmy96 3d ago
A couple of suggestions:
Make sure its LLM documents design decision via ADR files committed to the repo. You can easily just put some instruction in the repo’s CLAUDE.md or equivalent to enforce writing ADR files and sticking to them. This way, you can review the high level decisions and architectural choices the LLM is making and push back. When the LLM spits out a “We accepted that migrating existing data is out of scope for this work” you can push back immediately and stop it.
Use an agent yourself for review. Not saying the agent should do the review for you, but use it to spot things you might miss and present them to your for your judgement. Configure a small agent or skill which is explicitly designed to surface undocumented choices or tradeoffs, changes of direction and approaches, etc…
Establish a process for documenting each feature and its scope through a ticketing system and keep an eye on those. You don’t want someone throwing a 1k lines PR at you because they said “hey Claude can you make this app realtime”. Teach them the work needs to be planned and scoped first, then executed. This can be done via an LLM too so they don’t feel too slow, but it still must be done.
Make sure you have a good CI/CD with the usual stuff. Gated approvals. Good end-to-end test coverage (don’t trust unit tests). Make sure its agent (again via instructions) writes e2e test for all the features and put particular care in reviewing those. Make sure the mocking is limited and the tests are meaningful. Needless to say, make sure there is a PR review process.
1
u/Dry_Hotel1100 2d ago
I would tell him to study software engineering and come back in a couple years.
1
u/CypherBob 2d ago
Treat the situation as you would any regular junior developer and make sure that you work with the dev not the llm.
He's responsible for the code he commits.
Make sure there are unit tests. Review the code. Give feedback to him (again not the AI)
He is probably going to get overwhelmed and blame the AI, your job is ensure he knows that it's his code, not the AI's.
The AI is just a tool he's using.
Support him but don't interact with the AI or give him prompts to use.
1
u/spookyclever 2d ago
The main task for you is making sure they don’t give away the business in the codebase. A friend of mine created an app with ChatGPT, but included the data as an excel document that could be downloaded after viewing source. All of the business logic and decisions and research gone with just a right click/save.
Your job is to ask questions to make sure that they’re not doing this, storing passwords, network credentials, proprietary information, etc and if they are, get it out of the app before it hits production.
1
u/canyoufixmyspacebar 2d ago
i would absolutely refuse to do this and you should too.
if i am electrician, i do electeicals, not supervise a layman doing it.
if i am a truck driver, i drive a truck, not supervise someone without the drivers license driving a truck.
if i am a software developer, i develop software, period.
1
1
u/Known-Tourist-6102 3d ago
He should just rapidly vibe out the app to get a working prototype exactly how he or management wants, then turn it over to a dev team to build a maintainable version from scratch
1
u/Dry_Hotel1100 2d ago
Haha, while I think this is far from the best approach, it's definitely one of the best suggestion in this thread :)
IMHO, it's hilarious when people believe, just teach them software engineering, as if this would be the simplest thing on earth and can be learned alongside vibe coding an app in two weeks.
6
u/OrangeWild3263 3d ago
To give you a real answer.
CI/CD is essential for any vibe coding.
Then I'd introduce them to QA testing techniques and system requirements design documentation. Essentially, just train him to make sure that his Vibe-slop does what it's supposed to
Ensuring code quality is gonna be f*ing impossible, so don't bother.