> Purely AI written systems will scale to a point of complexity that no human can ever understand and the defect close rate will taper down and the token burn per defect rate scale up and eventually AI changes will cause on average more defects than they close and the whole system will be unstable.
Wow, it’s true, AI really is set to match human performance on large, complex software systems! ;)
Humans who have been writing systems like that for many years know how to maintain and modify them successfully. It’s just that our industry has a bias towards youth who don’t think they have anything to learn from those who came before them.
How do you explain to a junior this pile of messy code isn’t crap but is actually years of integrated knowledge ? That the most common principles discussed in computer science (OOP, SOLID, DRY etc.) are actually just little guides that aren’t to be taken to the extremes ?
Here's a 26-year old post on the exact topic of messiness you raise:
https://www.joelonsoftware.com/2000/04/06/things-you-should-...
A decade ago, I was sitting in on a meeting about a rewrite and, before I could say anything, someone in the first year of her career asked why anyone thought a rewrite would be any cleaner once all the edge cases were handled. Afterwards, I asked her where she learned this. She said "I don't know, it just seems kind of obvious." She went on to be a great engineer and is now a great manager.
I work on internal facing software and every rewrite I've seen in 20 years suffers from the same symptoms. The code/system is a mess because it has been exposed to reality for a decade. Reality is messy. That's why they pay us money, believe it or not.
Greenfield guy comes in, promises the world, and starts from some first principles white papered architecture. It's really lovely until they onboard the first user. Then they slowly commit all the "sins" (features that drive revenue) of the first system.
The firm is stuck supporting N systems indefinitely because the perfect new system takes so long to cover even 30% of the original system use cases, that management takes a flier on.. bear with me.. a second rewrite. Now they have 3 systems.
I've seen more 3rd systems than I've seen actual decommissioning of original systems into a single clean new system.
The answer is chipping away, modularizing, and replacing piecemeal Ship of Theseus style. But that does not drive big hires and big promotions.
The bolded quote "It’s harder to read code than to write it." is hilarious given todays context... it has only become more true :)
It's a dice roll to keep the junior around until he unlearns the wrong bits.
Expert knows when to break the rules
Experts take the time to learn why the fence was there in the first place.
Experts are people who have made all the mistakes there are to make in their chosen field.
Including all of the above.
Experts have beginner’s mind.
tell them they need to turn a profit as quickly as possible
Wait if they can do that they’re not juniors anymore :P
> Humans who have been writing systems like that for many years know how to maintain and modify them successfully.
Do they??
Yeah... in my experience people who code like that 'successfully' make modifications that fix an immediate problem while kicking another bug or two further down the road in a never-ending sunk-cost-fallacy of job security...
Yes.
There is a lot of absurdly complex software that runs with high reliability. We hear a lot about the ones that don’t.
I believe this type of person exists.
My team lead has worked on the same software for 30 years. He has the ability to hear me discuss a bug I noticed, and then pinpoint not only the likely culprit, but the exact function that's causing it.
I do the same thing in a project I’ve worked on for 25 years. I’ve had mediocre at best results with AI. It’s useful to discuss concepts with, but the code never handles the nuances of the edge cases.
Then they quit or die.
What is your argument? Should we stop training people on how to do something because we're mortals?
Yep this is like comparing master craftsmanship with a production line. You're gonna get good attention to detail and a masterpiece from one, and a limited thing that will break after few years from the other. But for majority of use cases the second one is enough. And pointing out the master craftsmanship is "better" is besides the point.
And with one you need to train a guy for 25 years and with the other you need plan mode for a few minutes and then it runs 24/7.
Our society needs more experts, not less.
Do we? We have many buildings built and very little master masons or whatever nowadays. The amount of craftsmen needed to build a 10 story building is very limited. That's what we should aim for software, much less experts needed for the same outcome so more people can benefit from software.
I want the people building the buildings I live, work and shop in to know what they’re doing so those buildings don’t fall down or let in the wind and rain or require too much maintenance.
And the equivalent for software. It’s usable, intuitive, responsive, stats up and running, and doesn’t leak my private data.
Ok but you do want the people building your home to be experts at building homes, yes?
No house I ever lived in was ever made by experts. The apartment building I grew up in was all built by minimum wage guys that may or not even speak the language of the building overseer and had zero specific training or certifications. Some architect somewhere did the plans for a standard building, which the developer purchased and just used.
Then the only "experts" (not even close, just a guy with a form and some technical training) are the building inspectors who come at the end to verify if some stuff is done up to code.
Other than the original architect who draw the plans that got used for many buildings and the electrical engineer that cleared the electrical, no experts were involved. This is basically how the whole city and most of the country was built.
There's no expert mason or painter or whatever involved. Just a dude that can hold a paint roller. That's the same as going from a craftsman programmer to some dude with claude. Individual quality goes down, but more importantly price goes down way more and so many more people get access to much better quality than having nothing.
there is a large incentive for computer programmers to build themselves up in importance. higher wages, better love lives, more status. but most software is pretty mundane and straight forward, or at least should be. fancy architectures rarely pay off and the best solutions are sometimes the most obvious. although i could be suffering from that phenomenon that people in maths have where they struggle to understand then once they grasp it they feel dumb like "ofc i should have known that!"
It’s the old developers who have been doing it the longest who pick the simple and obvious solution.
This is sadly so true.
I have really tried as an "old" person in the field to try and pass on the stuff I've learned, but "craft" and such really has absolutely no home in modern dev culture. The people who care about history, the craft, etc. are increasingly rare.
Executive leadership bias older not younger, no?
No.
Younger implies cheaper.
it's been 10y and i still haven't seen a human system that bad
maybe some that people said were that bad. but they just needed some elbow grease. remember, it takes guts to be amazing!
[dead]
The origin of 'dark DNA' begins to make more sense through this sort of lens, except the system somehow maintained a level of compensation to fix all its flaws.
We do as well, it's called bankruptcy. Not every company survives but in the end the ones that do are more resilient.