Live data from Hacker News

LLMs work best when the user defines their acceptance criteria first

blog.katanaquant.com

401–410 of 460 posts

Re: LLMs work best when the user defines their acceptance criteria first

#401
post #340

Earlier quoted context omitted.

2 seconds to insert 100 rows in an empty database table is not "good enough" if you are doing anything that is worth doing.

Who said anything about this? I never did.

Tfa did

Re: LLMs work best when the user defines their acceptance criteria first

#402
post #386

Earlier quoted context omitted.

Again, how is that different from humans? I’m not going around trying to prove my code correct when I write it manually.

I write code to solve a problem. Not code that looks like it solves the problem if a non-technical client squints at it. And if you don't prove your code, do you not design at all then? Do you never draw state diagrams? Every design is an informal proof of the solution. Rarely I write formal proofs. Most of the time I write down enough for myself to be convinced that the desing solves the problem.

Yes, you can dedicate extra tokens to draw state diagrams, the LLM can actually do that, if you don't have it generating one or more design documents before you are writing code you are doing that wrong. I still don't get how that is different from what humans are doing.

> Most of the time I write down enough for myself to be convinced that the desing solves the problem.

Again, why do you assume we aren't doing the same thing with LLMs?

1. Spec given

2. Ask LLM to write a bunch of design documents based off of spec

3. Ask LLM to identify edge cases

4. Ask LLM to device edge cases in to a test plan involving N tests

5. Ask LLM to write tests

6. Ask LLM to write commented code

7. Ask LLM to run tests on code, and determine on failing tests if test or code is wrong, go back to the appropriate step to fix test and/or code.

Whenever I hear someone here on HN imply that the only way to code with an AI is via vibe coding I just die a bit more inside.

Re: LLMs work best when the user defines their acceptance criteria first

#403
post #326

Earlier quoted context omitted.

How would you determine humans have reasoning then, in a way that LLMs do not?

Or — here's a fun one — subjective experience.

They haven't replied to my comment but have to yours, so I can only assume they actually cannot point out the difference, which makes sense as the philosophy of mind is a very old subject and there is no way a threaded conversation like this would produce any concrete answers.

Re: LLMs work best when the user defines their acceptance criteria first

#404

Earlier quoted context omitted.

I agree with your first paragraph but not the second one. In many cases it's easier for me to directly write the code that satisfies the unwritten acceptance criteria I have in my head than to write those criteria down in English, have an LLM turn them into code, and then have to carefully review that code to see if I forgot some detail that changes everything.

> easier for me to directly write the code that satisfies the unwritten acceptance criteria I have in my head than to write those criteria down in English Yes, and for team or company code, "there's the problem". Those acceptance criteria are guardrails for the change that comes after, and getting those out of your head into English is more important over the long haul than your undocumented short-term solution to th…

  > getting those out of your head into English is more important over the long haul than your undocumented short-term solution to the criteria.
I think there may be miscommunication going on, or I may be misreading the conversation. What I do not know is what valicord means by "satisfies the unwritten acceptance criteria".

In one interpretation, I think they make a ton of sense. We invented formal languages to solve precisely this problem. The precision and pedantic nature of formal languages (like math and code[0]) is to solve ambiguity. If this is the meaning, then yes, code is far more concise and clear[1] than a natural language. That's why we invented formal languages after all. So they may be having trouble converting it to English because they are unsatisfied with the (lack of) precision and verbosity. That when they are more concise that people are interpreting it incorrectly, which is only natural. Natural languages' advantage is their flexibility, but that's their greatest disadvantage too. Everything is overloaded.

But on the other hand, if they are saying that they are unable to communicate the basics (it seems you have read in this way) then I agree with you. Being able to communicate your work is extremely important. I am unsure if it is more important than ever, but it is certainly a critical skill. But then we still have the ambiguous question of "to who?" The type of writing one does significantly differs depending on the audience.

Only valicord can tell us[edit], but I think we're just experiencing the ambiguity that makes natural languages so great and so terrible. I think maybe more important than getting the words out of ones head is to recognize the ambiguity in our language. As programmers this should be apparent, as we often communicate in extremely precise languages. But why I'd say it is more important than ever is because the audience is more diverse than ever. I'd wager a large number of arguments on the internet occur simply due to how we interpret one another's words. The obvious interpretation for one is different for another.

[0] Obviously there's a spectrum with code. C is certainly more formal than Python and thus less ambiguous.

[1] Clear != easy to understand. Or at least not easy to understand by everyone. This is a skill that needs training.

[edit] Reading their response, I think it is the first interpretation.

Re: LLMs work best when the user defines their acceptance criteria first

#405

Earlier quoted context omitted.

The point is, that's not the typical experience and people like that can be replaced. We don't willingly bring people like that on our teams, and we certainly don't aim to replace entire teams with clones of this terrible coworker prototype.

Not only have i never had a coworker as bad as these people describe, the point is as you say: why would I want an LLM that works like these people's shitty coworkers? My worst coworkers right now are the ones using Claude to write every word of code and don't test it. These are people who never produced such bad code on their own. So the LLMs aren't just as bad as the bad coworkers, they're turning good coworkers in…

Couple of reasons, but mainly speed and avaiability.

I can give Claude a job anytime and it will do it immediately.

And yes, I will have to double check anything important, but I am way better and faster at checking, than doing it myself.

