QIAOPANG.COM · SELECTED ESSAYS (2013–2026) · 260 ESSAYSBrowse Chronologically (2013 → 2026) ↗
QiaoPang · Programmers LifeSelected Essays · Systems, Craft & Agentic Era
Timeline ↗

Programmers and Writers

Programmers and Writers

Although the “new economy” epitomized by the internet has been developing for ten or twenty years now, this wave is far from over. It is broadly changing every facet of people’s lives, and one day it may fundamentally change the way we work — and the ones who will bear the brunt of that change are the programmers who construct the order of the internet economy.

Look at the new ways of working that have emerged among programmers in the internet industry over the past decade:

  1. Working from home. Although the original motivation for remote work was to save companies operating costs, the substance behind it is this: programmers are gradually becoming important, self-organizing individuals, and their brainpower is being respected to the fullest degree. Through remote work, the physical boundaries inside a company vanish in the logical sense.

  2. Shared offices. In Europe and America, many startups have begun choosing shared office spaces, where a large office houses several unrelated small teams. Through shared offices, the physical boundaries of startups — even small and medium enterprises — disappear, leaving only logical boundaries.

  3. IT agents. From an early article on Hacker News, I learned that in Silicon Valley some star programmers have begun to have agents of their own. The agent negotiates work contracts on the programmer’s behalf; the programmer only needs to focus on writing code, while matters of interest are handled by the agent. Of course, this way of working is not necessarily suited to the average programmer, but the employment boundary of the company has been broken.

  4. Freelancers. Freelancing is nothing new, but with the rise of the mobile internet, a project can often be handled by just one or two programmers — which has greatly spurred the migration of programmers toward freelancing. A few years ago, with the rise of freelancer platforms like odesk.com, more and more programmers could reliably command an hourly rate approaching $100 (two or three years ago a friend of mine priced himself at $72/hour). At forty hours a week, that comes to $2,880 a week — not a lot, and not stable, fluctuating widely, but at least it is an important way to shake off the shackles of the company.

  5. Big companies, small teams. Many internet companies now operate on a project basis, where team compensation is tied to project performance — all prosper together or all suffer together. This is especially evident in game projects, which are essentially self-financing and self-sustaining. The company becomes more like an alliance that clears away non-product affairs for the internal projects, while the project team can devote itself single-mindedly to developing and operating its own product. Rather than saying programmers belong to a company, it is more accurate to say they are fighting for the project team — their sense of the company is faint, but they give their all to the project.

All these new ways of working are evolving toward breaking up the established structure of the company and moving in the direction of “small.” Big company, small team; small company, small team; all the way down to the individual developer. The internet has greatly amplified the individual strengths of programmers — a tiny team, or even a single person, can drive a star product.

Several of the ways of working above, especially the fifth, may become one of the mainstream modes of work in the future. In fact, the programmers in these small, nearly “self-organizing” teams are very much like writers. A writer makes a living by writing book after book, or publishing article after article in serial form (Chinese writers are, of course, an exception — the “Writers’ Association” keeps them in captivity and pays them a monthly salary). For simplicity’s sake, whether articles or books, let us call them projects. The project a writer has in hand either comes from a commission (in which case the writer is a constrained product manager) or from their own conception (in which case the writer is the product manager); but the writer is always the executor of the project, the owner of the project.

Programmers, engaged in a similar kind of mental labor, should “evolve” in a similar direction — the employed can belong to a company or not, but they are responsible for one or several specific projects. Whether the project succeeds is tied to the individual’s reputation, prestige, and future earnings. This not only greatly improves a company’s operating efficiency, but also helps raise programmers’ personal skills, their output per unit time, and their standing in the industry.

We all know that the results differ enormously between one person (or a few people) doing something and a large crowd doing it together. Once the sense of ownership of knowledge workers is activated, their creativity rises dramatically. Yet from the perspective of a large company’s organizational structure, no matter how much you optimize it, when hundreds or thousands (or more) programmers collaborate on a single project or product, it is hard to avoid a few Mr. Nanguo filling in on the yu — I say this not because, statistically, slackers are bound to appear, but because such an environment breeds the hotbed that produces slackers. Small projects where one person or a few people work together are exactly the opposite: even if a slacker turns up, he has no choice but to give it his all, because each person’s contribution to the project is easy to define — who owns what is obvious at a glance. Compare the two groups under the two organizational structures five years later (I happen to have interviewed both kinds), and you will find that the former has been irresponsibly squandered.

When a writer takes on a project, apart from having a deadline, they handle essentially everything else about completing it themselves. So they are conceiving the project while running, conceiving it while eating, and perhaps conceiving it in their dreams while sleeping. Work becomes part of life, and life becomes part of work. This state is enviable, because only total immersion yields the most marvelous output — and only then can we speak of the richest rewards.

When internet companies talk about 996 or about providing the most comfortable working environment under heaven, the goal behind it is to get programmers to devote themselves as fully as possible to the project, maximizing the project’s interests — but total devotion requires a feeling of “this is my baby.” Once that feeling arrives, it becomes very hard to stop and not be devoted. “Big company, small team, project ownership,” or a startup team, is in fact closer to this goal than 996 or an extremely comfortable working environment — because they give programmers the kind of control and ownership a writer has.

A writer, by completing the project in hand, earns near-term income (the manuscript fee) and long-term income (royalties); a programmer, by completing a personal or team project, can also earn near-term income (salary) and long-term income (options or exceptional bonuses/profit sharing).

We know that software development, being primarily mental labor, is not better the more finely it is divided — because the more finely duties are split, the more “locks” there are between duty and duty, the more “stop-and-wait protocols,” ultimately leading to inefficient waterfall development. The kind of division of function down to the level of the screw — as with industrial workers — harms both company and individual. So in recent years the whole internet industry has been reflecting on this and returning to the full-stack engineer — the kind of person who can hold court in the drawing room, cook in the kitchen, and make themselves at home in the boudoir: someone who can handle everything single-handedly. This is right — have you ever heard of a book whose author is split into a front-end author and a back-end author?

So a “small and refined” team made up of individuals who each wear multiple hats and hold more control is the mainstream way of working in the future — whether it is a startup team or a small project team inside a big company.

Saying all this is, in fact, rather anguishing. Because as far as I personally am concerned, to be fair, the compensation the company gives me actually far exceeds my personal contribution. Moreover, about a quarter of my working time is spent on things with lower output and lower contribution. In other words, at least a quarter of what the company pays me is for playing Mr. Nanguo — showing up but not delivering. I have it easier, but I am not happier — this is not affectation, it is simply the truth. Because under this compensation, I want to be able to do more, but I cannot do more.

Programmers want to be more like writers, with every work bearing their own stamp. And as time passes and personal abilities evolve, the next work can always break through in some respect — rather than being an industrial worker, day after day completing nearly repetitive labor of ever-increasing replaceability. I hope that one day, we can all move in this direction.

MORE IN Essays & Reading

Further Reading in This Column

View all essays in “Essays & Reading” →

Happy New Year!

In the blink of an eye, a twelfth of 2020 is gone — has your New Year plan kept pace? After a month of outrage over attacks on doctors and anxiety over Wuhan's outbreak, I send New Year wishes along with a guide to a long holiday without regret: books, Rust, and time with the kids.

Book Next Chronicles (2013–2020)3,608 chars · 8 min read