Uncle Bob: It's Over
Comments
MeetingsBrowser
johnfn
There are definitely tasks you can prompt an AI in 5 minutes that would take a whole day to do. One example is adding something to a CI pipeline and getting it to green (i.e. maybe you're adding your first ever e2e test), especially when your CI pipeline is painfully slow. e.g. if your pipeline takes 30 minutes to finish, and it takes around 10 tries to figure out all the random problems, that was easily a full day task before AI. Now I prompt AI to figure it out, which takes 5 minutes of active attention, and it figures it out for the rest of the day while I do other stuff.
rich_sasha
People say LLMs do better on tasks where success is clear, like tests passing, and I can imagine it's true.
Still, I find complex code fixes confirmed by tests end in the LLM fudging the code to make the specific test pass, rather than fixing the general issue. Like, where successful code run should generate a file and the test checks for the file, eventually LLM will just touch the file regardless and be done.
wild_egg
Skill issue. Literally. Make a SKILL.md that has the agent leverage subagents to do all work. An implementor agent does the thing, and then a separate agent reviews and verifies afterwards. The fresh context window of the second agent doesn't have the shortcut chain of thought in it and so it will very happily flag if the first agent cheated. Main agent can then have a new set of agents go fix it.
This has completely solved the cheating and fudging to make tests pass for me.
MeetingsBrowser
There are definitely some tasks that AI has made 10x or 100x faster, but not the tasks that make up my day to day.
For me, there may be one thing I do every few months that AI is really good at.
The overwhelming majority of the work I do, LLM tooling is just ok at. Definitely faster overall, but with lots of human planning, hand holding and course correction.
I would estimate LLMs make me, on average 50% more productive , which is huge! But from my experience I cannot believe anyone is experiencing a 8h/5m multiple productivity boost overall
Aurornis
I mean I wasn’t sitting around unproductively waiting for 30 minute CI runs to finish before LLMs came along, either.
I also like to use LLMs for background work on iterative tasks, but the way some people talk about work in the days before LLMs make me realize how we’re arriving at these claims that LLMs make us 10X more productive. If it took someone all day to do a few minutes of active work then I could see how LLMs would feel like a 10X or 50X productivity unlocker simply by not shutting down and doing nothing at the first sign of a pause.
johnfn
Count yourself as one of the lucky few that can pay a 0 minute context switching price to switch between whatever other productive work you were doing and debugging CI. Most people I speak to remark that continually switching between unrelated tasks significantly diminishes their productivity.
Aurornis
The example above was talking about 30 minute wait times between being able to do work.
Nobody is staring at the screen for 30 minutes in deep concentration while they wait for that turn to complete. They are context switching to something, but maybe it’s Hacker News or Reddit.
There is always a context switch in scenarios like this.
qudat
Fundamentally it cannot be much better than how well we can write the spec and then validate the results.
It’s always gonna be a multi shot process. And it can already write code good enough. That’s no longer the bottleneck.
Further, Qwen 27b is such an incredible masterpiece for coding and it can run on consumer hardware today. Anthropic/OpenAI are gonna give up on coding models very soon. There’s not gonna be any money in it when you can run your own local model for significantly cheaper.
Qwen27b is not SOTA but the value is insane. You can basically use it for small tasks and then route harder problems to opus or sonnet and boom you’ve said a lot of money.
muglug
For select tasks the latest LLMs can speed things up by an order of magnitude.
Best example I’ve found: translating code from one language to another where there’s a large corpus of existing acceptance tests.
casey2
Again, no silver bullet. You will have to know what tasks it's capable of and how to elicit that solution. The bottleneck was never code the bottleneck still is solving the right problem in the right way.
HeavyStorm
Not my experience. AI takes a lot less time doing tasks than myself. My current issue is that 2 out of 3 they don't produce the code that I want, so I either have to reprompt or do it myself. And the solution is simple: just accept their way; I'm just not there yet.
In any case, on that one time that AI works perfectly, it saves me hours of coding. So the potential is there...
2ndorderthought
Super trivial to hand verify 350kloc changes for sure.
qayxc
Quis custodiet ipsos custodes?
whstl
Yep. It depends so much on task, expectations, ability to express what you want and whether the problem has been solved elsewhere or not.
The results are always so ridiculously different.
lelanthran
> The results are always so ridiculously different.
Well... yes! It's not the same as running a program through a compiler 100k times and getting the same binary, it's... different: https://www.lelanthran.com/chap15/content.html
oulipo2
When you do any meaningful work, that is, not "generate a website with a fancy UI", you very much realize that AI can not, in fact, "do the work". They constantly make mistakes, and you have to spend about as much time writing the spec and checking the code as you'd have written the code
So the effect is just merely some kind of acceleration of "boilerplate code writing", which is very impressive for beginner coders who are mostly doing automateable, trivial tasks, but much less so once you start doing real concurrency / threading / embedded / etc work
Aeolun
> There is no task that takes me a day that they can complete in five minutes.
Five minutes is pushing it, but 15 minutes? Absolutely.
potsandpans
Agreed with you. Non argumentative, just want to add to the convo: what's even more crazy is the cognitive dissonance around this idea.
> There is no task that takes me a day that they can complete in five minutes.
It's highly dependent on task. I was watching a podcast with Simon Wilson, where he said something like, (paraphrasing) "My whole selling point as a dev was that I could ship POCs / MVPs fast. Now that's somewhat obsolete."
It resonated with me because I feel like that also was a skill that I cultivated and excelled at. I agree with Simon's general thesis: that skill is largely dead. There are many pedants and detractors that will race to the defense of this art with various arguments to try to challenge the idea, but they simply do not hold up to reality. I have non-programmer friends with 10 dollar claude code subscriptions whipping up products to solve niche problems in their life / job.
I offered to help one of my friends who's working on generating math exams based on curricula and seed problem sets. I taught him how to use git, he pushed the repo, I looked at the repo and it wasn't clear he needed me. Everything I could do would be related to scale / reliability / optimization. They don't need any of that, they just need to prompt the ai to say, "go burn some subscription tokens for my AP Calc track this year." There's a whole saas and c2c industry built around this problem that this guy just solved for 10 bucks a month.
Of course, there's much more depth to engineering then just cranking out prototypes. There is still "real engineering" to be done, and software will likely start focusing more towards specification / verification.
But a lot of the industry was built around the idea of speed of delivery / time to market to explore product fit and rapidly iterate. IMO frontier llms (private and open weights) have this largely solved. I can build and test ideas that would have taken me a weekend last year in half a day now, the majority of that time I can be talking to the llm via matrix while I'm out in the world.
MattGaiser
The delta isn't a day to 5 minutes, but a day to a half hour (where most of my larger tickets take)? Yes, especially as you don't need to watch it do its thing anymore.
To me, the lack of amazing productivity gains is that we have done nothing to speed up figuring out what to build and nothing to speed up getting code into production from pull request and in a lot of companies, code review is already saturated.
Also, the agents are good at figuring out problems for themselves, so I can ask it to set up a CI/CD pipeline, give it GitHub access, and it will just try things until it succeeds.
soupspaces
[dead]
OldSchool
More "bad news" and from the man who helped create and then promote Agile to dilute the value of software developers by forcing software development out of the control freak's nightmare where it started: seemingly esoteric, non-understandable by management, and make sure the next generation of developers knows their place. That's Agile's insidious purpose as far I am concerned.
As for AI-written code, I wouldn't fly on a plane controlled by AI-designed and AI-tested code, but much of development is busy work, not problem solving or design. AI excels at turning a protocol spec into a parser for example. I'll take that any day. AI excels at finding stuff, particularly non-code, thesis-level ideas for algorithms and also at about the same level, what's been shown not to work when solving a non-deterministic problem.
If we're lucky, AI will fill in after exposing who is only doing busy work and who is creating.
znort_
i had to laugh at his announcement that "otoh ai will give you the power to get all that coverage and cyclomatic complexity stats done in minutes, which you know doesn't really mean that the code is going to work".
also, his prediction assumes that ai will be able to learn from its own code going forward. will it also create its new programming languages and tools?
but it's a funny rant.
mvdtnz
Your claim is that software developer value has been diluted in the past 20 years? Have you ever compared software developer salaries to the jobs with similar skill levels?
HeavyStorm
That's a conspiracy theory if I ever heard one.
doginasuit
There are probably some respectable workflows that involve an LLM writing most of the code, but AI is still terrible at understanding some critical parts of the problem. You still have to tell it what to write and how it should work or there are high odds that you'll get a hot mess. And there still needs to be a human that understands everything there and how to debug it. For me, the most enjoyable path there is to write it myself, because I would rather be involved in writing the code than only involved in reading it. It might not be the fastest path there, but it gets the job done for the foreseeable future. I could end up like the Amish who choose not to use technology that was developed after a certain point, from what I can tell they do alright.
tonyarkles
> but AI is still terrible at understanding some critical parts of the problem
I agree to some extent with regards to writing new code. One piece where I have been perpetually impressed is at asking it to put together a plausible explanation of how something weird has happened. I have been blown away, multiple times, by Codex and Claude’s ability to take a prompt like “When I did X, I expected Y to happen but instead observed Z. Put together an explanation for how that could happen, including the individual lines of code that can lead to ending up in that state.”
In one notable case, it traced through a pretty complex sensor fusion -> computational geometry problem and identified a particular calculation far upstream that could go negative in certain circumstances, which would lead to a function far downstream generating a polygon with incorrect winding order (clockwise instead of CCW).
In another, it identified a variable that was being initialized to 0 instead of initialized to (a specific runtime value that it should’ve been initialized to during a state transition). The downstream effect, minutes later, would be pathological behaviour that would happen exactly once per boot.
In both cases I was provided with a specific causal chain of events with individual source files and line numbers so that I could verify the plausibility of the explanation myself.
doginasuit
That is how I use it too, for explanations and suggestions when I run into something unexpected. It is incredible in the back seat.
I don't mean to completely dismiss their utility. I realized recently that I was having more fun coding than I ever remember. It is a strange feeling to go along with vibe out there that software developers are becoming obsolete.
aleyan
Over on reddit and over here as well people seems to be reacting to the title of the video or the first 5 seconds or just the author. On the original x[1] post however, the top replies are about the subject matter, which is about having agents write tests and refactor code.
And speaking of agents writing tests, I have an ask. The tests agents love to write are in a lot of ways like human written tests, perfunctory and smelly. They are there to check coverage or prompt checkbox, but they barely stress the system under test. I often find that the tests are faking and mocking so many inputs, methods, and side effects, that they aren't testing anything at all. Asking the agent to write the tests first so that they the underlying implementation is more testable has yielded no results.
What has worked for people to get agents to write more testable implementations and better tests?
PS. Reacting to Uncle Bob, I found metric driven agentic refactors just push complexity to outside the scope of the metric. I am finding I need to actively guide the agents for the refactors to actually improve things without increasing the entropy of the codebase.
silexia
X is fantastic, especially with Community Notes informing you of all the false propaganda the other platforms, including HN, are rife with.
cmiles74
I don't have a lot of patience for Bob. That being said I have to agree with him on test coverage (that's as far as I made it through his monologue). IMHO, that is something that I 100% am okay letting the LLM tooling write and manage. I used to argue about whether or not we needed a test that verified that the value of a constant didn't change, and if 100% coverage was really that important. Now I don't care, I just let Claude write the test and keep it up-to-date.
adriand
Kind of a great video! I enjoyed it. His point about testing coverage and generating mutations to ensure the tests fail resonated. I get concerned sometimes that the AI is writing tests not to ensure the logic is correct, but to ensure the tests pass against the code it already wrote. Any other ideas on this? Is there a code review step or CI checkpoint that would decrease the likelihood of that?
ozlikethewizard
To be fair the overwhelming majority of tests I've seen in the wild written by humans have been the same. Not a lot of good material for AI to learn from.
k3vinw
I’m not so sure. I had a recent experience where Kiro was convinced there was a defect in the testing library when I asked it to refactor some existing project code.
However this conclusion made no sense as we had similar scenarios across our project that worked flawlessly. After intervening I determined the root cause was a combination of an async issue with the production code and some incorrect mocking that was covering up the async issue.
It never occurred to the AI agent to do some simple cross examination before essentially throwing in the towel?
Fire-Dragon-DoL
I think uncle bob meant you are not going to type the code anymore, not that you stop coding.
I would argue your example is exactly the reason why you need to supervise AI
k3vinw
Fair point. I’m still learning how best to take advantage of Ai. And to be honest, a statically typed language would have caught the issue with the wrong return type before the AI tool.
monkpit
It’s hard to give up, but likely necessary. That doesn’t mean quality has to suffer, we can still gate with deterministic quality tooling where it matters. But yeah, at some scale it stops mattering how human readable the code is, as long as AI can effectively and efficiently (token-wise) make edits or add features.
nine_k
The point is not human readability, but good structure. Spaghetti code is as bad for an LLM as for a human, because structural complexity and the amount of coupling are fundamental limits, not human-specific.
renticulous
Amazing tweet.
https://x.com/stevesi/status/2050325415793951124
Here's how history rhymes with this logic. The development of compilers v writing assembly language was not without a very similar "controversy" — that is, are the new tools more efficient or less efficient.
The first compilers were measured relative to hand-tuned assembly language efficiency. The existing world of compute was very much "compute bound" and inefficient code was being chased out of every system.
The introduction of the first compilers generally delivered code "within 10-30%" as efficient as standard professional assembly. This "benchmark" was enough for almost a generation of Fortran programmers to dismiss the capabilities of compilers.
Also worth noting, early compilers (all through the 1980s) routinely had bugs that generated incorrect code. Debugging a compiler is a nightmare (personal experience). This only provided more "ammo."
With the arrival of COBOL the debate started to shift. COBOL generated decidedly "bloated" code so there was no way to win the efficiency argument. But what people started to realize was that a "modern" programming language made it possible to deliver vastly more software and for many more people to work on the same code (ASM notorious for being challenging for multiple engineers on the same portion of code). So the metric slowly started to move from "as good as hand tuned assembler" to "able to write bigger, more sophisticated code in less time with more people). Computers gained timesharing, more memory, and faster CPUs which made the efficiency argument far less compelling (only to repeat with the first 8K or 64K PCs).
This entire transition is capped off with a description in Fred Brooks "Mythical Man Month" book, one of the seminal books in the field of programming and standard issue book sitting in my office waiting for me on my first day at Microsoft. (See full book free here https://web.eecs.umich.edu/~weimerw/2018-481/readings/mythic...)
It is very early. I was not a programmer when the above happened though I did join the professional ranks while many still held these beliefs. For example, I interned writing COBOL on mainframes while PCs were using C and Pascal which were buggy and viewed as inefficient on processor/space-constrained PCs.
The debate would continue with C++, garbage collection, interpreted v compiled (Visual Basic) and more. As a fairly consistent observation over decades, every new tool is viewed through a lens (at first) by experienced programmers over what is worse while new programmers use the tool and operate in a new context (eg "more software" or "bigger projects"). The excerpt below shows this debate as captured in 1972.
lelanthran
> Also worth noting, early compilers (all through the 1980s) routinely had bugs that generated incorrect code.
Incorrect. They had bugs that generated incorrect code. They didn't routinely have bugs that generated incorrect code :-/
And the bugs they had were reproducible.
renticulous
Didn't someone say LLMs memorize Harry Potter books? You can't have it both ways.
lelanthran
> Didn't someone say LLMs memorize Harry Potter books? You can't have it both ways.
What both ways? You can't consistently get it to output Harry Potter verbatim. That's my point - not reproducible.
monkpit
That’s where the tooling comes in!
KevinMS
Shouldn't we first find out how much it actually costs before we reach these conclusions?
relativeadv
"Forty years later, in September of 2018, I started working on this version of Space War. It's an animated GUI driven system with a frame rate of 30fps. It is written entirely in Clojure and uses the Quil shim for the Processing GUI framework." - Robert Martin
https://blog.cleancoder.com/uncle-bob/2021/11/28/Spacewar.ht...
recursivedoubts
"it can chop up all your functions into tiny functions..."
And now you just played yourself, by creating a morass of tiny functions. Well tested (CRAP says so!) And impossible to understand how they compose together.
AI will happily return the next token and ruin your codebase, if you ask it.
cmiles74
Creating functions that are only used once, in one place, and are pretty small is on of those things I give a harder look at during PR review.
janpeuker
Yes I get the irony but also let's not forget that it's over for the Code that Uncle Bob likes. Which is bad, verbose, dogmatic, unreadable, elitist code [1] with "discipline" [2] and a dash of sexism. And that has luckily been over for a _long_ time before LLMs.
2) https://blog.cleancoder.com/uncle-bob/2017/10/04/CodeIsNotTh...
oytis
That gotta be a joke right? It's like running agents to write agent ochestrators to write orchestrators for orchestrators just for clean code
andrewl
That was a bizarre performance.
k3vinw
Gives me a whole new perspective to the phrase clean code.
LaGrange
I'm an AI skeptic, but I do think that _he_ will be out-coded by AI, no problem.
daviding
English is the new programming language.
benatkin
I'm not sure I agree, but I can see it used as an open-ended interview question. "Is English the new programming language?" It would be a good test if someone gravitates towards pedantry (AIs can speak another common language just as well!) or if they actually get into the difference between prompting and programming, or whether it's at its core an LLM or just an AI based on transformer architecture. Extra points for having it be part of an async interview and interviewees using an LLM to write the answer, and interviewers using LLMs to grade them.
RobRivera
That's just, like, his opinion man
Bridged7756
He's an idol, didn't you know? Much like his software architecture takes, they'll be taken as gospel.
runarberg
His opinions were never really good to begin with, he was just excellent at marketing them as good opinions.
It comes as no surprise to me that the guy who has bad opinions about software architecture, has worse opinions about vibe coding.
livinglist
Personally I have never been a fan of clean code architecture…to each their own I guess
tgma
For all LLM flaws, if it kills the whole Agile/SCRUM/whatever grift, it will have been worth it. The damage these guys have done to software industry at large is unfathomable.
whstl
Hot take, but the bureaucracy of Scrum, the Figmafication of design and the disdain of PMs for iterative deliveries generates more work and waste than AIs are able to save.
duped
I fully believe AI can write better code faster than Robert C. Martin.
perrygeo
I tend to agree with his point.
But I found myself laughing at the style; just ranting about software like a cartoon villain in his bathrobe. No fucks given.
mrcartmeneses
Uncle Bob full of shit? Colour me purple!
julionc
"It is unavoidable. It is your destiny. You, like your father, are now mine."
bdangubic
spent a 30-year lustrous SWE career avoiding reading and listening anything this dude says, probably among the smartest things I’ve ever done
HumblyTossed
He helped enshitify the industry - empowering midlings to cry about "clean code" instead of actually learning to produce a great product. No thanks, Bob.
GiorgioG
Clean Architecture and Uncle Bob can take a hike.
Applejinx
This. Uncle Bob was already over, and now he seems to be hitting the skids REAL bad. Just listening to him is tough: this guy's bad news, I didn't realize he was this bad off.
abbadadda
I thought this was about Uncle Bob being “canceled.”
Kwpolska
Which is long overdue.
an0malous
What did he do?
abbadadda
An AI search summary tells me “racist and misogynistic” remarks.
Cheese48923846
He became Lord Voldemort. No one knows exactly what he did, but you don't dare even whisper his name.
2ndorderthought
Wealthy white dude edging towards senility taking a liking to bathrobe social media shorts. Take a guess. It's going to involve a political party and a lot of weird public takes unrelated to software.
amarant
White men are not allowed to grow old? How come?
Doesn't really seem fair, I'm gonna be a old white man some day, ain't really that much I can do about it...(Well, I suppose sex changes are a thing now, but really?)
2ndorderthought
Of course they are. I'm only stating a trend so people can infer.
wizzwizz4
Are you going to be wealthy, with your head buried in the firehose of an algorithmic feed? Those are things you can do something about.
Alternatively, you could take a crack at deconstructing whiteness. Depending how young you currently are, you might be able to make a dent by the time you're an old man. That's trickier though, because it involves serious social reform. Or if sociology isn't your deal, maybe you could become a biologist, and cure old age?
b65e8bee43c2ed0
shalom
runarberg
Even just purely on a professional level, he’s clean code architecture was very bad advice, which was marketed and hyped up to something it never deserved. The software industry should have cancelled Uncle Bob like archeologists cancelled Graham Hancock purely for his professional opinions (though I am not against cancelling him for his political opinions either; we can do both).
The craziest thing about AI is you can just try it yourself and check if the claims are true.
I use Claude code and codex daily. They have become an integral part of my workflow.
There is no task that takes me a day that they can complete in five minutes.
Even with the lightning fast progress being made, it looks like LLMs are a decade or more away from being that good.
If AI can do your job for you, you should be the first to know. Just try it and see!