Software factories can implement anything given a one-liner requirement. That one-liner requirement can be a complete app/product, epic, feature, bug, design change or refactoring. But these one liner requirements are requirements coming from a human who has an intent or requirement or direction for the product to evolve in mind. Can Software factories manufacture intent that reflects the exact requirements of the person using it or their vision of how the product or software should evolve?
Implementation in any language is as easy as generating a summary for an LLM. If coding is only math and there is only one way to translate a requirement into an implementation, the problem boils down to just providing or verifying generated intent. But, there is definitely more than one way to implement a thing and one of the ways leads to a design and architecture that is coherent with rest of the system, design and architecture that is extensible and evolves, code that you can keep in your head when you want to change things next time or tomorrow, software that can serve millions of users and securely guarantee millions of dollars of revenue. There is a combinatorial explosion of ways and the one right way is also subjective of the person and the problem. Software factories can of course improve Quality by generating more unit tests, more integration tests, fix code violations, generate Proof of work as videos, screenshots etc, but there is no feedback loop or test suite to verify and correct the other subjective notions of Quality.
- Customer really wants X
- Customer doesnt actually need X at all
- Customer wants Y not X but couldnt express himself
- Customer B and C do NOT want X at all
- Customer is just messing with you for no reason
Also quite common for me is like someone says X is good (usually a PM) but common sense says it's crap, and when you actually ask the user they also say it's crap. If only LLMs could email a bunch of people for second opinions.
Or fuck them, fuck the managers, fuck the c-suites (intentionally decapitalized), go for a flat organizational structure like Valve where you have no one to report to (well maybe Gabe Newell or the team leader for that project occasionally), but the culture is that everyone can manage themselves organically rather than having hierarchies and forced, useless reportings
Valve ships almost nothing, and the engineering quality is mediocre. Their game design is good, but subsidized by a unique early mover monopoly market owner position.
There is almost nothing that can be generalized, and people who hold up their organization as an example to strive for are utterly clueless
Well, while I do agree it is an early mover (I believe Steam is not the first to do online game platform, but it should indeed be the first one to use a CDN for the solution), I'm sorry that you have Ubisoft Connect, EA Origin, Epic Games Store, itch.io, GOG, Humble Bundle.
So you do have a choice. That renders the statement of it being a monopoly impossible. It's simply because every other platforms sucks.
In other words, it's like Nvidia. You choose Nvidia because AMD and Intel sucks, not because you don't have a choice.
tl;dw: it is a voxel ray marching plus flood fill with Mie scattering. I'd like to point this out that is not only a really good game design, but it also requires ingenious engineering quality. I tried to improve upon it by adding octrees (or in other word, making it sparse voxel octree) but it doesn't seems to add much.
Oh and plus their new bomb shock wave system. I tried to reverse engineer it with vector field, but I couldn't come up with the ODE equations to recreate it. I believe it has to be some kind of field, because in a high energy explosion, it scatter through air into fluid-like structure and hence we can use some aerodynamics for simluation
Why deliver one solution? You're thinking small. If LLMs were fast enough, they could build A,B,C,...,Z in parallel. So that's what will end up happening. The operator will just have to make sure there's no combinatorial explosion of the possible requirements.
Right. Because If I want feature A and it is available in configuration among features A through Z I will always perfectly pick the right letter of the alphabet and I will not at all be irritated by having 26 options that I have no idea about what is the difference between them.
But I think there's anyway a point there. I watched a talk once and it was humorously said that the amount of time spent discussing whether solution A is better than B is more than implementing both A and B and seeing in practice. It's funny because it's true.
If you’re working on an app or software that has few users, no revenue or minimal revenue, tolerance to bugs is higher and just another Claude prompt away, Software factories are a perfect fit. Most personal software or hobby software or 0-1 yet-to-find-PMF startups belong in this category.
You can even take a stand that you’ll never look at the code and just ship. This is a perfect equilibrium for a Software factory, where the only input or feedback is a one-liner/specced requirement and the only output is outcome of whether the one-liner requirement worked or not.
For almost any other software that does not fit this criteria, software factories are yet to solve the Intent and Subjective Quality problem.
The 900 pound gorilla has for a while been "where is all the output of these LLMs?", and this seems to be the answer; the number of apps on the various app stores has skyrocketed over the past two quarters but installs overall are actually down a little bit. So it seems like we've had an explosion of software that one or two people use. Which is a cool situation to think about but is pretty bearish for the "AI as a profitable business" idea.
Marketing was a problem with apps even before AI, which, with today’s slopforests makes it even harder for consumers to see any of your trees even if they wanted to.
Right but if we're going to a small-batch bespoke development model then "marketing" more or less disappears because why would I pay someone to talk to an LLM when I can also talk to an LLM? The money goes from the end user to the lab in this model.
What happens then, though? Is it good to have tens or hundreds of thousands of potentially angry marketing managers roaming around that were developed out of careers?
> If you’re working on an app or software that has few users, no revenue or minimal revenue, tolerance to bugs is higher and just another Claude prompt away, Software factories are a perfect fit. Most personal software or hobby software or 0-1 yet-to-find-PMF startups belong in this category.
I would rather claim that for my personal/hobby software, I apply a much higher quality standard than for the software that I write at work.
Believe me: I would love to apply the same high (or even higher) standard at work, too.
The problem rather is that it is a very common situation that bosses actively prohibit me from rocking the boat too much. If I make (I think typically good) suggestions, I often get very stern reactions.
At work, elegance is not celebrated - just implement the tasks of users who don't care about quality or elegance.
I’m always surprised when I read comments like this. I’ve come across far more situations where individual contributions take a slapdash approach and management is disengaged than management actively imposing poor quality work.
I don't think so? It's very common in both large companies and small startups where pragmatism has a higher priority than so called elegance or whatever you call it the "artisan" feel. It's varying shades of "perfect is the enemy of good", where different cultures and business environments dictate how much a manager is going to tolerate your proposed refactoring. At least that's what I got from the parent lost.
> If you need to actively keep your head down, you need to quit.
This really depends on whether they are paying you decently. The number of people I've met who found a nice corner in FAANG, and decided to keep their head down and collect a steady paycheque... One may find one can swallow a lot of engineering pride for a recurring six figures
And that’s not to say anything about personal situations. Family obligations, immigration requirements, etc.
Especially in the current job market, “find a new job and quit” is going to cost you so much time and effort and for many people it will still be a lateral move in terms of company quality in regards to engineering practices. It’s hard to make these kinds of deep company discoveries until you’re in the thick of it but by then it’s too late.
Personally, I’m advocating for change where I can and not taking it personally when the manager says no. I put in enough effort not to get paged in the middle of the night which is generally plenty for management. It helps that I don’t work in a super strict business environment.
There’s more to life outside of work as well so if you can silo that bit of your life and enjoy things outside of working hours and you’re content, so be it.
The perfect poster boy is system scripts. They’re not even published usually, but being able to just generate < 500 line scripts for everything is a huge boon.
It goes hand in hand with Linux desktops too, because everything is just so much more scriptable. That used to be intimating, user unfriendly, and maybe it still is. But with AI it enables so many new avenues.
Now that LLMs can do the actual configuration, I started using NixOS and now all my config lives in one repo, and every quality of life improvement fans out to every machine without issue.
Since Claude (code) knows all about my system, it will also tailor solutions to it when I ask how to do something. Using it I can often find really neat solutions to whatever sys admin task I can imagine.
Software factories can implement anything given a one-liner requirement. That one-liner requirement can be a complete app/product, epic, feature, bug, design change or refactoring. But these one liner requirements are requirements coming from a human who has an intent or requirement or direction for the product to evolve in mind. Can Software factories manufacture intent that reflects the exact requirements of the person using it or their vision of how the product or software should evolve?
Implementation in any language is as easy as generating a summary for an LLM. If coding is only math and there is only one way to translate a requirement into an implementation, the problem boils down to just providing or verifying generated intent. But, there is definitely more than one way to implement a thing and one of the ways leads to a design and architecture that is coherent with rest of the system, design and architecture that is extensible and evolves, code that you can keep in your head when you want to change things next time or tomorrow, software that can serve millions of users and securely guarantee millions of dollars of revenue. There is a combinatorial explosion of ways and the one right way is also subjective of the person and the problem. Software factories can of course improve Quality by generating more unit tests, more integration tests, fix code violations, generate Proof of work as videos, screenshots etc, but there is no feedback loop or test suite to verify and correct the other subjective notions of Quality.