And make inexperienced ones produce more crap. I tried it a little and it could really speed things up, but it is like outsourcing to junior developer, except it is much faster and cheaper. In general it is good at scrabing examples, produce templates code, fixing some bugs, but it makes quite a few mistakes.
Agreed. There are some things that I find pretty annoying about it that you have to tell it explicitly not to do. For example, pulling in really old versions of NPM or Python packages. It has a propensity to not know when it is correct or incorrect, or perhaps, it it is unable to share its level of uncertainty. Most of these things can be mitigated by updating and refining Claude's prompting.
I think there are some things those of us clutching our pearls at the thought of all of the AI slop ought to keep in mind:
- We are not all writing air traffic control systems or medical device firmware. There is an awful lot of "enterprise software" that is not much more than database CRUD and visualization. People are not going to die if that software is not using the most efficient data types, etc.
- Will somebody five years from now pick up your AI generated software and not know what to do with it? Possibly, but mostly only if you are not taking the time to generate unit and integration testing as well as documentation, and there is now basically no excuse now to skip doing either.
- Senior developers should be spending more of their time thinking about the architecture and use cases of their applications, and less time thinking about whether HashMap or FxHashMap is more efficient in a given scenario.
- If we are being honest, there is already a bunch of slop in our industry. Junior (or just bad) devs copying/pasting from StackOverflow... Shortcuts taken during unreasonable deadlines... Stuff we just aren't told or don't know... Software development has been in a race to the bottom for a while now.
Most of the furniture in my home is not hand-made by Amish carpenters, it is machine milled and partially assembled by cheap labor. It is not as good and will not last generations as hand-crafted furniture, and that is okay. For better and for worse, a lot of SMB executives look at software the same way (at least until it doesn't work), they want "good enough" software that works until the next merger or acquisition, so they can cash out and go on to the next thing. They are not intersted in paying for software built using hand-built assembler (SpinRite - we miss ya').
The good news is that there are things we can do, and if we get good at them, AI can do the mundane bits and software engineering will still be a thing. We get better at Specification and Test driven development. We review the hell out of the code AI generates and make sure our linting and bench-marking tools are up to snuff. We get really good at authoring prompts that keeps AI tools within the guardrails. And yes, we keep AI away from the really critical stuff, at least for now...