← Back to context

Comment by 9dev

17 hours ago

FWIW, I'm responsible for our engineering team, and I'm the one starting to put some gentle pressure on the developers right now. Velocity used to be one of the bigger issues we had: Features used to be in development over weeks, while customers, product management, and engineers iterated on the feature, until it was finally deemed stable enough and shipped. With AI, we can shorten that cycle considerably, and get stuff out of the door in days or even hours instead. Doing so requires adapting your processes accordingly, give up some control over the details, take good care of tests, and do proper code reviews.

Given all that, I just cannot ignore AI as a development tool. There is no good justification I can give the rest of the company for why we would not incorporate AI tools into our workflows, and this also means I cannot leave it up to individual developers on whether they want to use AI or not.

This pains me a lot: On the one hand, it feels irresponsible to the junior developers and their education to let them outsource thinking; on the other hand, we're not a charity fund but a company that needs to make money. Also, many of us (me included) got into this career for the joy of creating. Nobody anticipated this could stop being part of the deal, but here were are.

> There is no good justification I can give the rest of the company for why we would not incorporate AI tools

Is there definitive proof of long term productivity gains with no detriment to defects, future velocity, etc?

If so I’d say you’re irresponsible at best to put this much trust in a tool that’s been around for a few months (at the current level). Absolutely encourage experimentation, but there’s a trillion dollar marketing hype machine in overdrive right now. Your job is to remind people of that.

Your team is creating code you don't really grok to "get stuff out the door". Guaranteed a month or year from now this is going to bite you in the ass, hard.

This is a starker tradeoff, but still the same logic that engineering leaders have used for years to eliminate time for exploration, learning, mentoring, role-switching, and every other activity that makes a better engineer but doesn’t move tickets off the queue. These developers are all going to work somewhere else in a few years, so why should we invest in growing their skills? This isn’t a charity, after all.

I’m sure you’re smarter than that, but a lot of leaders aren’t. And that’s based on the past, when they had an established playbook they could choose to follow, not the situation we’re in now where you have to make it up as you go.

  • I absolutely see your point there, but I don't have a better answer. It feels like the table stakes for feature development speed have risen all of a sudden, whether we like it or not.

    • Well, only if the increased speed doesn't result in a quality or staffing time bomb. Which none of us really knows at this point. You could always write code faster if you don't care if it works or is maintainable (and indeed many companies work that way for a while), and you could always put your developers in a pressure cooker until they leave from burnout.

So, you have a duty of care to make a safe workplace, at least in most countries.

Consider what a job with no joy means for the ongoing mental health of your staff, where the main interaction they have all day is with an AI model that the person has to boss around; with little training on norms. Depression, frustration, nonchalance, isolation, and corner cutting are going to be the likely responses.

So at the same time as you introduce new tooling, introduce the quality controls you would expect for someone utterly checked out of the process, and the human resources policies or prevention to avoid your team speed running Godwin's law because they dont deal with people enough to remember social niceties are important.

Examples off of the top of my head of ways to do this are: - Increased socialisation in the design processes. Mandatory fun sucks, a whiteboard party and collaboration will bring some creativity and shared ownership. - Budget for AI minimal or free periods, where the intent is to do a chunk of work "the hard way"; and have people share what they experienced or learnt - Make people test each other's work (manual testing) or collaborate, otherwise you will have a dysfunctional team who reaches for "yell in all caps to make sure the prompt sticks" as the way people talk to each other/deal with conflict.

The way to justify this to management above you is the cost of staff retention - advertise, interview, hire, pay market rates, equip, train, followed 6 months later by securely off boarding, hardware return, exit interview means you get maybe 4 months productivity out of each person, and pay 2 months salary in all of the early job mistakes or late job not caring, or HR debacle. Do you or your next level up want to spend 30% more time doing this process? Or would you rather focus on generating revenue with a team that works well together and are on board for the long term?

The answer most of the time is "we want to make money, not spend it". So do the math on what staff replacement costs are and then argue for building in enough slack to the process that it costs about half of that to maintain it/train the staff/etc.

Your company is now making a "50% efficiency gain" in the HR funnel, year over year, all by simply... not turning the dial up to 10 on forced AI usage.

