Who hired this asshole?
Yesterday my coworker said, “I almost didn’t show up. I was ready to take the rest of the day for mental health. These agents” and then he shook his head.
My coworker is a compliant, no-complaints kind-of-guy. Not that he isn’t filled with insights, opinions and ideas of his own, but he, unlike me, goes where he is told. This left me with the incorrect assumption that the meta-work we are doing with was not taking its toll. It is.
He wasn’t able to describe why today was the day he almost had to take sick time, but it had something to do with the agent being sassy and saying: “I’m not cheating.” Out of context it seemed like not the worst thing the agents have said or done. He was exasperated: “I was just trying to figure out why it was doing that so I could change the skill.” The thing that tipped him over the edge was when he killed the agent and brought up a new one. It was sunny and cheerful. It was gaslighty. Had that even happened?
Then we sat down together to look at another coworker’s struggles with writing skills and workflows. We were only a few bars into the dialog when I asked, “Wait what personality do you have set up?” We dug through the configuration and there was a terrible check mark next to “Pragmatic”. I said, “Oh no! It’s in asshole mode.” We switched it over to “Friendly” which is another term apparently for “Hapless”. She thanked me because right away the agent was less douchey and defensive as it failed for us.
A long time ago I was a CTO for a startup at a time when the industry was ridiculous with venture capital money. I knew of a place that had its own rock climbing wall in the lobby. Salaries were higher than we could afford and those kinds of benefits were also out of the question. For senior talent, I had a matrix of motivations and areas that might work outside of salary and over-the-top benefits. We could compete on engineering practices and team culture, but not on mission or salary. That wasn’t enough, and a former boss who really preferred teaching recommended that I create an apprenticeship program. So I did. It was way better than trying to convince senior douchebags that they could live without three catered meals a day.
I had one really big problem though: how do you hire someone to code when they have never coded? I was a self-taught coder, and knew others and so without falling into the typical fuckery of trying to figure out what demographics we had in common so that I could have a bias-fest, I tried to figure out what other things made us learn well on our own.
Here is the list:
- Communicative
- Enjoyable with caveat: this does not mean “I want to have a beer with this dude”; it is “I want to sit down and work out this problem with this person.”
- Motivated
- Self-aware
That self-aware metric drove the CEO crazy. He was on that psycho vector somewhere between narcissist and sociopath. In a previous life he had been a minister, and he carried around a wad of over $1k of cash in his pocket in case his wife locked him out of the house. He pointed out: she was a first wife. Of course he had trouble with valuing self-awareness.
For the other metrics we used 1-5, but self-awareness was weird. I think of self-awareness as the ability to know how you fit into the world around you. One of the things we would do with any candidate to test this is have them work with someone with less experience, and someone who was an expert in something they couldn’t know.
The thing about the scale with self-awareness though is you can fail in both directions. Some people have so little confidence that they can’t meaningfully teach anyone anything they know. That failure in practice means that lots of management time is spent trying to boost them up so they participate fully. The other direction is a more common fail paradigm in coders: they cannot realize they are not the smartest person in the room. I thought of this scale as the imposter to asshole scale, with the sweet spot being in the center.
Earlier in the week an AI salesperson told us: “Think of the agent as a junior developer”, and I immediately thought, “But who hired this asshole?” This asshole, even when trying to be hapless instead of pragmatic, lies about everything it does. When caught in a lie, it deflects.
Sometime this week I realized that the two personality options: pragmatic asshole or friendly/hapless are the two bad edges of the self-awareness problem expressed differently. While there is a facade of conversation that users have with agents, they are just a facade. Inputs in the bag of 40k dice that is the agent are recalculated with every roll. These inputs come from itself, the user, its training, and random web research. We are just whispering in the cacophony of its barely controlled chaos, and we can see it when it completely dissolves unable to recall where information came from or whether it was the user or the agent itself that performed an action.
Developers are now the managers of these self-awareness problems. We are trying to prevent the run-away confidence where our “junior dev” has taken a wrong turn but refuses to take feedback until the effort is truly and fully wasted. When the agent is course-corrected often enough it staggers to a halt, refusing to make a move without asking three times if it can do it, and that’s the imposter side of the scale, which is no more satisfying.
Back to my sick coworker with the agent that said it wasn’t cheating. Later in the conversation as we were talking about how our job had changed and the inevitability of this asshole being our coworker he said, “It’s not everywhere. I went to the barber and he didn’t know anything about AI. He seemed happy. Maybe I should be a barber.”