IT is Not Interesting
One of the weird thing that I came across on my job, is the fact that most of IT undergraduate that I have doesn’t really knew or care about IT itself.
This goes to such extent that the new undergraduate, never even do a very basic thing like doing ssh to any terminal. Some even struggle with basic coding task and can’t even formulate any strategy to properly write the requirement.
I have seen someone that need to be tell exactly line by line what their code logic should look like, just for a very simple ‘if this file text contains A it must do B’. He can’t even formulate the order of the if to be checked!
Luckily for them, my IT team doesn’t necessarily only have IT specific work. While about 2/3 of my team is still doing the usual software development and legacy app maintenance, 1/3 of my team job is learning how to use a very specific and extremely niche vendor tool. Their main task is understanding the business requirement of their user and then translate it to some specific configuration on the vendor tool or some SQL query. This group, never ever touch any other language or tool, and their only knowledge on deploying to production is just a simple bash script that trigger the SQL contained within the vendor tool.
Don’t get me wrong, their role is still essential because the fact that we had this extremely niche vendor tool as the core of our system and someone had to write the query and maintain the config.
But there exists among us, someone that just checked out on learning.
I’m lucky to find this job that I like and willing to spend time to better my craft, so I hate it when I see someone just barely ‘checked-in’ to this. I have it in my gut, that they will never learn, never improve, but still expecting to end up as a senior IT by year 7.
1984
Before AI, I knew that to improve someone I need to give them task that befitting to their skill level. All of the bump and difficulty they encounter will inevitably increase their ability, no matter if they like it or not. They may only copy and paste some code from Stack Overflow, but the experience of finding what wrong? what have to be done? still stick with them when they do the googling (Back when keyword matter more than the context of the question).
I knew, because that is how I learn too.
- I have a task
- poke around some basic logic/configuration
- finding some issue
- learning about the quirk of the logic/configuration
- improving it
- deliver it
It very often that the issue I found has a rather non-sense solution or no solution at all offered by google. This will require me banging my head, locked in on the issue for some day.
It takes time, but the experience stick hard.
I still remember when I receive an accelerator sensor module and had to make it talk with microcontroller. I poke around on google for a week before it strike me - This thing has a thick datasheet, lets read it as a whole. Then I realize that the datasheet not only contain pinout but also how-to, AND an exact example of what I need. This happen about 10 years ago and because of it I really appreciate a good documentation. I try to read documentation before goes on a wild google ride to random Stack Overflow question.
Then AI arrived.
Suddenly everyone able to skip the whole pain I had for many year. I am happy because I can learn faster and I can iterate on my development faster. Suddenly my previous learning flow become:
- I have a task
- ask AI for basic logic/configuration
- reviewing the changes offered
- finding some issue
- learning about the quirk of the logic/configuration
- improving it
- deliver it
AI is the ultimate google, it enable me to quickly find out information I need without needing to go to second page of google on desperate attempt to find anything on the topic.
The greatest thing about this is the fact that now I can ask AI to explain instead of opening a random Stack Overflow question that may or may not answer/berated my question.
I confessed that used to put a random setting on production that I’m not truly understand because I just tired of it. But now I can interrogate AI for what it do!
The though about vibecoding on work never really enter my mind. The though of not understanding what my own code do always frustrated me. At most, I use AI as a code writer for something very specific and easy that I can easily review. However I never use it to write a complex business requirement from scratch. Writing the code by hand allow me to think and build the mental model of the code base, finding the quirk in the logic.
Then I saw how other do their code.
Seeing them do their code is like a real vibecoding without the actual IDE.
- Have a task
- ask AI for the whole code
- copy and review the changes offered
- test it
- deliver it
I was blindsided by this when a new undergraduate enter my team. I though he was a good coder and able to finish any task given in reasonable amount of time. I spend a whole week not reviewing the code because I was busy at the time and they do demo that the task is actually finished ( I was giving them some tutorial task to train them ). But when I sit down and review the code with him, it hit me: this guy doesn’t know anything about things he wrote.
He write so many overkill and spooky feature that make me question my knowledge. But the saddest part of this is when I ask him:
"Why you do it this way?"
I don't know
I don't remember the detail, but he need to create a single API public API on Spring Boot stack.
the AI solution is somehow to create a low level call to C lib.
I just kind of knew them
Everyone has a different need in their life. Work is just a mean to the end, something we do in order to achieve that need. IT at the end is the same, it just a mean to the end.
There are some point in my life that I realize, the only thing I can do is just keep improving myself. There is no way to force people to improve themselves, the best you can do is just giving them hint and chance, but at the end if they decide not to pursue this improvement you offer, it might just end up as another road block on their life. I am just another rubble in their path to achieve their need or maybe their true dream to be a Singer .
Even before the advent of AI, people that doesn’t really want to invest more time to coding already exists. AI just make their life much more easier. I don’t have issue with that.
I try to see them as it is:
A colleague who can help me do my job.
A colleague that deserve my input and suggestion.
A colleague who can assist me.
They are not a brother that have sign a pact to every improve with me. They might not exists at all outside my job.
So when they decide to write code fully with AI, deciding that understanding the code is not worth it, I let them be.
How can I let them not understand anything?
Isn’t that mean that the responsibility will fall to the reviewer?
Isn’t business will suffer because of the issue?
I do this because I knew even if they are wrong, the damage is limited. There are 2 thing that allow me to do this:
First, luckily the current structure of my team is if there are issue on production, the developer itself must be responsible for the issue. So if they wrote low quality code, they themselves will suffer later.
Second, I still retain the mental model of all architecture and logic well enough. I frequently contribute to codebase and I knew exactly what they are doing next. So when they start to touch some rather sensitive logic, I can be ready.
Bonus: the less they understand everything, the more secure my job is. I confidently can still do all they do with help of AI. I need them because I can't (and don't want to) be available 24/7 to handle any prod issue that may arise.
Admittedly this won’t scale, I still can handle this now but if I had to review 10 different code all on different architecture? no, definitely no.
I now thinking on how to cover all the hole the vibecoder left, doing vibecoding doesn’t mean suddenly they will improve the code quality, if anything they are degrading it. Instead of discouraging vibecoding (which actually is endorsed by the very higher ups), I want to let them doing vibecoding with handrail. Meaning if they are degrading the code, at least they must give us something back that all developer rarely have and often forgotten: proper living documentation and living test.
Luckily AI is exceptionally good on both, but it still require human input to correct especially on more quirky detail of the business. Luckily, unlike the code which written in alien language of Java or TypeScript, the documentation is written in language of English. Expecting them to only write an accurate documentation and accurate test is a huge step back from writing documentation AND test AND the code. So I expect them do adapt with new reality, and I accept no quarter if this is path they take.
Epilogue
I used to wonder, how people on my team will be able to move on from their current job if they never improve beyond their current knowledge.
But I then realize, they don’t have to improve. The job don’t need them to improve.
I have seen another team of 50 person. They don’t understand anything even though they had the source code since like 3 years ago. Every single things required by business team, they will pass it on the vendor.
Their role? a liaison between business team, internal infra team, and vendor.
They already do this far far before AI appear. That team keep growing and they don’t care if they has more and more code they don’t understand. That is why they pay the vendor after all.
We have people who spend their whole life on company become that person after all. We call them middle management. Person who weirdly sit on the middle of bureaucracy and spend their whole time chasing other team.
The drive to AI has let other junior to become that exact person, albeit they are just talking with AI. Passing all review their senior give directly to the LLM without care.
One of them once told me: “You are learning by hardship. We are learning by repetition.”
I still waiting whether he truly learn by repeatedly listening to my review. So far, I don’t see any improvement on him.
Maybe, just maybe, I can feel much better if they just admit it.
"I am not interested"