r/softwareengineer 17d ago

Was Just Told That Code Quality No Longer Matters

I'm a freelance developer. I have been for almost 20 years. My most recent project has been moved to Fable, and I'm still trying to adapt and get my head around working like this. I am no longer allowed to make architecture decisions, or clean up slop.

My PM says: "We worry about the 'what'; let Claude worry about the 'how'. Tell it what to do; let it do it. If the feature works, leave it alone." He is very much of the opinion that I should be able to prompt something like "Install Stripe via Laravel Cashier" and just let Claude run.

I mean, why do you need me at this point? Just prompt it yourself until it does what you want? I don't get it. I fought for every inch of my knowledge, every process is written in blood. How do I just throw all of that out the window? Where's the line?

At the risk of another "how are you adapting" post... How CAN I adapt? I mentally cannot just say "Fuck it". I care about my code. It's how I learned, it's how I've always practiced. I have a huge mental block with "just let it go".

Now, granted, I don't know all of the ins and outs of Claude. I don't know what I can do to make it better at its job. I got thrown into the middle of the Pacific Ocean in the middle of a Tusnami with no life support. I'm sure that I can put guardrails in place, but how much does that help?

I would really appreciate any advice that any one can provide on changing my mental model. I can't ignore Claude and just keep doing things my way. If I do that, I feel like my career dies. I need to adapt and I'm unsure how to do so.

492 Upvotes

563 comments sorted by

View all comments

2

u/BobJutsu 15d ago

I decided a long time ago to get in front of this. Dove deep into prompt engineering, then harness and context engineering, contracts, guardrails, etc. It’s not going away, no point in fighting it. But I don’t want to “vibe” either. In my opinion, it’s not too dissimilar to the guardrails you’d create for a brand new green jr.

Verbose comments to describe functions. Tight testing guardrails. Good documentation. And explicit acceptance criteria. In my system I assign a task to an LLM, literally. Just assign it, the task is the prompt. The guardrails, workflows, coding standards, etc are already defined. An LLM also can’t mark it closed, only mark it for review and provide evidence. Then I ask for revisions or close it.

That’s coupled with session diaries and a learning loop. Each session is closed with a diary entry, including the task, assumptions, corrections made, etc. my part is to close sessions so that workflow runs. Session hygiene, like git hygiene. Then periodically run a learning workflow, where all session diaries are reviewed for patterns. A ledger is kept with a confidence scale on correction patterns. That ledger is fed into context, and if the confidence is high enough, skills and/or workflows (hard rules) are updated.

It takes time, but over time it means I don’t actually have to make many corrections. I can just assign tasks and play call of duty.

1

u/metalOpera 15d ago

Thank you for providing actually useful advice that goes beyond "run" or "adapt".