‹ BackHN Continuity

Thread

AI Has No Wisdom and Neither Will You

388 points · 554 comments · dimonomid

  1. davedx · · focus · HN ↗
    There's a continuum between "vibe coded by someone with no technical knowledge or inclination" and "hand written domain driven design development". You can absolutely use coding agents AND have maintainable code. But yes, the coding agents will not magically make everything maintainable if you don't tell them to.

    "Code maintainability and good architecture don’t have good measurements that we can apply"

    Who has no wisdom? There are dozens of ways to measure code maintainability. Cyclomatic complexity is just one.

    Nothing stops you from wiring up something like SonarQube metrics to your agentic coding workflow.

    1. abroszka33 · · focus · HN ↗
      > You can absolutely use coding agents AND have maintainable code. But yes, the coding agents will not magically make everything maintainable if you don't tell them to.

      The trillion dollar question is how you do this, if your employees do not care (they are optimising for salary & time spent not code quality) and you have no way of telling apart AI slop vs. good maintainable code. (If you could you would just train the AI.)

      Before AI there was at least some way to tell apart good programmers from bad, because there was some human effort involved in coding. Now with AI and slop generation there is almost now way to do this.

      1. bayindirh · · focus · HN ↗
        > if your employees do not care (they are optimising for salary & time spent not code quality)...

        From what I see is it's mainly managers and higher brass who doesn't care about code quality and sustainability, and aims to drive time to market metrics down aggressively with AI.

        Any employee who cares about code quality will become a poor performer with a red luddite label because they dare to change what the AI has emitted for them.

        I'd love to be wrong, very wrong about this, actually.

        1. abroszka33 · · focus · HN ↗
          > Any employee who cares about code quality will become a poor performer with a red luddite label because they dare to change what the AI has emitted for them.

          I think that's true but it's a special case. AI is here to stay and with AI coding IS faster and quality is better than ever before. Ideally you want your luddite fired along with the slop generators and keep the ones who are using AI and taking their time to deliver a maintainable code.

          1. mschuster91 · · focus · HN ↗
            Chances are high the luddite is the one with the deepest understanding about the product and the code base - the one who is actually passionate about the project and actually cares.
            1. nekusar · · focus · HN ↗
              And unless you have ownership level stake in the company, you *shouldnt* care about what happens downstream of selling labor to the company. Yes, I highly recommend 8 and skate.

              Ive seen soooo many people burnt out, or "ive given years to the company and i got hit with layoffs", or "$200 software would have saved $1000000 when I brought it up to them". And companies will throw you away the MOMENT your usefulness is gone, even if just perceived. So, use them just as much as they use you.

              And that idea of slacker is ALSO a way to generate more money for you, by slyly withholding or slowing work. I didnt get my paltry 3% last year. Inflation up 15% or whatever stupid number. But I can control how much work I do, so my effective wage/hour stays with inflation.

              Save your caring for your personal projects, nonprofits you help at, your and family/friends labor you help with.

              1. bayindirh · · focus · HN ↗
                I'll disagree with you, but probably what we do and our life philosophies are pretty different, so that's OK.
                1. nekusar · · focus · HN ↗
                  Well, what part do you disagree with?

                  1. Caring about the company when you are a worker and not owner?

                  2. Companies will throw away/layoff people with no notice?

                  3. Work slowage (work-to-rule) as a counter to low/no pay raises in accordance to general inflation

                  4. Invest emotional and physical labor in ventures you gain completely out of

                  1. bayindirh · · focus · HN ↗
                    With some. You insisted, so let's get into the details.

                    1. Caring about the company when you are a worker and not owner?

                    Yes and no. I don't care about the company. I do care about what I do. It's a self-respect matter. I do good work not because I'm a slave to company, but because of self respect. My deal is simple: "I'll do my best to produce the best artifact and push the company further as long as it doesn't conflict with my personal principles, you'll buy that time for that amount of money".

                    I have a simple, foundational rule: I'll sleep sound at night, and this rule is rooted in my ethics. So, I don't shortchange anyone, incl. my employer. If terms change between us, we will discuss, but this probability is not a reason to do shitty work (or optimize for money, or which sugarcoated absurdity others name this).

                    2. Companies will throw away/layoff people with no notice?

                    Yes, this is bad. This is life. It's not nice, fair or acceptable, but without unionization, you can't act against this. So, you either try to change this or you just accept it. Realities of work life is not a predicament to shortchange your employer again.

                    This is as absurd as saying "I'll die anyway, why do all these things? I can just die on-demand".

                    Meaningless...

                    3. Work slowage (work-to-rule) as a counter to low/no pay raises in accordance to general inflation

                    We can accept that, but you all shall really unionize. It's not scary. Try organizing. It's a force multiplier.

                    4. Invest emotional and physical labor in ventures you gain completely out of

                    Everybody should have hobbies either productive or unproductive. I can't find the question.

                  2. dcow · · focus · HN ↗
                    It’s not black and white.

                    There are companies where you can spend years doing as you describe. More and more, though, you’re competing with people who care even though they don’t own, put in the same effort YoY, and invest in their job. Companies love these employees.

                    So I guess it really depends on your values and what you want out of life. If you enjoy hobbies and time outside of work, sure find a job where you can coast. Don’t get frustrated when you get laid off just find another place to work. Etc.

                    Plenty of people want to grow within the industry and build a career, though. And many have what we call basic self-respect and care about how they are perceived.

            2. abroszka33 · · focus · HN ↗
              That could be the case. But if other companies figure out a way to deliver good code with AI, then the company with the luddites is going bankrupt. Luddites are better than slop generators, but both are worse against a developer with AI who actually cares and has a deep understanding of the code base and programming.
              1. zxor · · focus · HN ↗
                I don't think that's true.

                I don't think companies are living and dying, by how much code they can produce. Even tech companies.

                1. abroszka33 · · focus · HN ↗
                  They absolutely live and die by how quickly they can produce working solutions.
                  1. mschuster91 · · focus · HN ↗
                    Well, and that's how you get enshittification everywhere. Everyone just cares about time to market, consumers are left to drown among a sea of slop, and honest businesses go down because they cannot stand a chance against slop peddlers flush with VC money.
                    1. sanderjd · · focus · HN ↗
                      "working solutions" is the key portion of the comment.
                      1. mschuster91 · · focus · HN ↗
                        Pareto principle. 20% of the effort will get you the 80% happy enough with a half finished vibecoded slop.
                    2. abroszka33 · · focus · HN ↗
                      Enshittification happens after the company was quick to deliver a working solution. They successfully captured the market, killed off the competition and now they are ready to start milking the customers who have no other choice.

                      AI slop can actually help with this, because it reduces the cost of replacing their enshittificated software.

                      1. zxor · · focus · HN ↗
                        I don't think that's true.

                        The reason its hard to dethrone Facebook, Instagram, YouTube, Twitch, etc. Is not because it's hard to recreate the software (it may or may not be) it's because of network effects, budgets, etc.

            3. sanderjd · · focus · HN ↗
              Maybe? This does not seem to be in evidence to me. In my experience thus far, this seems to be way more of a personality and ideology split than a depth of understanding split. On my teams thus far, I've seen the deepest experts land on opposite sides of this question.
          2. bayindirh · · focus · HN ↗
            > AI is here to stay

            That's true, but it doesn't have to stay in this form.

            > with AI coding IS faster and quality is better than ever before.

            Citation needed, because the last study I read about was painting a completely different picture about code quality. Also, just because the AI pulling and remixing code from a known repository with high quality doesn't mean your code will be at the same quality automatically. Passing tests is not enough.

            > Ideally you want your luddite fired along with the slop generators.

            The thing is it's not possible to see who generates slop and who generates code, and if you fire the only people who knows about the codebase intimately, you'll be on a very exciting, possibly fatal ride. I don't recommend this. AI doesn't know your history and trade-offs. These guys do, and can guide you to clear.

            AI can't.

            Believing that AI will create bug-free code from start is believing that Rust is the silver bullet.

            There are no silver bullets.

            1. abroszka33 · · focus · HN ↗
              > The thing is it's not possible to see who generates slop and who generates code, and if you fire the only people who knows about the codebase intimately, you'll be on a very exciting, possibly fatal ride. I don't recommend this.

              This is exactly what I said in my top comment. This is a huge problem.

              1. bayindirh · · focus · HN ↗
                ...and then you said:

                > Ideally you want your luddite fired...

                The luddite is the person holding everything together.

                Like the office maid who looks like doing nothing but keeping morale high and everybody's sanity intact.

                1. abroszka33 · · focus · HN ↗
                  You can hold everything together and not be a luddite.
                  1. salawat · · focus · HN ↗
                    "Just do everything to hold things together, and let me abuse you without complaint" is exactly the kind of patronizing sentiment that infests the tech adjacent scene these days.

                    The answer to that is "Fuck you, no. I have worth, and you will respect it". Gilded Age paternalisms are not something that needs to be brought back into vogue unchallenged, especially when the intent is to keep the rabble quiet, and the checks rolling in and up.

                    1. abroszka33 · · focus · HN ↗
                      I hear you. So how do I earn a salary and say "Fuck you, no. I have worth, and you will respect it" to my employer? I would love to do it.
                2. sanderjd · · focus · HN ↗
                  No, the luddite is the person in one bad location on the continuum, opposite the AI psychotic on the other bad end of the spectrum. The person holding everything together is the one applying wisdom to the use of tools for the things they are good at while avoiding the things they are bad at, rather than blindly following one ideology or its opposite.
                  1. bayindirh · · focus · HN ↗
                    Sorry, but you're distorting my framing of the term in my original comment.

                    I labeled the person who uses AI to generate code and uses their brain and wisdom about the system to refine that code as the luddite since they will work slower when compared to other "higher performers" who don't care about the code quality.

                    In my framing I'm aware that the person is not a luddite per-se, but will look like it since they will be slower while trying to create better code, albeit using AI in the process as well.

                    Citing myself:

                    > Any employee who cares about code quality will become a poor performer with a red luddite label because they dare to change what the AI has emitted for them.

                    1. sanderjd · · focus · HN ↗
                      Yeah I think we agree about this. We agree that this person being labeled a luddite does not actually deserve that label.
            2. sanderjd · · focus · HN ↗
              The reason that we can (not that everyone, or even most people will) create higher quality software now is that it is now much easier to try out a bunch of edge and corner cases, which would have previously often required a prohibitive amount of time to set up and run. It's a dream! I can certainly believe that people aren't taking advantage of this, but they should be!

              But I totally agree with you about the measurement problem. I think it's a very difficult time to be a hiring and firing manager.

          3. t43562 · · focus · HN ↗
            "Luddites" can just be the ones pointing out the Emperor's new clothes have a big hole in them. Removing them is just ensuring that whatever mistakes you're making get reinforced.
          4. tripledry · · focus · HN ↗
            > ... with AI coding IS faster and quality is better than ever before.

            Is this claim based on something?

            I'm not against or "for" AI (whatever that means), I try to use it as effectively I can, but for me it's not at all obvious that quality is better than ever before.

            Speed I can buy, especially in new projects and utilities, but quality? At least I haven't seen this in practice, if anything I'm just seeing more code, issues, PR's and pressure ==> more slop, more bugs, less quality.

            You can always say "skill issue" and "process issue", but that's partly my point here, AI doesn't magically solve this.

            1. sanderjd · · focus · HN ↗
              Presumably it is based on that person's personal experiences, like your own comment and all the other comments here?

              Speaking for myself, based on my own personal experiences, quality is by far the bigger advantage of these tools. It has never ever been easier to write automated tests and to automate tedious manual validation. I'm running my code through like 10x more paces than I ever did before, because I can just say "hey try running this in these twenty different ways" (including with browser automation, if that's relevant), without needing to either do the tedious steps to run all that or to take the time to write a script to do it, and to compile and attach the findings to the PR. This saves me hours to days of work on validation, but the reality is that I just wouldn't have spent that time in the past, I just stopped at a lower bar for quality, because I couldn't justify the ROI for spending all that time on it. But now the ROI is huge, so it's a no brainer.

              If people are not taking advantage of this, then yes, that is literally a skill issue.

              1. bayindirh · · focus · HN ↗
                > If people are not taking advantage of this, then yes, that is literally a skill issue.

                ...or domain. You said "including with browser automation", so you do web or web-adjacent development.

                Not all of us are doing that. What I work on doesn't have any UI or output besides a log file most of the time, but it connects to many places and does many things like an octopus, but nobody sees that, but feels that it's there because their environment keeps on working.

                1. sanderjd · · focus · HN ↗
                  I said "if that's relevant" and you jumped to "this guy just makes websites". I do many things.

                  The octopus you just described sounds to me like an excellent example of what having the ability to more easily do tedious validation is most useful for. If you know that the "environment keeps on working", there must be some way for you to observe that fact. And if it is an octopus, it is likely difficult and/or to change the conditions and observe the correctness with respect to those changes. I find it so much easier to do this exact kind of thing now. Or, "easier" really isn't the right word. It's that the activation energy is low enough now that I'm able to do a lot of things up front that I used to rely on runtime monitoring to validate.

                  I guess YMMV, and it's not magic, but for me it totally changes the calculation on when it makes sense to automate something (like that chart from the old xkcd about how many times you'll do the thing and how long it takes to automate) in a way that means I'm doing a bunch of things that are useful for quality that just would never have passed the bar in the past.

                  1. bayindirh · · focus · HN ↗
                    > I said "if that's relevant" and you jumped to "this guy just makes websites". I do many things.

                    I didn't. I made a guess. I might be wrong, that's OK. I love to be wrong, because I learn things by being wrong. Also no offense was intended, and I don't consider webdev inferior anything. What I tried to mean is, if AI has more training data for a domain, it does better. If you fire the same model on a niche domain, it falls flat.

                    > If you know that the "environment keeps on working", there must be some way for you to observe that fact.

                    Yes.

                    > And if it is an octopus, it is likely difficult and/or to change the conditions and observe the correctness with respect to those changes.

                    Nope. On the contrary, because there's so much innate knowledge that is required to know what to do, simulating in mind, deploying and testing on real world is much easier and faster than letting loose an ML model on it. You need real data, real data comes in slow, but you can catch problems early and easily.

                    Considering it's a niche area, AI also doesn't have much training on that domain, so it's doubly inapplicable for what we do.

                    > but for me it totally changes the calculation on when it makes sense to automate something ... (snipped for brevity)

                    It's great that if it works for you, but YMMV part is way more correct than people want to accept and want to learn. AI is a pneumatic hammer, but not everything is a nail which can be driven in with that.

                    When it works, it works. When it doesn't, well people still pretend it does or insists it shall. We must accept the limitations.

                    1. sanderjd · · focus · HN ↗
                      > deploying and testing on real world is much easier and faster than letting loose an ML model on it.

                      No this is what you're not getting. It is "doing the things I would do to deploy and test in the real world, but faster and in the background while I do other things", it is not "letting loose an ML model on it". This is the new capability. If you have any process like "do {action}, wait until {something}, check {something}, determine if it matches expectation", it is now possible to run that loop way more times in way more variants without either spending the time on it synchronously oneself or writing a script to do it. (If you do that specific action loop often enough, it's probably worth writing the script anyway, but that's also much quicker to do now.)

                      The AI doesn't need training on the domain, it just needs to be told "these are the things I would do, please do them for me and report back".

                      I'm sympathetic to not everything being nail-like, but I really think you're leaving a lot of chips on the table if you can't imagine any of this kind of action-check-evaluate loop you have that you could offload.

                      1. bayindirh · · focus · HN ↗
                        The thing is, I already don’t get blocked by this process. I deploy automatically and continue working. If something goes wrong, monitoring warns me.

                        Everything is already at the background. That thing doesn’t need a CI, not the classical or AI enabled kind.

                        Maybe I was not clear about that part of what I do. Three minutes of something not working correctly doesn’t burn our world down.

                        1. sanderjd · · focus · HN ↗
                          I'm saying you could do more things. Instead of waiting until a new thing is merged so that it can be deployed and waiting for monitoring to catch issues, you could be deploying pre-merge to testbeds, using different variants of the code or different configurations of the whole system or different inputs to exercise edge and corner cases. Maybe it's too complex of a system to set up that kind of testbed or simulation? Well, it's easier to do that now too! I can spin up and down environments, either with containers on my workstation, or in cloud deployments, that I would have not attempted in the past, because it would have taken me too long to set them up. But now it doesn't take that long, and I find it super valuable to be able to try more things out. (Cost is still a real constraint, I'm not saying that constraints magically no longer exist.)

                          Obviously I have no idea what your work looks like! But what I'm saying is that time savings are not just time savings. There can be a point at which the time savings bring you under an "activation energy" such that it unlocks a new capability, not just a speedup. And some of those unlocked capabilities can be directed toward improving the quality of software. And I think that's awesome and useful, is my prevailing point here. I won't claim that it will usher in an industry wide improvement in quality or anything, but for me personally, I'm making better software more quickly now, and I'm very pleased that I can do that.

              2. tripledry · · focus · HN ↗
                Good use case.

                For some reason this reminds me A LOT of past discussions about microservices, most wonderful on paper, but I've never seen it work out perfectly in practice, for me it's mostly been a cluster F in most companies that adopted them.

                Currently I see AI similarly, in theory perfect, in practice I don't see the claimed effects. So yes, skill issue, but skills are relevant and your company probably can't hire a rockstar team (if that matters in the future).

                But your comment on personal experiences was very good! Spot on, we are all biased, easy to forget. Thank you for that.

                1. sanderjd · · focus · HN ↗
                  I agree with your analogy as well, and I'm very open to the idea that this will mostly end up being good in theory but bad in practice.
          5. sanderjd · · focus · HN ↗
            I fully agree with this point about quality. I am doing so much more testing than I used to, because I have so much more time to do it, and it's so much easier to automate the more tedious kinds of validation.

            Maybe it's true that lots of people aren't taking advantage of this and are shipping trash, but that's their own problem, and there have always been people who do the job poorly.

          6. lelanthran · · focus · HN ↗
            > AI is here to stay and with AI coding IS faster and quality is better than ever before.

            Localised quality is great; whole-program (even small ones) are not usually readable by me.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.