rbongers
Joined 10 years ago
Joined 10 years ago
Personally, I enjoy the process of solving problems. I do not enjoy wrangling unpredictable AI agents.
This is a result of AI still being bad at telling the prompter "no". Not only because it will blindly reproduce what you tell it to while writing code without pushing back on assumptions without asking, but because it will often blindly accept an implementation approach while reviewing.
I suspect this is a hard problem, because if AI stops listening at the wrong time it can be a massive inconvenience.
I have noticed that AI is slowly getting better at pushing back on different types of things each time the frontier models get better though. I've also noticed on reviews that it will tend to hallucinate or nitpick around the problem. I assume it sees something wrong there, starts generating output, and points out something different there instead because there is pressure to be both agreeable and helpful, which are not always compatible.
I think it is getting better, but it can't always see the forest for the trees.
1) Document what's there, not the diff. Documentation of how code was removed or changed to fix a bug or add a feature is not useful and difficult to maintain; documentation should explain how code works now.
2) Documentation should live close to the source as possible. Prefer line based comments and standardized function documentation. Top-level sweeping architectural essays are not maintainable for every change.
The last will depend on your codebase. It CAN be very useful to have a human-readable spec documented for the entire program and have it updated when anything changes. But the key is again, you're CHANGING it every time. If you add a whole new disconnected documentation file it should set off alarm bells; nothing in one system is truly disconnected.
It makes it hard to pick apart hallucinations from the miscommunications and disagreements. Picking apart every single point and treating it with the same tact you have to treat human output with, while still accounting for the fact that it could be a hallucination, takes an extremely skewed amount of effort compared to the effort of sending someone AI output. The worst part is, it's probably going to be pasted right back into the LLM chat box.
It's astonishingly bad form to send someone AI output, and this is only one of the reasons.
I really don't see the harm in using them this way that can't also be said about traditional search engines. Search engines already use algorithms, it's just swapping out the algorithm and interface. Search engines can bias our understanding of anything as much as any LLM, assuming you attempt to actually verify information you get from an LLM.
I'm of the opinion that if you think LLMs are bad without exception, you should either question how we use technology at all or question this idea that they are impossible to use responsibly. However I do acknowledge that people criticize LLMs while justifying their usage, and I could just be doing the same thing.
It would also be nice to have work readily available related to the field I've been building skills in for over a decade that I know isn't going to disappear suddenly. Prompt engineering is already dead. I suspect any skills you learn now to utilize AI is not going to last more than a few years.
I feel like I'm taking crazy pills a little when it comes to this subject. Maybe everyone else already has ridiculous money saved, or has other things lined up, or are just ready to move into a Monastery. But for those of us in the middle of our careers and with no AI-proof capabilities the future is at the very least uncertain.