AI and EBikes

I work at an office 10 miles away from my house. I don't like walking to the bus station, so instead I take the bicycle. I have a nice little generic bike with a Tongsheng 250w mid-drive motor and a large battery strapped to the top of the rear rack. I converted this bike to an ebike a few years ago, and it does a decent job. I love cycling, and every day I got to the office I get to do what I love.

Unfortunately that's not really the case. I get to mimic the act of cycling, and I get to pretend that I'm exercising and getting stronger, but I'm not benefitting from cycling. 2 years ago I noticed this, and swapped out my ebike for a normal folding bicycle. Since then I'm doing better than ever. I've refound my love for cycling.

This got me thinking. What sort of person sticks to using an ebike?

I don't like ebikers

I'm a "proper" cyclist. I cycle on the road or the bike lane, and sometimes on shared pavements. If I have to deal with a hill and traffic is busy I get off and push it on the pavement, because you're not supposed to cycle on the pavement. I even stop at red lights. I used to be confused when someone complained about cyclists breaking the law and being a nuisance, but then I started meeting the ebikers. The kind of cyclist that buys a cheap electric fat bike from Amazon, adds a throttle (illegal in the UK) and zooms downhill on the pavement because roads are too scary. The kind that ignores red lights and nearly gets run over. I don't like having to deal with them either.

Don't get me wrong, I think the technology is interesting and there are a lot of people with disabilities who otherwise wouldn't be able to ride a bicycle. The problem is that when the bicycle does so much for you, you never learn the fundamentals of cycling. The electric motor tricks people into thinking they know what they're doing, so people just don't learn. They pass for "normal" cyclists if you don't know much about cycling, but for people who know what they're doing the lack of experience is obvious.

What does this have to do with AI?

I'm also a software developer, as a job and a hobby. I love finding new ways to tell computers to do what I want. I care about the quality of my work, and I carefully document everything. I've shipped work that I'm proud of. Unfortunately my coworkers are starting to use AI and I'm getting ebike flashbacks.

It's incredible how far AI has come in terms of software development. A decade ago the idea of vibecoding would have been laughed at, but nowadays you can just say "vibe me a website" and it actually makes a website. Whether the website is good or not is a different discussion, but it CAN do it. It can also write code. and the fancier models are good enough to make scripts and apps that make life easier. Just like how ebikes can let a good cyclist go further, AI can let a good developer make more software. This is why the average ebiker is so good at cycling. Yeah, this isn't what happens. Ebikes don't make the good cyclists better as much as they make bad cyclists passable. Similarly, AI isn't being used by the best devs to make their work better, it's being used by struggling devs to pretend they know what they're doing. And I have to work with them.

How bad is it, really?

A coding project isn't the code. It's everything surrounding the code. It's "Yeah that supposed to be a temporary fix and they ended up building on it so now it's load-bearing", or "We depend on a weird library that requires this bit of data", or "We don't use Jenkins anymore but some microservices still have Jenkinsfiles, just delete them.". This is the project's culture, and it's incredibly important. You only get culture when you have devs work on a project for a long time, and it's hard to capture this. In a previous project I worked on some of the long-term developers were leaving the project, and I spent days with them trying to capture as much of their knowledge as possible. If you let this culture slip, you lose context for what you're doing.

AI is the death of culture. How are you supposed to learn what the code is doing when you never interact with it? The AI picks up the nuances of the code, and then dumps all the nuance when the context window is refreshed. Nobody remembers why something is the way it is and you end up going in circles. In the same way an ebiker goes through the motions of cycling without actually learning to cycle, the AI coder goes through the motions of coding without actually learning what the code is.

The tipping point for me was when I was leaving this previous project, and I wanted to leave documentation for the newer devs. All I wanted to know was whether a new Rancher cluster would replace a previous one or run alongside it. I open the very large Confluence wiki (not because of AI, this project is just massive) and after a lot of digging I find the only piece of documentation on the new cluster. It's AI generated. It talks about how revolutionary the new cluster is. It talks about the psycological benefits of the new cluster (yes really). It's a perfectly formatted and emojified document that never actually says what the cluster is, like a student trying to write an essay on something they haven't learned. Luckily the person who pushed for the new cluster still worked there so I could just send them a "Hey does cluster xx replace cluster yy?" and get a "Not currently but the long term plan is to replace it". Nice and simple. This is the culture that we lose when relying on AI.

Where I think AI fits, currently

I like the idea of using AI where the target of the AI is the person using it. "AI read this documentation and explain this thing to me" is the only way I could see myself use it (assuming the result is correct). Aside from that, AI should never write the code itself and AI should never write documentation. We need humans to do this to build up the culture that the project depends on. Every time a colleague pastes a ChatGPT response to my question I die a little inside. If you're the sort of person who does this, at least do something transformative with the result. "AI says this and with a little more research I think we should do X" is so much better than "That's an excellent question!" followed by slop.

Conclusion

Put the AI down and start writing code yourself. Use it in little bursts to help when needed, but do everything else yourself. Make a work diary and write down what you do everyday, to build yourself a library of code culture you can reference. As for me, I'll do with code what I do with cycling. No AI for me, thanks.