The more things change, the more they stay the same.
I’m not proponent of AI generating everything without any supervision as of now. But willing to change my mind when it gets better.
Most software engineering jobs are not cutting-edge tech, or research, or solving unsolved problems. Integrations, APIs, figma-to-react pipelines, devops and etc. is what people get hired for. All those can be done much faster in the same-or-better quality by an experienced person with the supplement of AI. It’s hard to imagine any company would go against the grain and slow things down on purpose.
As far as “boring systems are boring”, I can tell you from experience that I work on a pretty boring system, and AI is not all that meaningful in terms of its impact, and it’s not for a lack of trying.
Can it help me create a migration and add an endpoint and such? Sure. But those aren’t the hard problems. They never were.
It’s funny that you think the idea of slowing down is such a bad one, but it is another well-established truth. Slow is smooth, and smooth is fast. This notion of break/fixing your way to prosperity by way of 10,000 ill-conceived PRs is a fool’s game.
Generally we've modified our timelines heavily, systems are working as intended, company is still making money. There are some AI-authored commits that had mistakes that we didn't catch, but I'm sure this could've been an issue even if all were human-authored. I know first-hand multiple other companies who are doing exactly the same thing.
I agree with "slow is smooth, and smooth is fast" for mission critical systems. But super majority of systems are, indeed, not mission critical.
I have watched some projects absolutely explode in LOC added, number of PRs, etc. but I think the more interesting question is: how much of it is directly being done to add customer value, how much of it is churn, etc. you might get some interesting answers.
As so frequently seems to be the case for you and I, we kind of agree but then you drop something that just does not compute for me: "slow is smooth, and smooth is fast" is not specific to "mission critical" systems, it is generally applicable.
As I said in a previous comment, I work on a fairly boring system. Its "criticality" is debatable, but in general we make the same kinds of boring guarantees to our users that even mediocre SaaS products offer: a few 9s of uptime, zero-downtime deploys, etc. AI has made aspects of working on this system easier, but in terms of API surface, how users are using it, how to safely advance its state without breaking existing callers, data migrations across services, and so on, very little has changed.
I have no idea how we can get people motivated to learn these through trial-and-error when AI coding exists though. I remember the days of spending hours on stupid bugs that AI can resolve within a minute. But I recall learning heavily from those experiences. Oh well…
we've got product folks vibing out prototypes (not shippable but clickable) in our main front end in a few minutes to an hour. This would previously have involved 3 people and several weeks, or a ton of figma and documents to fill in the gaps. This saves weeks to months and lets them really experience the items.
Then they hand it off to someone who knows all that stuff who is also using AI and the impl also gets done faster.
The PMs are either moving infinitely faster, or at least 30x faster and not blocked constantly by others.
basically you're not comparing people who don't know much (tech) with those who do, you're comparing them before and after access to AI.
I setup k3s, and tons of what would be otherwise unnecessarily complicated stuff on my laptop for my side projects with additional home servers, smart house stuff. Otherwise k8s and things like that would have been daunting to learn and in theory and without constant professional exposure, etc...
Microservices in Go, Rust, which I didn't have any previous experience with, games in C and other languages. Didn't know anything about low level memory management before. Was just mainly TypeScript person. Just constantly building random fun stuff.
The question is, how quickly does a junior with no experience builds intuition without trial and error.
Often that started with the macro recorder. Then you worked out what that "recorded" code/sludge did, removed the crud you didn't need or want, improved the logic and so on. I bought books to understand it better. Now you can ask a (different) LLM "what is this? why is it used? How would I?" etc which is probably a faster learning curve than books, newsgroups and old school personal home pages with good info.
I would have been quite surprised when I first used a VBA macro in anger just how far I would go down the rabbit hole. C, asm, verilog, Linux were no part of what I originally signed up for!
Some people will specialise in the equivalent of recording macros and go no further. And this will be fine for code that gets it done but doesn't matter too much in the other dimensions (security, reliability, usefulness without the authors' support, etc.) Much like VBA utilities inside companies that were useful way back when. Other people will want what they produce to be better, even good, and they will learn about floating point [1] and all the rest, much as I did. Probably learn pretty fast too. [2]
[1] https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.h...
[2] Working out how to write an excel vba webserver and using it to collect and and collate summary data from various divisions into reports was seedy as hell, solved the actual business problem (given ridiculous but intractable constraints) and isn't something you can record. We all have stories from a misspent youth that we're simultaneously ashamed and yet somehow proud of.
No, but you do need to know the answer to respond to that 3AM page about prod being down.