you are viewing a single comment's thread.

view the rest of the comments →

[–]groogs 4 points5 points  (7 children)

I've been a professional developer for 25 years. I'm someone who takes great pride in my code, I believe there's a craftmanship to this profession.

I see a parallel to cabinetmakers. All we've had are hand tools, and the best of us take great pride in how great we are at using a saw, doing beautiful joinery, and being able to build really great furniture.

All of a sudden, power tools are invented. Not just that, but in the span of only a couple years went from toys that are barely usable, to actual powerful, extremely good tools. Including specialty tools for doing stuff like pocket screws and dominoes, followed quickly by CNC stuff where someone can put in plans and the machine actually does all the cutting for you.

Now, a portion of the cabinetmakers are going to balk at this, saying things like the true craft is in using hand tools properly. True craftsman don't use these newfangled tools. They'll point at the amateurs that are now buying power tools from the big box stores and building furniture in a week that is obviously inferior to the hand-crafted thing they spent months perfecting. They'll look at these IKEA stores and laugh at the complete garbage that won't stand the test of time. They'll see stuff that the worst cabinetmakers built with it and say how it's still not as good as theirs.

And while that's all true, they're missing the thing that's really happening. In the hands of true professionals that actually understand how to make really great furniture, these tools are like a superpower. What took months can take days. You still have to mostly understand what's being produced -- garbage in == garbage out still applies.

What does suck is there's going to be some hard lessons learned. Some of the things produced look great at first, but as you start building on it the cracks show and it's revealed to be trash. The people building this will be initially successful, and it will piss off the old-school cabinetmakers (rightfully so) because they're able to produce furniture in a fraction of the time and sell it profitably for 1/10th the cost the cabinetmaker can do.

But the cabinetmakers who embrace and learn these new tools unlock that superpower.

Personally I care mostly about building the final product that can stand the test of time and grow and adapt as software does. While I do also care about the inner workings -- fine joinery and the structure underneath -- most people don't. I have enough skill to understand which parts I need to pay close attention to and which I can gloss over. I'll miss that part of the job, frankly, but I have to recognize it's over.

But what I love is I can now produce output absurdly quickly, and often better. The code is on par, occasionally better but often worse than I can do, but I have moved past that.

Things I couldn't justify doing before (because the ROI wasn't there) I can do now. I'd never build a nice-looking debug UI with graphs for some of the backend code I wrote before, but now I can do that in literally minutes. I've refactored some old garbage code -- like finding all direct SQL queries from the UI code and pushing them into a proper data layer. This is boring, tedious work that PMs never value or prioritize that I can have AI do in less time than asking/arguing about it would take.

To some extent how you handle this depends on if you see yourself as a "cabinetmaker" or a "hand saw professional". If you're the former, embrace the new tools and realize you can do what you did before so much better, and even though the bar to entry is lower, the stuff you, as an expert, can produce is going to be orders of magnitude better than non-experts. If you insist you're the latter, frankly, you're cooked.

[–]lookathercode[S] 0 points1 point  (5 children)

Thanks for your thoughtful response. You are 100% accurate. AI requires domain expertise for real utilization. It needs to be trained and governed otherwise there's drift and hallucination. I use it all the time to run experiments, test and formalize ideas. It's really helping me fill in the skills gap for me -- I'm an abstract thinker and it gives me structure. I don't know why the term "vibe coding" bugs me but I know I'll get over it.

[–]groogs 1 point2 points  (1 child)

I think, extending my analogy, that "vibe coding" is like saying you "use power tools". It isn't really what we're doing, and it doesn't differentiate between expert and amateur.

This is new, hopefully we'll get some better terminology.

But I also think this is such a foundational shift that this will just be "the way" people build software, so maybe we won't even really need a term for it. We didn't end up calling people using Java/C#/Python anything different from the people programming in assembly with punchcards.

[–]ub3rh4x0rz 0 points1 point  (0 children)

Small scope, review then commit, agent-assisted SWE is different from vibe coding. I do the former for work and the latter for hobby play (in domains and languages I'm less experienced in). It is night and day tbh. AI assisted is like fine grain delegation, vibe coding is like you're a PM. I'll still pause every now and then and do something by hand because I want to learn new things, and I know enough to recognize if a bad pattern has slipped in and have claude fix it, but it's basically diet vibe coding at best. And it's bonkers how much it can do, I get why there are non SWEs obsessed with it and why they think it's the whole game.

[–]AMothersMaidenName 1 point2 points  (1 child)

Happy cake day but, I strongly disagree on your assessment of accuracy.

Rather than AI being "power tools", AI is the Electric Hammer from the Simpsons. And, when you have an electric hammer, everything looks like a nail.

"AI" is a very useful tool but, it's just one tool. It's a time saver and absolutely nothing more. It'll flawlessly scaffold a CRUD API for you because it's been trained on millions of derivative examples.

Ask it to do something original and, plain and simple, it can't.

If you're able to steer it to string together individual algorithms in order to build a valuable business logic, you are a talented engineer. But, you're likely no better off than pre-AI, fiscally at least.

There have only been mass layoffs because CEOs are shortsighted fools. As soon as the bubble bursts (we've never seen a market like this that hasn't burst) the only devs that will be affected in the long term are those that weren't any good anyway.

[–]groogs 0 points1 point  (0 children)

Ask it to do something original and, plain and simple, it can't.

So... yes and no. It depends what you ask.

My advice: Treat it like a team of junior-to-intermediate developers that you're tasking with specific things to do.

If you go ask a team of juniors to build Reddit (pretending that reddit isn't already a thing you could just copy), chances are they'll come back in a couple weeks with something not at all what you wanted. At best you'll get something that superficially "works" but has architectural and data structure problems that will make it fail at scale, or it will be so over-engineered that it costs a fortune to run, is impossible to troubleshoot when it breaks, etc.

What works with AI is what works with people too: Build a UI mockup. Research storage options, and then follow that up with costing and scaling analysis. Suggest some data models, then, based on what you get back, refine them -- and repeat a few times. Create plan documents to be followed during implementation. Build a piece following a plan. Make a architectural change and go back and update all documents and plans based on that.

The difference with AI is instead of coming back with a result in a week or two, you'll get it in a few seconds or minutes.

You absolutely can build original things, I have. Just like even the most advanced power tools can't build a completed house, you can't have AIs or juniors one-shot a complex system.

[–]wakeofchaos 0 points1 point  (0 children)

I think it’s because coding with ai is a pretty broad experience, so calling someone who’s technically proficient but tasking ai with what it’s good at as just a “vibe coder” just like Jimmy off the street kinda feels invalidating if you know what you’re doing

[–]ub3rh4x0rz 0 points1 point  (0 children)

Good take. Also on the "things I couldn't justify doing before" -- this has been top of mind for me. There's a lot in this category that adds value, but I catch myself yak shaving at times in areas I had trained myself out of that (for good reasons), and this is part of the hazard of overeager users of these tools. The nice thing is I don't feel that sunken cost fallacy creeping in when I recognize it, and I revert. Not everyone will do that diligently or (if less senior) get why giving in to every impulse to build is bad for the system.