















As a software engineer working for a large-ish multinational tech company, it has been entirely impossible to ignore the all-consuming AI hype. My employer is not quite mandating AI use, but it is heavily encouraging it (and paying for it), and it is setting expectations of enhanced productivity across our R&D organisation. My colleagues are adopting agentic coding to an increasing extent; some have had so much of the Kool Aid that there seems to be no mental space left for anything that isn't AI-adjacent.
Personally, I have been both skeptical and impressed, at varying degrees. I really am grappling with AI use in software engineering (and outside it; though I won't venture into that in this blog entry). This article is more of an attempt to organise my own thoughts than anything else. It is meant to be an exploration of the various themes in my thinking on AI, rather than a clear and streamlined argument. I am going to freely mix political considerations with professional ones, as I think they are intertwined and shouldn't be artificially separated. Content warning: this blog might be a little rambling. Maybe I should've asked Claude to tighten it up?
AI is a highly political technology. Some argue that all technologies are political, and I do not necessarily disagree; but AI sits at the extreme end of that continuum.
As a technology, generative AI models are built on top of the indiscriminate mass-scale extraction of artifacts created by human beings, often made available free of charge, without paying for them and without concern about copyright. These same models are then used to "democratise" the areas of human creativity that they have extracted the fruits from. AI can create music for you; it can create images, even films; it can write prose and poetry; it can write code and build software. The list goes on.
When hypercapitalist companies such as Google, OpenAI, or Anthropic talk about "democratising" something, it is obvious that we are getting lied to. When they say "democratising art", what they mean is: paying us to generate art for you. That is: we are taking this human activity, extracting it into a highly sophisticated statistical model, and selling it back to humanity for financial gain. Bonus points if, in doing so, we can permanently disenfranchise swathes of people and their professions so that we can become monopolists.
True democratisation would be helping people with an interest in the various arts and professions to achieve a high level of skill irrespective of their background and economic status; this cynical use of the term is the opposite: it exploits creativity for financial gain and makes people dependent on technology, owned by these large companies, to create things.
A few years ago, I used to love discussing approaches to solving problems with software. My colleagues and I would discuss divergent architectural options and their drawbacks; think carefully about how to implement a certain pattern in code; talk about which approaches would be more maintainable and extensible in the long run, etc. Then we'd review each other's code, learn from it, share context, and ship a product we were mostly proud of and understood intimately. Obviously this wasn't some kind of fairytale land: we were subject to deadlines, we consciously shipped suboptimal code on the understanding that getting something out now was more important than getting something perfect (or even good) out later.
At my current day job, a lot of this atmosphere is gone. When I walk around the office, indiscreetly looking at my colleagues' screens, I see Claude Code and Cursor windows open, often multiple on a single screen. Discussions between engineers about architecture and code have all but dried up, and when I ask probing questions I often get answers that indicate that the engineer responsible for a piece of code has not actually read or understood it, or genuinely does not care about the way something works; as long as it does, by some measure, work. More and more of my colleagues are becoming conduits, quite happily so, between some management layer setting out objects and some piece of software implementing features that meet those objectives. They are becoming middlemen. For some, this is by choice; for others, this is due to the relentless and intense pressure that is being placed on them to be 10x faster, "upskill" themselves to be extremely adept at agentic coding. We are all engineering managers now, and you better act like one if you want to keep your job.
This dynamic has been sold to us as "moving up the value chain". Look, you may no longer be doing the thing you were highly skilled in before (i.e., crafting software), but now you are telling others (i.e., a swarm of agents, running in some hyperscaler's cloud infrastructure) what to build! That is a win, isn't it? We've eliminated the grunt work for you and now you can just orchestrate agent teams to build a million things, a million times faster. Lots of people I know and work with are embracing this new world enthusiastically. (As an aside, I think there seems to be a latent desire in many of us to have access to always-available servants that you can treat as badly or indifferently as you want, and which do whatever you instruct them to do.) The short-term incentives to adopt this way of working are very convincing. For me personally, I know that if I want to get a promotion to the next level on our IC ladder, I better evangelise AI usage and come up with "innovative" ways of replacing human labour in our own company with AI-based automations.
In embracing this new model, I have observed many people losing the skills that once made them competent programmers. This pattern (automation leading to loss of skills) is well-known, but what is somewhat different with generative AI is that the skill that it is purporting to make redundant is thinking itself. Even when you try to use it sparingly, using generative AI to help you think through approaches to a problem or possible implementations ends up creating a solution space for you, primes your thinking, and in doing so discourages your own creativity. And, given what I see at work and around me in the industry, most people are not trying to be even this judicious about their AI use. They want to go fast, make sure they don't get sacked, and embrace what the LLMs give them. Looks good to me, let's get this merged.
But what happens once we are all middlemen that take what management wants and instruct our groups of agents? Our profession will be totally hollowed out, many of our colleagues will have been made redundant, we're all scrambling for the few jobs left and we will have to accept worse terms of labour because what we bring to the table is a much-devalued version of what we used to do before. This is a tale as old as technology, and it is a capitalist's happy place: labour gets cheaper, more of the value is captured at the capital level (i.e., the frontier models), and human individuality gets eliminated from the production process. At the end of the day, a few companies end up owning the infrastructure that makes production possible and we will all be dependent on them to do the things that once we knew how to do ourselves. Now we can rent those skills back. As a software engineer in the tech industry, there's an irony here too; we've worked so hard to "disrupt" traditional industries (read: to put people out of their jobs and replace them with technology) and now it is our turn to be made redunant. I guess there's some kind of karma at play here? At least it is becoming clear that tech workers are just that - workers - and our privileged position was temporary until our labour too could be devalued.
Given the previous paragraphs, it is obvious that I do not think the politics of AI align with my personal ethics. It would have been very handy if the quality of AI outputs were so bad that the draw to use it was minimal. If everything it could do was slop, and if I weren't interested in creating slop, then the decision would be cheap: AI sucks, its politics sucks, I won't use it and I won't take anyone else using it seriously.
For a little while, at the start of this AI boom, I think this was the case. LLMs were interesting toys that output words that sounded plausible, generated code that at first glance roughly did what you asked it to but at second glance was almost always broken in many subtle ways at once.
In my opinion, this is no longer true, at least within my niche of software engineering. It seems that with recent models, the "frontier labs" have managed to release LLMs that are pretty good at approximating a fairly competent but mediocre software engineer when it comes to routine tasks that don't require an innovative step. At present, I do not think that these models are close to the outputs of better software engineers, but one day they might. And even if not, they don't have to output at that high level in order to be useful in a narrow, work-focused sense.
I could, for example, go for a coffee with my colleague while I ask Claude to update a set of dependencies in my repository, following a clear step-by-step guide. Bump one dependency at a time, run the build, run the tests, and when everything passes without any code changes, commit and continue to the next dependency. When something fails, locate the CHANGELOG or migration guide and either 1) apply the changes if they are trivial or 2) skip the dependency bump and write up in a few sentences what changes would be required to support the upgrade. Obviously this does not make me a 10x engineer, and it is a far cry from the breathless hype around what AI can do for you; but it is a real productivity gain. At this point, generative AI is very capable to complete these kinds of tasks as well as more sophisticated ones, as long as there are clear goals and clear evaluation criteria that it can measure its output against.
As a practicing software engineer, this is more than a little uncomfortable, given everything I have said in the politics of AI section above. My employer expects me to be more productive than before, and I would prefer to work on more interesting things than, say, dependency upgrades. Using an LLM to take that work off my plate would seem like a no-brainer, were it not for the fact that the technology itself is tainted and that by using it, I will be directly contributing to the continued growth of companies like Anthropic, helping put lots of people and companies out of business and, among other direct harms, position themselves as a key link in the kill chains of western militaries (to give but one dystopian example). It is perversely funny, in a sense, that Anthropic is seen as the "good" guy because it did not like autonomous targeting using its models, while they were at pains to make it clear to the Pentagon that they were perfectly happy to provide targeting suggestions and help kill more effectively as long as a human is involved). In a previous blog article, I have tried to explain why, despite this kind of knowledge, it is easy to just continue with business as usual in the tech industry. I am trying to keep myself accountable and not to fall into this trap, but it is hard. I am also myself a bit hypocritical in that I, too, have been using these technologies and evaluating them (see, e.g., a previous article I wrote on Github's Copilot).
Perhaps this is a slightly zealous position to take, especially for those who frame technologies as neutral. But even if, for the sake of argument, we would accept that technologies are indeed neutral, companies and the societal outcomes they pursue are not. And once those dynamics and goals are clear, it becomes really hard to ignore them, especially if (like me) you do not agree with this societal direction. Is it worth forgetting about those dynamics so that I can more quickly update my project's dependencies? I would argue it isn't; but I know that my employer, and most other employers, will argue that it is. This places us in a bit of a bind if we want to remain employed: do we privilege our own ethics or our employer's expectations? Acting solely according to your personal requires a lot of privilege, a lot of courage, and a means to ensure that those depending on you can be provided for, which means that there are no easy answers. Personally, I will try to limit my use of generative AI, but I do not think it is realistic to expect everyone, even those considering themselves progressive or left-of-center, to fully avoid any and all use of a technology that has become this pervasive so quickly. That really upsets me.
(There is perhaps an even stronger position one can take here, which is: if you care about a just society and human flourishing, you probably shouldn't be working in the tech industry at all. Can you just let me bracket that painful idea for a little while longer while I grapple with AI first?)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。