A Vibe Cowboy glares at you. Staring down the barrel of their prompt gun. They shoot. A stray PR hits you. The shooter can’t explain the code. The shooter doesn’t understand the code*.* Do you reject the PR on principle? Even if the code is correct?
The Cowboy Coders at work are at it again. Moving ‘blazingly fast’ with Cursor. Creating a new interface to an internal simulation system. The non-technical founders are gaping at the lightning pace. “They’re moving so quickly with that AI thing.”
I was asked by the Lone Ranger what our plans are to utilise Cursor and LLMs. The implication being “We’re moving this fast. Why aren’t your teams moving this fast? The founders want to know why your teams aren’t moving this fast.”
My instinctive response is “I want us to! We haven’t been given any budget for this tooling.”
True, we haven’t been given the budget. Some of the team are using it themselves anyway. Even then, they’re definitely not seeing the speed at which this team is ‘delivering’.
Even so, the response feels inadequate. It legitimises the supposition. That these Cowboys are doing the same type of work we’re doing. That they’re better than the “real engineers.”
My follow up explanation fails to land with someone who is barely technical. To give context, the Lone Ranger has told me on prior occasions “If you ask me something about this, I’m not going to be able to give you an answer. I’m just getting [AI Tool] to do what I need.”
I feel deeply frustrated by this interaction. My attempt to explain that we’re dealing with an existing system. The system is highly complicated due to how it’s grown over time. That with the structures we have, it makes it difficult for a tool like Cursor to have the same level of productivity that they’re seeing.
I attempt to relate this back to the feedback I gave on his Cursor-generated React UI. Having the system tangle together with global context is, in a sense, the same reason our entire application is in the state it’s in. That’s the reason he should try and make a constrained set of well defined inputs for his components. So changes over there don’t affect changes over here.
The Cowboys face is blank. This means nothing to him.
“Yeah so how hard would it be for you guys to try and structure the system better?”
Do I explain to him, that doing just that would probably take 12 months of dedicated work? Just on that. No feature development. No other maintenance or bug fixes. To untangle these problems that have grown over time.
I want to say “We’re not building a little interface that no one is even using yet. We have fucking customers.”
I want to say “You’re building in a self contained system. It’s input in, input out.”
“What we actually operate has many interconnecting parts. Different customers integrating with it. Different front-end and back end systems all connected together.”
But I didn’t. Partly because… what’s the point?
The code they’re generating is being done entirely without understanding. They do not understand nor care. It’s truly the wild west. The fact that we’re being sent PRs is, frankly, a miracle.
On one PR, I asked a question: “Can you point me to where [value] gets set?”. Total copy paste job. Not just the code. The question was copy-pasted into Cursor. Cursor’s response was copy-pasted back to me. Completely shameless, no attempt to hide it. Almost passive aggressively so. To me, it read: “What the fuck don’t you understand you idiot? I don’t fucking care about where this value is set. It seems to work. Cursor says it works. I DO NOT CARE.”