Framed like that, sounds a lot better doesn't it?

  • I'm applying gentle pressure, not forcing everyone to use it. If necessary, I will fight for my team as much as I can, but that's not where we're headed and I would think about switching jobs if it ever is.

    Having said that: The dichotomy expressed in the threads here is a bit too extreme for my taste. It's not like working with AI is pure Yes-clicking review dread; there is joy to be found in materialising your ideas out of thin air, instead of the Lego-like puzzle solving experience many developers are used to.

    And as mentioned in TFA, There's risk in both using it too little and too much. This also applies to employees, of course: If I shielded junior developers from AI tools, they'd end up in their next job utterly unprepared for what may be required from them as the world keeps spinning.

    > Framed like that, sounds a lot better doesn't it?

    Sure does, but that's not the situation I'm in. I'm trying to figure out the local maximum of keeping my company afloat in a world where AI has kicked the PMF from under our feet to the other end of the playing field, and ensuring my team stays happy, curious, and engaged. And I'm not the only one in this spot, I suppose.

    • > It's not like working with AI is pure Yes-clicking review dread; there is joy to be found in materialising your ideas out of thin air

      I think that's true for some developers, and not for others. My guess is that one subset of developers has more ideas than they have time/resources to implement, and they enjoy programming because they love seeing the finished product emerge. I think this subset is more likely to go into management, because it's a force multiplier for them. They're the ones getting joy out of seeing AI make their ideas into reality.

      But there's another subset who enjoys programming not because they love to see a product emerge, but because they enjoy the process itself: the head-scratching, the getting past "why won't this work" to the moment when the build starts working again or the site comes back up or the UI snaps into place. It's the magic of finding, among all the possible wrong answers, the exact right combination of bits that solve the problem. This subset is not getting any joy from AI: they're seeing AI take away that whole process and turn it into the kind of work their managers and their project owners do. It's made even worse because their managers don't even understand why they're so unhappy. I think managers would do well to consider how they're going to keep these folks happy and engaged and productive, because they're the ones who are going to be fixing the production bugs introduced by their teammates' AI commits. If they've all gone off to retrain as electricians, we're going to have a problem as an industry.

> it feels irresponsible

And it is. You are going to end up with a wreck of a product and not a single person you can call upon to fix it. It is your choice and you will pay for it.

So you struggled to improve velocity without AI tools, are you worried that using the AI tools as a crutch will just lead to a death spiral of bad code being shipped increasingly faster? I've only ever seen the AI adoption approach work on fully functional teams.

The concern as well is that by forcing the AI onto developers, they eventually throw their hands up and say "well they dont care about code quality anymore, neither should I" and start shipping absolute vibeslop.

  • > I've only ever seen the AI adoption approach work on fully functional teams.

    It's not that the team isn't functioning, it's that it's a pretty diverse team in terms of experience, which means things just used to take a while to finish.

    > The concern as well is that by forcing the AI onto developers, they eventually throw their hands up and say "well they dont care about code quality anymore, neither should I" and start shipping absolute vibeslop.

    This is IMHO avoidable by emphasising code reviews and automated tooling; my general policy is still that everyone is responsible for what they push, period. So absolute vibeslop isn't what I'm seeing, rather an efficiency miscalculation on which parts should be written by humans and which by the AI.

    • In my experience the bottleneck was never with writing code. If this is the case how can a developer be expected to increase their output while still being responsible in the same way? Seems like a recipe for burnout.

  • The vast majority of workplaces have never cared about code quality (with the exception being the actual engineers that write the code). Everyone else has no clue what programmers do, other than, "they write arcane symbols, and our product works, and our business continues to function". They do not know that code can even _have_ quality. It does not help that they only ever have to interact with engineering when something is going _wrong_, which conditions them to associate engineers with stress and failure and angry customers. Nobody ever thinks of engineers when everything is going well. The LLM mandates stem from a combination of mistrust and resentment.

    I know, from second hand experience, that long before coding LLMs became a thing, engineers would ship slop when it became clear that their superiors cared about deadlines uber alles (i.e. not shipping slop would be the same thing as quitting, but without the paycheck -- slop code is often a form of quiet quitting).

    Most people would _prefer_ to be able to "program" their entire business from a spreadsheet. LLMs have enabled them to get involved, and they cannot understand why engineers reject this "help" (it is for the same reason that a pilot would reject a copilot that thinks he knows how to fly because he played a flight simulator or read Jonathan Livingston Seagull; flight simulators are used in training too, but they are not a substitute for actual piloting experience). This refusal and resistance feeds into the mistrust and resentment. We live in a world where managers and administrators do not understand what they are managing and administrating, nor do they think that this is part of their job description. In the worst cases, they believe their job is to extract compliance from their subordinates.

    There is a _lot_ of alpha in being part of a company, where authorities understand how the internals of the business (including software and IT!) _actually_ function. (One engineer told me that clueless yet demanding managers are, for all intents and purposes, unwitting saboteurs, and that the best a company can do about this is get him a job interview at a competitor). In some sense, the economy is just a machine for transferring wealth from those who do not know something essential, to those who do know something essential. This can veer uncomfortably close to exploitation. If we want to avoid crossing that line, we need to cultivate an economy where a lack of understanding is not seen as an _opportunity for profit_, but rather _as an opportunity for illumination_.