Remix.run Logo
▲ saulpw an hour ago

I'm a fan of the 'sandwich' model: someone needs to say what to do, someone needs to do it, and someone needs to say if it's been done [well enough]. Even if AI can do that middle bit entirely, we still need humans at the beginning and the end. Replace the humans at the start and you have a paperclip-optimizer; replace them at the end and you have slop.

The problem is that software in corporations has typically been product managers at the front, software engineers in the middle, and QA at the end. Software developers who also have good product sense and do diligent QA are still needed. Programmers who treated their job as leetcode exercises are not needed anymore.

▲cpeterso an hour ago | parent | next [-]

> someone needs to say what to do, someone needs to do it, and someone needs to say if it's been done

I agree, but if you zoom out, "someone needs to say what to do" and "someone needs to say if it's been done" are the customers and end users. Will they still need product managers, software engineers, or QA in the middle? I think so because many customers will need help from experts with domain knowledge.

▲saulpw 23 minutes ago | parent | next [-]

Customers are notoriously bad representatives for 'what to do', per "my customers would have asked for a faster horse". And they also hate being used as QA; most quality issues (which can be reliability, UX, latency, etc) need to be addressed before the customer sees it and forms their durable impression of the software.

And then also it's as you say, customers do need help from domain experts (whether they admit it or not).

▲ 6 minutes ago | parent | prev | next [-]
[deleted]
▲bigfishrunning 26 minutes ago | parent | prev [-]

> "someone needs to say if it's been done"

If that's the end user, they're not happy. End users generally don't like doing unpaid involuntary QA work.

▲EliRivers 19 minutes ago | parent | prev [-]

I have had significant success applying LLMs to the start of that sandwich.

The sheer amount of time that gets wasted when people who are awful at expressing what they want just slap together a ticket with little understanding of what they're asking, what the software does, or what the customer wants or needs. Which is far, far too many of them.

Previously, eventually I or another person who does know that would get to it, cross out all the utterly irrelevant parts, strip out the parts that were clearly a completely unrelated ticket, point out to them that they'd asked for the font to be coloured both blue and red simultaneously (neither of which matched the style guide, the company or product colour scheme, or any other part of the UI) and so on and so on... it might takes weeks from start to end for a ticket to actually get expressed well.

Now, the LLM reviews it, adds a whole lot of questions, points out a bunch of nonsense, and sends it back to them. Even in cases where the LLM makes some mistakes, it's 100% fine because the human is forced to think about what they want. The LLM is great at natural language, and it doesn't matter what mistakes the LLM makes.

The quality of the software is going up and up, purely by finally getting a handle on awful requirement and ticket writing.

The human isn't replaced at the start of your sandwich, but now the LLM makes that human do it properly, at speed. Massive, massive reduction in time wasted and significant improvement in software quality.