Off topic I know but, the BBC has adopted this clickbaity title pattern of “what we know so far about x” for the last year or so and it really jars me. Especially when x is very serious and involves people dying. It’s like an amateur tictoc’er is in charge of headlines at the moment.
Not if you turn off your brain. Never actually stop to question the path you're going down, because the speed is making you blind. Which is what I feel I see more and more. Or how do you even know it's the wrong answer if you didn't think it through before starting?
One example: setting the agent ablaze on some task, keeping it going, and after a few days of working with the agent you have a feature. But it's not what you were supposed to make. The agent didn't have all the context and made something slightly off, and you never internalized the problem enough to even spot it. If you actually stopped to think a bit on how the feature would have to work to tie it in with everything else, like you would have done before, you would've spotted it.
Second example: something wasn't feasible to do before, due to not being worth the time investment. Like a feature that would need a bigger architectural change to implement. You and the agent take a crack at it, and rewrite huge parts of the code, and it seems to work. But now no one understands how, and it might have been the wrong way to solve it, you just went with it. Before, you would've sat down and discussed and thought about the architectural tradeoffs. Now one decision was just made with little thought.
Counter argument is you rarely hear of sunk-cost fallacy coming into play.
I used to do the same thing without AI, I'd spend a week working on a task and only realizing at the end it was wrong, but because I spend so much time on it, I was incentived more to keep going and ignoring sunk-cost.
Now I don't care, it only takes me a an hour and I have no problems throwing it away and trying something else.
This feels even more true working with a team. I have a harder job convincing a team member who spent several days manually coding something that they’ve headed in the wrong direction compared to one who built it with AI. The person doesn’t have a personal attachment to the AI written code. Of course that also means they don’t understand every line like they would if they wrote it manually, but the lack of attachment is certainly a benefit.
> I have a harder job convincing a team member who spent several days manually coding something that they’ve headed in the wrong direction compared to one who built it with AI. The person doesn’t have a personal attachment to the AI written code. Of course that also means they don’t understand every line like they would if they wrote it manually, but the lack of attachment is certainly a benefit.
If the situation that you have to convince a programmer to stop working on something is something that happens more often than very rarely is in my opinion a strong sign of bad leadership. These are people who are really in love with what they are doing and are thus so attached to it, and you want to cast out this love for working?
So, the moral that I can only get from your post is:
- AI can be used as a mitigation for bad leadership.
- Programmers should care much less about the work that they do.
No. It’s a healthy practice to build prototypes and spikes to resolve technical uncertainty. These should be considered disposable.
Sometimes people get attached to the prototype, and that’s counterproductive. The most common example is “nice job, the 2 week spike shows us that this project is not viable, we are canning it and moving on to a more impactful project”.
> Now one decision was just made with little thought.
I've seen the same behavior using AI. They just keep double it down without seeking human feedback nor asking themselves if there's prior art tackling the same problem. At the end, they don't only get into sunk cost fallacy but also go into a shadow IT journey achieving generational tech debt in a few weeks.
If you didn't allow yourself for a feedback loop venue and constructive feedback from peers, AI will not solve that issue.
It’s much harder when team dynamics start coming into play. Maybe this is something where the norms will change, but for now, it’s still much harder to stop someone from shipping something they have built than to offer corrections to what they’re going to build.
I dunno. You've heard of "build one to throw away", right?
Always easier to discuss what the client actually wants if you've got a demo on the table.
I'm doing short feedback loops with product owners more and more - sometimes within the same sprint. I'm not even getting bikeshedding back, but that might be because we have some fairly solid design guidelines.
Or, you don’t even realize it’s not really what you wanted. Once you have a nicely polished product, it’s hard to compare it to the fuzzy idea that you had in the first place.
I feel like going slower gives you time to let the details form the solution. You think “hm maybe that doesn’t make as much sense as I thought, maybe there’s a better way to frame the issue…”. If you don’t let a problem really soak in, you don’t get the “hammock driven development” that Rich Hickey talks about.
Of course some problems don’t need to soak in. A lot of problems just need code to be cranked out. I love slopping together a monster script that solves exactly one problem perfectly
It’s like discussing a fully rendered concept art. You will get lost in the picture. And there’s always the slight suggestion “it’s already looking so nice, why think harder”. Which is why sketches and roughly painted thumbnails are best for brainstorming. Easier to think out of the box that way.
Same with demo. Do a rough wireframe or something with default bootstrap style and it’s way easier to target the meat of the problem. Not so much on a full site
> Or how do you even know it's the wrong answer if you didn't think it through before starting?
Real life is full of unknown unknowns, AI risks putting you on the wrong path without you even realizing it.
It doesn't help a bit that (almost? I'd say all) AI products are very confident while they're guiding you on that unknown unknown path, so of course that you don't realize soon enough the epistemological situation said AI product has driven you into.
I’ll claim the ones in the end that will have that responsibility will be engineers. LLMs add the ability for engineered to build quickly enough that there’ll be enough of them to morph into product roles as well. I trust us/them much more than product owners who use models to code.
Much easier to engineers to move to product than product to move to engineers. Or at least the minimum amount needed to fill all product roles. I’m seeing we can do that now and it’s _much_ more efficient to not have to have back and forth communication as in the past with that communication being by far the slowest part of build processes.
> I’ll claim the ones in the end that will have that responsibility [to figure out if you're building the right thing] will be engineers.
One can have this stance. But in practice, programmers who have strong opinions on this topic that is not aligned to the management wishes will commonly become personae non gratae in the company, and are thus commonly on the brink of getting fired.
So, in the end, the incentives that exist in most companies are strongly biased towards the position that figuring out if you're building the right thing is the job of the managers and product owners. :-(
I can agree with this as well. But I'll do a follow along for who says management has the best and correctly decided plans for the company? What if in the future, engineers become product, and those then become management because who's to say that's more difficult?
For the way orgs are currently set up, yes, conflict between engineers and management can cause issues. I'd put somewhat of a bet that those types of org setups won't be the way in the future.
And how do you think many of those managers come up with the ideas nowadays?:) There's no human in the loop anywhere at FAANGs. I see it first hand. LLM ideas, LLM docs, LLM coding, LLM launch announcements...
If you don't understand what you are building, chances are you'll take suboptimal decisions or even come up with a solution that completely misses the point.
To properly understand what you are going to build, it's not enough to read specifications from some manager as gospel. You need to ask questions, and challenge the requirements sometimes, to make them your own.
>
To properly understand what you are going to build, it's not enough to read specifications from some manager as gospel. You need to ask questions, and challenge the requirements sometimes, to make them your own.
If the engineer is told to build a bridge that is virtually guaranteed to collapse, then it a reasonable person ( ideally, same person as engineer ) would note that particular risk.
It may not be engineer's responsibility to build the exact right thing, but it sure is their responsibility to build it right without having the bridge to collapse the moment someone stands on it.
Otherwise, the person building the bridge is not an engineer.
> Otherwise, the person building the bridge is not an engineer.
One is likely not an engineer if one does not notice the risk. But in practice, managers commonly desire docile subordinates, so the only thing an engineer can do in such a situation is to ensure that a paper trail gets generated that will be capable of breaking the manager's neck once the disaster has occurred. :-(
> 2. A one-shotted POC in the span of an hour with $4 of tokens that is clearly wrong in 20 different ways?
Definitely this. I've had plenty of useless meetings with no helpful outcomes that lasted an hour with 6 or more people in them, and a few of them will have had more than $4 spent on snacks, let alone everyone's wages.
That said, poor communication will always get you no matter what: had one day spent going back and forth with a client, they kept saying they wanted a button "wider" each time around, I ended up making it full screen width and they still said "wider", asked them to draw a picture and they finally said "wider vertically". That may or may not have been faster with an LLM, depending on if the LLM ever thought to ask the client to draw what they meant, but fundamentally would have been exactly the same problem.
It goes beyond this, the job is to understand the underlying need. When a clients asks for a button to be bigger, what's in their head is they fear it's not visible enough. Many times the client was happy when I implemented something unrelated but that solved the issue, like changing the colours to increase the contrast between the background and the button, adding space around, etc. so that it pops out more.
> 2. A one-shotted POC in the span of an hour with $4 of tokens that is clearly wrong in 20 different ways?
A meeting between all the stakeholders to agree on requirements easily runs $1,000/hour. Taking your $4 functional PoC into that meeting is going to save so much time...
> A meeting between all the stakeholders to agree on requirements easily runs $1,000/hour. Taking your $4 functional PoC into that meeting is going to save so much time..
It is though! Because previously your have the meeting last 4x as long to end up with a list of notes that you already knew.
Now you can generate the PoC, showcase it during the meeting and leave with actionable changes in project direction.
I had to re-read parent's comment over and over, because I simply was not sure if he was being ironic, facetious, or just had trouble expressing his point.. and, honestly, I am still not sure.
Not everyone in meeting will be the same person you are. Visuals help. Prototypes help. They certainly can save us from vague ideas and unclear language, because at least someone can point to the big button at the bottom and say:
"Can I have this in cornflower blue?"
It is useful, simply because it makes it more concrete.
Will it change? Is the pope catholic?
I was being entirely serious. Even at $400 of tokens it would probably still be worth it to take a functioning prototype into the discussion. At $4 it is a steal
I used to spend an hour throwing a PoC together with PHP (or sometimes in MS Access) because hey you can throw shit together real fast, and because I used either a shitty language or a toy tool they were treated as throwaway.
Now LLMs make that easier to do with a larger scope.
Draw outlines, or use graphics, wire up clickable areas, and interaction flows, and you’ve got a presentable “live” demo that doesn’t run afoul of issues presenting demo sites to non-techies (placeholder text, ugly buttons, test domains, colours, etc).
Obviously "a blank sheet of paper" here is meaning thinking about the problem deeply. I'm surprised how dismissive people are to using brainpower whatsoever. I get that juxtaposing paper to LLMs might have triggered some people though.
As a counterpoint, bringing a one-shotted POC without thought may actually do have a shock and awe sort of effect, dazzling the stakeholders to go down the wrong path since the AI prototype was so easy.
A one-shotted POC can also put you straight into the very wrong direction, with a very high degree of certainty.
I also prefer doing a POC, but it's not without risk, especially if your stakeholders are just a bit too eager. Another problem I've seen is that a POC can hide complexity, so a lot of weight is on you as the author to do the due diligence before and bring that along.
This is an often underrated problem. I used to work at a company where we would hold demos every other friday, with drinks and nibbles. We would put a lot of thoughts into what we were going to present, and were really careful about the messaging, because execs and sales were watching.
The last thing we wanted was for an "Isn't it neat?!" hacked-together demo to be mistaken for something shippable, if workable at all.
Long ago I have read somewhere a good method to prevent this:
When doing a proof of concept, always use ugly black-and-white buttons and icons. That makes it obvious even to the non-technical people that it is not finished yet, and still requires some work to do.
Sure, the concept of a _Vomit Draft_ is not new, but the ability to come up with one quickly is.
It plays into the generalisation that people aren't good about saying what is the right way to do something, but much more open to saying what something is doing the wrong way.
In a previous job we used to do prototypes in languages like Perl because we couldn't ship them and knocking something non-production ready was easy. We were able to quickly come up with the PoC, iterate on it, and then plan and write the whole thing in $LANGUAGE_OF_CHOICE.
Using the "let run multiple agents run amok" approach you surely get a lot of "i don't like that part"-feature requests, yes.
In my opinion, a good engineer is not good because he understands every single obscure technical detail, but because he can build solutions that the people using his technology actually want. The list of things they don't want on the other hand is endless.
Personally at some points (like frontend design) I just ask the agent for 16 options with a convenient comparison system and just yeet designs until I’m happy, guiding it along in a very uncommitted way. “Quantity has its own quality”
What's even more surprising is that it can be given a grafana API key and reason about bugs from the hints of patterns in the logs even with pretty sketchy and inconsistent logging in places.
It can then raise, investigate and resolve those problems while also patching up and rationalising logging to improve future work.
The AI deniers have their heads in the sands at this point and are demonstrating they simply haven't tried a modern agent. ( Or perhaps are forced onto copilot? )
Again, no, "what to build" is the humans input, but it's not just grunt work that modern AI tooling is good at... Architecture and what to avoid are also strengths of AI.
> Architecture and what to avoid are also strengths of AI.
Absolutely not at all. Every single day that I work with Claude, there is abundant evidence that AI sucks at these. Ask me for examples if you need them.
The first links shows a basic failure of reasoning, which would have gone unnoticed if I was just vibe-coding.
The second link shows weak architectural sense and an inability to see the big picture.
The last link in particular is telling: the agents worked with me (over weeks to months) to implement a db abstraction layer without ever bringing up the fact that as it stands, that would have never worked with any indexes at all. I did not constrain them to my choices, but they never stopped me with that design. It took my eagle-eyed attention to their offhand comments to notice this problem, which then required a lot of rework to fix.
Unfortunately, all three comments have apparently been flagged by somebody for some reason and I can't read them. This is my least favorite aspect of hacker news. It's exhausting, honestly.
Like a sibling comment replied, you can set "showdead" to "yes" on your profile and click update" so see flagged comments. Not sure why they were flagged.
I have read that comments which appear to have been written by an LLM are auto-filtered. As these appear to mostly consist of quotations of LLM output, I expect this would be why.
I suggest putting them on a blog or something and linking to that, rather than HN comments.
I'm writing a unique MUD, and It was surprising to me when I posted some bug reports I'd made and it identified things I didn't complain about. "User had trouble with X" and then suggested mitigations for those problems. I ended up rejecting a lot of them because I knew I had different mitigations coming eventually, or it was working that way for a reason...
But it was pretty eye-opening to see how good it was at watching a user struggle and identifying possible fixes.
> The AI deniers have their heads in the sands at this point and are demonstrating they simply haven't tried a modern agent. ( Or perhaps are forced onto copilot? )
Could be either, but also the free version of ChatGPT seems rather braindead compared to the paid version, or to the free version of Claude.
That depends on (A) verification being very low cost and (B) being able to infer the right answer based on wrong ones.
Those aren't always true. Sometimes it takes a while to see the fatal flaw in an approach, and sometimes having a bunch of failed attempts isn't enough to make the right way obvious, and thinking is still required.
The thing is, AI is generating sooo fast so many outputs, its hard to review and evaluate all of them:
Very often I encounter in design/architecture questions a situation where the model suggests 2 - 3 alternatives approaches,then asking a little bit and there you are with 30+ pages of content etc.
I do it like how I handle error messages: one at a time. Maybe 2-3 if the work is easy. Often enough to find new directions or uncover new problems and the suggestion list doesn’t work anymore.
i just told the reoccurring agent to start maximum 8 experiments at a time.
It is capped at 8 sub agents, so there might be more issues created, but they are the results from 8 experiments
It is an anti-pattern that predates AI. Tester-driven development maybe.
The idea is that instead doing things correctly, you do "something", then, if it fails (it will), you change some random stuff until it passes. It typically results in code no one understands and that fails each time something unexpected happens.
AI makes the process much faster, but just as wrong.
I agree with both you and matsemann. Getting the requirements right by conducting a cheap POC is a good approach. Matsemann is highlighting the failure that creeps in when the POC is shipped as if it meets the requirements.
Someone has to sign off on the requirements and also what is released. So, two approval steps by a person. The first approval is for a plan and the acceptance criteria. The second approval is a check against the plan. The agents can do all the work of taking the plan, breaking it down into tasks, building, and then verifying it. A good orchestrator will include people in the workflow at the points where their decisions matter and maintain a record of it.
That's always been the case though. Much of our job is figuring out as quickly as possible how wrong we are and in what way. And the best way to do that, now and 5 years ago, is the scientific method. Try something, and then listen to your users to hear what sucks and why, and then adapt.
Believing you can figure out the right requirements through a lot of thinking, analysis, and talking is called the waterfall approach, and it's as wrong now as it was four decades ago.
> The thing is it gets you the wrong answer so fast it’s now the best way to figure out the right requirements.
I guess that’s just the old “Build One To Throw Away” in a modern light, where prototyping more freely is now actually feasible. I think if you apply the good engineering ideas of the past decades to AI, the results can be really good!
Except I’d also add a lot of testing to the prototype, to bring up as many edge cases as possible.
I was talking about it for a while with colleagues. AI besides other benefits, needs to be treated as great interface for discovery, you have your features baked in, AI uses it via your users and MCP, then you figure out what are actual flows of my users and then you build it
> The thing is it gets you the wrong answer so fast
If oftentimes happens that you don't know that that's the wrong answer, or you don't realize it right away, for that matter, and hence that's I think that AI is a new (and very big and important) source of information entropy.
Just a recent personal example, yesterday I was curious about the historical figure that was present in an online photo taken in 1930s Romania. Google's Gemini was very quick to point out that that was (military dictator) Ion Antonescu [1], which it was obvious that he wasn't. I wrote down that that wasn't in fact Ion Antonescu, at which point Gemini was very quickly and very surely providing me the info that that guy indeed wasn't Ion Antonescu, but (former Foreign Affairs) minister Manoilescu. At this point I wasn't so sure myself, I don't have a visual image of Manoilescu in my head, so (ironically) I had to AI-dumb google for Manoilescu's available online images and it seemed like Gemini had been wrong a second time. I didn't bother asking it for a third time.
Just to put things into perspective, here in Romania it is illegal to mention Ion Antonescu's name (and propaganda image) in a positive matter, as in one risks prison for doing that, now, just imagine that the political powers that be here decide to use an AI-tool like Gemini in order to identify potential law-breakers in that respect. People would risk going to jail just because Google's Gemini was completely wrong in identifying a WW2 military dictator. Absolutely atrocious product(s).
Yeah, this is a succinct way to describe a very important dynamic in software engineering that is usually unfamiliar to most inexperienced developers but a central facet of most experienced developers.
Software engineering is almost always a process of iteration. The better you get at iterating, the better you are at engineering. This can take on a lot of forms (my old manager would constantly repeat the mantra "don't let perfect be the enemy of good," which is arguably a recognition of the same dynamic), but at the end of the day, if you expect to "one-shot" a complex implementation and you build a process around that assumption, then you will fail. Almost ironically, the best way to avoid that issue is to assume you will fail (potentially multiple times) and to build a process around that assumption.
Interestingly, it seems like a lot of experienced engineers I work with have just forgotten this concept in the world of AI. They expect AI to just get things perfect in one-shot and are dismayed when it fails. There's a lot of discussion around how we handle code reviews because some developers are just letting AI one-shot a solution then sending it to review. It boggles my mind that competent engineers aren't allowing their AI to fail, so to speak, and are instead wasting cycles trying to figure out how to get AI to produce the perfect solution the first time.
To me, it's obvious that there's just a fundamental gap in alignment that prevents a consistent "perfect one-shot" to probably ever be possible (at least, within the current paradigm of development). I can spend an hour writing a spec and try to include every little detail of context I can think of, but in what world could we expect anyone, let alone an AI, to be able to envision the solution the same way we can? We just lose way too much information through communication for that to ever be possible. Yet I see people very dismissive of the capabilities of AI because it's not literally magic.
This is an underrated perspective. A common tactic I use with agents. Just building the slop prototype until it has enough fidelity to be obviously right or wrong can be way faster than sitting down, thinking hard, and planning in advance. This is especially true for background tasks, and IME is the key to productively parallelizing yourself without decision paralysis.
At some point token efficiency will bite, but even that is overrated; the metric you really should care about is:
Dangle the shiney thing to get everyone’s attention and sell the hell out of the very normal thing. This is basic startup marketing and say what you want about Elon, but he owns this skill, it’s why he’s the worlds richest person.
My local coffee shop not only doesn’t have social media, but they don’t even bother decorating the store. Truly unique and amazing coffee, absolutely no design inside. It’s amazing and it really turns people off!
Also still haven’t moved on from the iPhone 12 - it’s a beast. I’ve dropped it thousands of times. Refuses to die or break. I think we’re due another mini run. They seem to come every 5-6 years.
I find it incredible how many people have died in the name of minor variations in their monotheistic beliefs that are all based on the same foundational stories and yet here is a one of those foundational stories that has totally non-theistic source. I struggle with the hypocrisy of religion sometimes.
There's many a true word said in jest. Like this passage from Red Dwarf:
> Mr and Mrs Rimmer were very religious, taking the Bible scriptures at face value. The Hoppists were primarily concerned with a particular verse from the New Testament. St. Paul's first epistle to the Corinthians, chapter 13, verse 13 had been misprinted in a certain edition of the Bible. In their version, the verse read "And now these three remain: Faith, Hop and Charity. But the greatest of these is Hop".
> The Hoppists took this literally and insisted that their followers spent every seventh day hopping. They would hop to church, hop through the service and then hop home again. The Rimmers even served their Sunday lunch whilst hopping, causing them to wear protective clothing to avoid burning themselves.
This is obviously a joke but there's load of examples of people getting hung up on seemly minor details like that.
E.g. The Umbilicus Adami discussion. If the bible is literal and God made Adam then Adam didn't have a mother. So that leads to the question, did he have a belly button?
If he didn't have a belly button was he human?
It sounds ridiculously trivial but people have died over that, which is itself even sillier.
Buddhism didn't start from a blank slate either and incorporates various supernatural beings like deva (linguistically linked to Latin deus) or asura (similarly linked to Norse æsir), but they're relegated to minor roles, trapped in the cycle of reincarnation: https://en.wikipedia.org/wiki/Six_Paths Then as it spread throughout Asia, various other local traditions got assimilated as well. Not unlike turning the Buddha into a minor Christian saint in the article.
I think it's less hypocrisy and more the desire to integrate all available information into a consistent framework. When you encounter something that doesn't fit, you can of course reject it and fight bitterly over who is right, but you can also file off the sharp edges and puzzle it together with the rest of your worldview somehow.
> I struggle with the hypocrisy of religion sometimes
That doesn’t really make sense to me. Do you mean the hypocrisy of people who follow those religions?
I tend to think that blaming outside forces for bad behaviour by people lets them off the hook a bit too easily - in particular it lets leaders off the hook far too easily - and disincentivises change because “I do X because Y makes me” rather than “I do X because I choose to”, which is the truth.
Religions might contain good teachings and bad teachings but, ultimately, people choose how they behave and so it’s the people who show hypocrisy.
Yeh it’s the hypocrisy of the people that follow religion but also religion in general requiring you to deeply believe a version of a story, whilst rejecting other religions version of that story. I know “rejecting” is in the realm of fundamentalists, but even moderate believers will trust their version over others when in reality all these stories can be traced back to the exact same source story. I knew this was true for mono-theistic religions, but I’m amazed it can apply even outside of those bounds.
This is a weirdly dissonant comment that misunderstands both religion and the nature of choices.
Religions don't exist without the people. The scriptures have no narrative power if they are not told by people to people. The rites and traditions only serve to reinforce habits and pass themselves down throughout time to new people. The religion evolves with the people because keeping followers become the fitness function.
No religion knowingly offers its followers "bad teachings". Anybody who thinks a religion has "bad teachings" quickly becomes an impostor and gets pushed out. The self selection means that there are no "bad teachings".
Also, you are trying to pretend like the choice is only applied by the cognitive brain by the individual human at the time of an action. This ignores both group psychology and the role of habits / indoctrination.
The Catholic Church internal policies target the ages of 4-14 for indoctrination and habit forming. What 10 year old will resist their parents, resist their church authority figures, resist all of the teachings of thousands of years of their people, resist the "word of God", have the knowledge and self awareness to know the difference between God's voice and typical bipolar ruminations?
> No religion knowingly offers its followers "bad teachings". Anybody who thinks a religion has "bad teachings" quickly becomes an impostor and gets pushed out. The self selection means that there are no "bad teachings".
I mean "bad teachings" from the point of view of an outsider who might not agree with the religion. What I'm saying is that even where that's the case, it's the people following the religion choosing to do so and choosing how they behave.
And I'm not pretending anything: I know full well about group psychology and indoctrination. But it still boils down to people being people, and people being hypocritical.
> The Catholic Church internal policies target the ages of 4-14 for indoctrination and habit forming.
Exactly. And what did I say about letting leaders off the hook? Grown adult church leaders choosing to indoctrinate, brainwash, and sometimes exploit children. It's people. Again. It's all people.
Sooner or later we all have to grow up and take responsibility and accountability for our own actions.
reply