angry tech
The Trouble With Claude
We're kinda screwed...maybe.
Where To Begin?
I was in the corporate world when the screams came from execs on high: WHAT IS YOUR PRODUCT DOING WITH GEN-AI?!?!? This was usually about 10 minutes after they asked ChatGPT to sort a list of states with personal income taxes while shopping for another home. The answer from a lot of product people was “We are analyzing it for use in X, Y, and Z.” The dumbasses said, “We’re going to add helpful chat bots and real-time help to our application with it!”
Please. Get out of here with that.
Me? I told the truth: No Current Plans. Strategies don’t change overnight because of a chat bot. That’s just hard reality. No one is going to make room for that by tossing away something else that a customer actually needs. Didn’t matter. I left that world shortly thereafter.
I did do my due dilligence. I’m not stupid. I poked at them. I tried a pile of them. I asked them to do things. I was utterly underwhelmed. Yes, it was able to speak to me in a very human-like way. But I had to fact check every word on the screen because, well, it doesn’t know anything.
This Wasn’t How It Was Supposed To Go
In the dawning days of 2026, however, I went back to them. I was just screwing around with some things and I thought I’d see if the progress was as wild as I’d read. I decided to have a chat with Claude and see what it could do. I asked it a question about an app I wanted to write. It turned around and asked me some questions. I was amused, so I went along with it. After a couple of minutes, it produced a pile of markdown docs that were…impressive?
I don’t know what I expected, but I did not expect this thing to go out and come back with opinions on marketshare, current opportunities, and comments from users on different app stores about current offerings. I really didn’t expect a full-blown project plan with timelines and milestones and feature definitions. I didn’t expect those things because I didn’t ask for them. I was vague. And Claude came back with anything and everything that I might want.
I stared at the screen for a minute. Then I went through everything it packaged for me and I found very few things that were off the mark. Most of it was really, really good. I would not have expected that quality from a junior product manager with 2 weeks lead time. This was disturbing.
I looked at its roadmap. I copied what it had for minimum viable product and tossed it into Xcode. “Build this.”
Then I got up to make coffee.
Coffee Is Important
I really prefer my coffee from either a percolator or french press. I have a really great Pyrex stove-top percolator my wife got me a few years ago. It’s old and gorgeous and works so well. But I’ve also got an electric kettle and I know that the french press stuff goes faster.
After years and years of experiments, I’ve found that a grind on the 13 setting on my grinder and 7 minutes of steeping produces exactly what I want. And it does it in about 11 minutes from nothing to coffee (thanks to the electric kettle!).
What in the fuck does this have to do with LLMs and Claude and experiments? Well, I told Claude what to do and got up to go to the kitchen. I kicked off my Coffee Process and took my freshly poured mug back to my desk and Claude was waiting for me.
What Did It Do?
I hit Build expecting it to throw up all kinds of flags. Nope. No errors. No warnings. Nothing. Xcode had a clean build and it tossed it onto the simulator. The app was…better than just functional. It had a UI that followed Apple’s best practices. I clicked around the basic functionality and couldn’t force an error. It all worked.
Now, look, this wasn’t the most complex piece of code ever and it was really, really simple stuff. But it did that really well. Faster than I could have typed it myself. And I think that’s important to note.
A lot of coding is grunt work. Think about writing code for synchronizing data to a WebDAV share. Why think about that? Because I was thinking about it at the time. Then imagine being able to skip that and do something else because you tell the robot what to do and it does it. 12 lines of product requirements turns into about 900 lines of code that work out of the box. Does it need optimization? Yes! Are there error conditions that weren’t covered? Sure! But the point is, the sync works out of the box and the dull stuff is done and ready for polishing.
I picked through all of the code.
All. Of. The. Code.
It was like doing code reviews back in the day. I made some changes. I kicked some stuff out and refactored other things. In my estimation, it saved me probably 3-4 hours on that task.
Analysis? Goldfish Brain
OK. I did beat it up a little bit. I found a bug in the sync code and I told Claude to fix it. It came back with a fix that created another issue. I told it about that issue and it changed things again. And that created another issue. So I told it about that and it brought the code back around to the initial state. No kidding. Same code and everything. I brought that to its attention as well with a bit of snark (that it detected). The robot told me that I was right to be unhappy and that it would think about it more.
2 minutes later…
The robot produced a solution that was workable though not as succinct as the solution I would ultimately compose myself. Am I mad about that? Not particularly. Not even really disappointed. My expecatations were - and remain - low.
The real issue is that Claude loses context. Sessions run out of tokens. The focus drifts. It can’t keep its eye on what did and didn’t work for very long. So the best use, in my opinion, is to focus on smaller chunks. Quick tasks. Chores. Maybe a chore provides the best analogy. Something I don’t want to do but probably isn’t all that tough and would just get done if I stopped whining but it still eats up time in my day so someone else doing it would be great.
Yeah. That.
What Really Worked
Giving Claude bite sized tasks worked best. One clearly and carefully defined function at a time. It’s like those fourth level programming languages we were promised way back when. I say I want a function that does X and I get that.
Asking it for feedback on features is actually pretty great. It comes up with things that I might not have thought about. I won’t do all of them, but it’s good to have then on the table so I can reject them consciously instead of simply not thinking of them to begin with.
Claude is also really, really, really good at finding the cause of an error that Xcode throws. There are just those errors or warnings you get from time to time and you end up on a search engine or - ugh - Stack Overflow or some other nonsense trying to resolve them. Claude will jump in with “It’s this thing in this file. If you change it to XYZ that will resolve the issue. Want me to do that?” That’s like F1 in most IDEs but with magical rocket boots and space lazers. It’s useful.
What Failed
Complexity isn’t there yet. At least on my subscription level. It should catch its own errors and feed them back. I can imagine in an enterprise environment it does that and probably shortens the debug cycle on its work, but I didn’t see that. I just saw it walking in circles. That’s not great.
While it has a great sense of usability standards, it can’t do more than basic organization of a UI. That would be a great thing for usability. Imagine templating that stuff and letting the robot build the UI in a way that everyone can use. Well we’re not there yet.
The root cause of a lot of this is the amount of memory Claude has. I’m sure they’re working on that, but as of today, it’s rough. That feels like the killer limitation. And if I’m not using it right, that’s not apparent.
So What?
This thing is a tool that cannot be ignored. I had it port a piece of software that runs on the command line from Linux to MacOS and it did it in 3 minutes. Sure, it was just writing a bunch of CoreAudio code, but porting it was fast and I didn’t have to do anything. It’s stuff like that. Think of the potential for less technically inclined users. All of this Free Software but it doesn’t do That One Thing. Ask the LLM and it suddenly has a new feature. There is power there. Power that I don’t think anyone is seeing or addressing.
Look, a lot of communities are underserved. A lot of people never learn to code because they don’t have the luxury of time with a computer. If a community center needs a piece of web software to keep track of a calendar or track resources like rooms or tools that are available for people to borrow I’m sure they could cobble something together. But should a person at a community center have to take on Drupal or other beeswax to do that? What if they could just ask the robot to do it and, oh yeah, package it so that it runs out of a single directory and only use this tech that we have available on our severly budget limited hardware or hosting package.
There’s possibilty here. I’m trying to look at the bright side and for just a moment indulge myself in the thought that someone might use this thing for something great. Sure, LLMs are also making a whole new genus of 5kr1p7 k1dd33z but that’s how tools work, right?
As someone who was a product manager, I do wish I’d had this years ago. Prototyping would have moved a lot faster. The lesson in there is that it is a fool who ignores the “Vibe Coders”. The lesson that management will pick up is that a really good technical designer could probably Claude their way to a product feature. Now, could they debug it at 2 AM in the middle of an AWS outage? I’m gonna guess not. But that too could come in time.
I want to ignore it. I’d love for it to go away. I don’t want LLM generated art or music. That’s off the table. I don’t want it to write poems or novels. Even as a composer of experimental computer music myself, I don’t want that.
What Now?
I’m going to watch this thing. I’m going to ask it to do some tasks for me. I’m going to stay on top of it because ignoring it isn’t an option. When your enemy picks up a new weapon it behooves you to study it carefully. Maybe there’s even a way to use the weapon to protect you from it. That’s another post for another time, but it’s definitely chewing at the back of my mind.
If you’re hoping that they go away, remember that Hope Is Not A Strategy. Pay attention.
And yes, this is a major reason that I’m doing everything else this blog reports. Stepping off of the smartphone platform before it is nothing more than “AI Slop” and even more nefarious privacy invasions that are suggested by an LLM that is trying to be helpful.