> The issue comes when you have 432 functionalities and have to add the 433 without interfering with the others. Or when you cant afford slightly wrong. Or when each functionality adds complexity at a higher rate than an engineer and over time the projects gets to an unmanageable size.
But that's not a problem on small projects. non-technical people only create software to scratch their needs, they will probably will need 20 or 30 features, never 432, making their system much easier to handle.
The problem with enterprise software is that it has to support a very large combination of features designed for different clients. That's why it gets so complex, but if the software has to support a single client is waaay easier.
Sure, there's a place for disposable, ultra custom apps that AI can cover. I vibecoded one to help me clean up my local media with a tinder-like UI for discarding/keeping photos, for example.
That's not going to substitute many engineers though, for two reasons.
One is that "app that helps a single-digit number of people" was never a viable business in the first place.
The other is that you can't substitute all corporate software with a combination of disposables. Some stuff is complex even if the "surface features" are small in number. Say for example that you want a custom web browser, "surfing the internet" might feel like a single feature for a non technical person but it's made of many moving parts inside.
I agree with you, 99% of the people work just to pay bills, but that doesn't make the other part false.
I'm a software engineer and love thinking about problems methodically. Every time I hear a someone saying that programmers are no longer required (even if I don't agree with that) if feels really bad, it's equivalent to saying that what I do best in life has no value anymore.
To put it on other words: I really like philosophy, but what value do they provide in modern world? Who pays for the work of a philosopher? I think people will start of thinking of programmers like that eventually.
I’m lucky to have more than my share of really exceptional programmers to hang out with and they all say the same thing: “I haven’t been writing code for months and don’t expect to again”
This is a way different sentiment than “programmers aren’t needed anymore” - I’m just seeing ambition, motivation, and fun go up in lockstep.
I first heard this in November and slowly one by one it’s everyone whose opinion I respect.
FWIW the other popular topic is how abysmally stupid and limited these amazing tools continue to be, despite also being magic.
Oh and that none of us have gotten token maxxing to succeed, despite lots of trying.
If the LLM is wrong and gives you a wrong medical diagnosis you end up hurting your health. If an LLM gives you a wrong debugging answer you've just lost 5 minutes.
Software engineering is the only knowledge work where mistakes are usually inexpensive except for data breaches. Outside for that nobody cares for bugs.
That's not true in most other knowledge jobs. If a lawyer uses AI and hallucinates something there is a legal problem. If someone vibecodes an app and crashes, it can be fixed with more AI and try again
That’s my point though? Debugging a 5-minute problem is in the shallow end of the spectrum, the real complexity sits where they lean on their domain experience. Finance and payments software mistakes can absolutely be expensive.
I've working on a small side project with a non technical friend for a couple months. It's really small but we are selling it to some clients.
The other day my friend discovered lovable and vibe coded an entire app and he started feeling like I was scamming him. Why would I take weeks or months in building our app if he could do it on hours?
He might be stubborn but ended up blindly believing me, but I couldn't find a good way of explaining that a prototype wasn't a final product. It has lots of errors, doesn't consider edge cases and it's impossible to fix if something breaks. Of course what I said didn't mean much because he didn't understand what I was talking about.
How do you communicate this problem? That there's much more than what you see in a frontend? Seems really hard to explain to non technical people.
Show it. Pick a missed edge case or breaking point in his app and demonstrate the pain the customer is going to encounter. You don't have to live in the realm of hypotheticals. He has given you a concrete, but flawed, implementation that offers proof of your message.
You are convincing me of it too. It is clear that your friend still needs your system thinking to point out edge cases and whatnot, but if you applied that by spending a couple of days adding a test suite to provide the missing validation, it seems like together you could have a pretty robust product built in less than a week. What justifies a couple of months?
I think the point is that those are the clients you don't want, so you encourage them to select themselves out of working with you. The fact that it might be bad for their own business is not relevant to you as a consultant.
I think it's normal for non-technical people to have no idea of how things work and of what to expect. It's our responsibility to communicate. And, within reason, theirs to listen.
> They'd prefer to believe that there's something special about their craft that means something produced by AI isn't good enough.
I know I can code and get better results than most people can with an LLM but I've came to realize that it doesn't matter and people just want to see results (even if they are kind of wrong).
In other words, with the website example, I've realized that even if the agency can do something 10x better, most people will choose to "buy" the AI website just because it's free or super cheap, and that makes me sad
I know you are joking but I'm sure that there is at least one director or VP inside GitHub pushing a new salvation project that must use AI to solve all the problems, when actually the most likely reason is engineers are drawing in tech debt.
Upper management in Microsoft has been bragging about their high percentage of AI generated code lately - and in the meantime we've had several disastrous Windows 11 updates with the potential to brick your machine and a slew of outages at github. I'm sure it might be something else but it's clear part of their current technical approach is utterly broken.
<mermaid>
flowchart TD
A["Claim: Bridge opening is conditional"] --> B["Actor: Donald Trump"]
A --> C["Project: Gordie Howe International Bridge"]
A --> D["Condition: Canadian concessions required"]
B --> E["Public statement"]
C --> F["Status: not opening (per claim)"]
D --> G["Type: policy/trade concessions"]
E --> H["Outcome framing"]
F --> H
G --> H
H["Message: No opening unless concessions are granted"]
</mermaid>
<mermaid>
flowchart TD
A["Claim: Bridge opening is conditional"] --> B["Actor: Donald Trump"]
A --> C["Project: Gordie Howe International Bridge"]
A --> D["Condition: Canadian concessions required"]
B --> E["Public statement"]
C --> F["Status: not opening (per claim)"]
D --> G["Type: policy/trade concessions"]
E --> H["Outcome framing"]
F --> H
G --> H
H["Message: No opening unless concessions are granted"]
</mermaid>
When I first typed up my comment I said "their current business approach" and then corrected it to technical since - yea, in the short term it probably isn't hurting their pocket books too much. The issue is that it seems like a lot more folks are seriously considering switching off Windows - we'll see if this actually is the year of the linux desktop (it never seems to be in the end) but it certainly seems to be souring their brand reputation in a major way.
Honestly AI management would probably be better. "You're a competent manager, you're not allowed to break or circumvent workers right laws, you must comply with our CSR and HR policies, provide realistic estimates and deliver stable and reliable products to our customers." Then just watch half the tech sector break down, due to a lack of resources, or watch as profit is just cut in half.
> And a thinkpad running Linux is just not doing it for me. I want my power efficient mac hardware.
Are you talking about the battery? I bought a T16 AMD a month ago with the 86Wh battery and it lasts between 8 and 12 hour depending on the usage. Not as much as a macbook but enough to not worry too much about it. New intel ones are supposed to be much better on power efficiency.
It's off course one level bellow on the mac on that regard (and others maybe too), but if you want to use linux I think the trade-off is worth it.
The two groups are very different but I notice another pattern: you have people who like coding and understanding details of what their are doing, are curious, what to learn about the why and think about edge cases; and there's another group of people who just want to code something, make a test pass, show a nice UI and that's it, but don't think much about edge cases or maintainability. The only thing they think is "delivering value" to customers.
Usually those two groups correlate very well with liking LLMs: some people will ask Claude to create a UI with React and see the mess it generated (even if it mostly works) and the edge cases it left out and comment in forums that LLMs don't work. The other group of people will see the UI working and call it a day without even noticing the subtleties.
Sadly the times where people joined software engineering for passion are way behind. People nowadays join just for the money or because it has lot of jobs available.
It is very easy to notice at work who actually likes building software and wants to make the best product and who is there for the money, wants to move on, hard code something and get away with the minimal amount of work, usually because they don't care much. That kind of people love vibe coding.
But that's not a problem on small projects. non-technical people only create software to scratch their needs, they will probably will need 20 or 30 features, never 432, making their system much easier to handle.
The problem with enterprise software is that it has to support a very large combination of features designed for different clients. That's why it gets so complex, but if the software has to support a single client is waaay easier.