Today, a software engineer's time is split between writing code and reviewing code. There is only so much code a software engineer can meaningfully review in a day, without going numb and starting to skip mistakes. Taking away the "writing code" part does not increase the amount of time they can spend on reviewing the code: it's hard-bound by their human nature. So if your software engineers were already operating at the optimal level of writing/reviewing split — then they were limited by their ability to review code, not to write it. So they will stay at this frontier even if you make AI write the code.
I have found plenty of other ways to improve my productivity as a software engineer without having LLMs write a single line of production code:
- Understanding code: I can dump thousands of lines of undocumented code into a large context model and get back architectural outlines, API usage examples or even full documentation. I can also ask questions directly of the codebase.
- Debugging. The newer reasoning models are extremely good at deciphering a test failure or stack trace and pinpointing the potential causes of the bug, sending me right to the relevant code.
- Suggesting where to make edits. I've started asking models for a high level implementation plan based on the codebase and dumping in an issue thread - they frequently spot parts of the code I forgot I would need to update.
- "What should I test?" - dump in a diff and get back a checklist of branches I need to add test coverage for
At this point, if you can't find ways to make yourself more productive as a programmer with LLMs I have to conclude that you just aren't trying very hard.
Who is going to pay laid off software engineers to spend time on inventing anything?
Fortunately, "AI" decreases productivity in software engineering, so this question is academic. But the Atlantic should mention these issues.