So obviously I don't want a shitty LLM as coworker, but a competent one. But the progress they made is pretty astonishing and they are good enough now that I started really integrating them.

Re: LLMs work best when the user defines their acceptance criteria first

#406
post #376
post #310

Earlier quoted context omitted.

> The people who walk up and say "sudo make me a sandwich" do not. My personal beef is the human devs get "make me a sandwich", and the LLM superfans now suddenly know how to specify requirements. That's fine but don't look down your nose at people for not getting the same info. This is happening now at my company where leadership won't explain what they want, won't answer questions, but now type all day into Claude…

Absolutely. Merely being a member of the business class does not magically mean one has the ability to specify business requirements much less product specifications. These are *not* the people I'm talking about now having superpowers. I am picturing people who blend high level engineering and product skills, ideally with business sense.

  > Merely being a member of the business class does not magically mean one has the ability to specify business requirements much less product specifications
Is this not why COBOL failed? Common Business-Oriented Language sure does look much more like natural language than a lot of other code, but it could never solve the abstraction needed to do the complex things.

I don't think LLMs will ever get rid of coders. Business people can no more tell an LLM what to build than they can a team of programmers. I've long argued that the contention between the "business monkeys" and "coding monkeys" is a good one. That the former focuses on making money and the latter focuses on making a better product. The contention is good because they need each other (though I do not think the dependence is symmetric).

Maybe one day AI will get there, but I don't see how it does without achieving AGI. To break down intent. To differentiate what was asked from what was intended. To understand the depth and all the context surrounding the many little parts. To understand the needs of the culture. The needs of the users. The needs of the business. This is all quite complex and it's why the number of employees typically grows quite rapidly.

How do we move forward without asking how we got here? Why we got here? How optimizing for decades (or much longer) led us to these patters. Under what conditions makes these patterns (near) optimal? I've yet to see a good answer to how LLMs actually address this. If typing was the bottleneck I think we would have optimized in very different ways.

Re: LLMs work best when the user defines their acceptance criteria first

#407

Earlier quoted context omitted.

yes, llms can produce bad code, they can also produce good code, just like people Over time, you develop a feel for which human coders tend to be consistently "good" or "bad". And you can eliminate the "bad". With an LLM, output quality is like a box of chocolates, you never know what you're going to get. It varies based on what you ask and what is in it's training data --- which you have no way to examine in advance…

no but you're a human and you're responsible for it, so it's on you you can make horrible images with photoshop that doesn't make photoshop bad

The key word here is *you*.

Photoshop doesn't make anything --- *you* make the image horrible --- or not. Any results relate directly to *your* skill.

A direct comparison to agentic AI is less than equitable. AI is supposedly able to provide skill --- which it often fails to do.

Re: LLMs work best when the user defines their acceptance criteria first

#408

Earlier quoted context omitted.

This is why I'm confused when people say it isn't ready to replace most of the programmer workforce.

If you a) know what you are doing and b) know what an llm is capable of doing, c) can manage multiple llm agents at a time, you can be unbelievably productive. Those skills I think are less common than people assume. You need to be technical, have good communication skills, have big picture vision, be organized, etc. If you are a staff level engineer, you basically feel like you don’t need anyone else. OTOH i have be…

> can manage multiple llm agents at a time

How is that supposed to work? Humans are notoriously poor at multi-tasking. If you spend all day context switching between agents you’re going to have a bad time.

Re: LLMs work best when the user defines their acceptance criteria first

#409

Earlier quoted context omitted.

>I used it to help me turn a cat exercise wheel (think huge hamster wheel) into a generator that produces enough power to charge a battery that powers an ESP32 powered "CYD" touchscreen LCD that also utilizes a hall effect sensor to monitor, log and display the RPMs and "speed" (given we know the wheel circumference) in real time as well as historically. So what? That's honestly amateur hour. And the LLM derived all…

Right - it's not a big deal and it LITERALLY is amateur hour. But I did it. I wouldn't have done it prior, sure I could have done a bunch of google searches but the time investment it would have taken to sift through all that information and distill it into actionable chunks would have far exceeded the benefit of doing so, in this case. The whole point is that it is amateur hour and it's wildly effective as a learnin…

>The whole point is that it is amateur hour and it's wildly effective as a learning tool.

You sound so proud of your accomplishment, and I question if there's really nothing to be proud of here. I doubt you really learned anything, a machine told you what to do and you did it, like coloring by numbers - it doesn't make you an artist. You won't be able to build upon it, without asking the machine to do more of the thinking for you. And I think that's kind of sad.

>I'm a builder, fixer, tinkerer who happens to make a living writing code

I have to doubt that. If you were all those things, you would have been able to complete that project with very little effort, and without a machine telling you what to do.

Re: LLMs work best when the user defines their acceptance criteria first

#410
post #385

Earlier quoted context omitted.

One conference proceeding paper and one preprint, about LLMs encoding either relative geometric information of objects or simple 2D paths. One of the papers call this "programming language semantics", but it is using a 2D grid navigation DSL. The semantics of that language are nothing like actual programming language semantics. These are not the same as the concept being discussed here, a human "world model" of a com…

Well I didn't find any papers off the bat for code world models but if they can create a world model for the task given, such as geometric manipulation, I don't see why they wouldn't in terms of code.

Because a "world model" for relative positions in space is just a partial ordering of points.

That's not really a world model.

Post reply on HN