Something that I’ve noticed in the software industry is that many people will, at one point, state that they have no interest in becoming managers, only to reach out for the positions a few years later. Now that I’m in my 30s, I see why this is the case, and I can explain it.
Venkatesh Rao’s snowflake/clod model
Venkatesh Rao wrote an essay, “How to be a Precious Snowflake”, that describes two personality types that often meet in business: the clod and the snowflake. The clod is a person who has become insensitive and cynical over the years, but has, in that process, gained the knowledge and political clout to offer protection. Having won that status and awareness through pain and compromise, clods find themselves cold-hearted and their creative energies lost, but they’re operationally effective. The snowflake, on the other hand, retains that youthful idealism and unfiltered creativity. Snowflakes haven’t been crushed by authority yet, so they’re consistently at risk of getting themselves fired, demoted, or marginalized due to their overperformance (and, as this happens, they’re likely to turn into clods). They’re political naifs, in need of protection. Rao posits that the clod and snowflake often form a symbiotic relationship within the organization. The clod protects the snowflake from the fecal tornado that is a human organization’s politics, and this patronage allows the snowflake to create without restriction. The clod benefits in his ability to live vicariously through the snowflake; he has given up on individual ability to create, or cannot take such risks in his position, so he prefers to make safety for others who’ve not yet been tarnished.
Corporate America’s virgin fetish
Virgin sacrifice is a common pattern in corporate behavior. Many corporations prefer to hire people straight out of school before they’re “poisoned” by other, dysfunctional organizations. Of course, there’s more than one company with this attitude, and they bristle at hiring each others’ alumni, because those companies are, themselves, dysfunctional. In essence, these companies are aware that typical corporate employment damages people and prefer to hire those who haven’t been damaged yet.
Here’s a disturbing realization: the typical software company wouldn’t rehire its own median people, because almost no company is in a state where the median quality of work experience it offers would make a person eligible for hiring. For example, if you’re accepted into Google, that means that you’re “Google-quality” at that time, but if you spend 4 years at Google and get average work experience, you won’t get the level of work quality that is “Google-quality” for a 4-year hire. This doesn’t mean that Google would fire such a person. On the contrary, the person also has 4 years’ worth of internal knowledge and connection that make it desirable to keep that person. However, that person’s definitely not attractive enough to qualify for a 4-year-appropriate engineer position at a different company (say, Facebook) of similar calibre. Facebook will ask that person why she didn’t get out of legacy maintenance and on to a machine learning project. Yes, 4 years of average work experience at Google is better than 4 years of average work experience elsewhere, but it’s still not a great outcome. Most companies don’t see themselves as having much quality work experience to hand out, so they’re mostly looking to offload the crap, but it’s viewed as desirable to be handing a “shiny new” candidate the first crappy project that a person has ever had, and not the fourth.
The most prestigious divisions of elite companies want only the not-yet-fucked: people with top PhDs who’ve only worked on cutting-edge machine learning projects. At 32, I’m probably more prepared for those jobs than most Stanford PhDs, because I’ve had more time and seen a lot more, but having seen more is viewed as a detriment. The lack of dirty experience is more of an asset on one’s CV than a copious amount of “clean” work experience. What you learn on a cutting-edge machine learning project is (as it should be) valued. What you learn on a legacy maintenance project is how to make sure that, when things inevitably go wrong because of mistakes made eons ago, you don’t personally get blamed for it. Neither skill set is morally superior to the other, but one is cherished and the other is viewed as “political” and derided. To that, my counter-argument is that organizational effectiveness requires awareness of the political. Bringing that brilliant machine learning model into production will almost always require that someone take on the despised, “political” task of navigating and exploiting the organization.
Corporate virginity’s desirability comes from a few sources, all interrelated. I don’t buy into the assumption that people who’ve never had “real jobs” (i.e. they were handpicked to be CEOs’ proteges straight out of school, and given their own companies to run by 28) are more creative than those who’ve suffered in their progress. I used to think that, and that I was becoming stupider with each shock, failure, betrayal, or embarrassment. Now that I’m older, though, I’ve realized that bad experiences have, although I did not expect it, improved my creativity. (People who haven’t been challenged as much as I have, have gotten dumber with age; I’ve become smarter.) The fucked-before are not “broken”; we’re just more aware of what’s going on. We’re as capable of creativity as anyone else, but we’re risk-averse when it comes to overperformance and we won’t show premature loyalty. Moreover, the “first fuck” premium (that lives behind, say, software’s age discrimination issues) doesn’t seem to be connected to creativity at all, because the most degenerate of the virgin poachers don’t try to put most of their catches in creative roles. Virgin poachers want hyper-loyal subordinates, not cranky creatives. They want to extract some kind of economic rent (whether that be in the work itself or the company’s image of youth) that can only be unleashed by “using up” those snowflakes. It’s deliberate. We don’t turn into clods by accident.
Young workers, as proteges, are most attractive when they’re in the never-fucked category. That said, Rao’s notion of the snowflake as a creative or a virtuous archetype isn’t quite accurate. Look at some of these people who’ve been made founders by the VC establishment, e.g. Lucas Duplan or Evan Spiegel. They’re young, but creativity and virtue are not what these particular precious flakes are known for. Evan Spiegel was an anti-intellectual, misogynistic psychopath before the VCs got in on him. He wasn’t picked as a protege for his creativity or his moral qualities or the single-minded career trajectory of an academic, which he didn’t have, but for his callous sociopathy and meanness toward women. It’s chickenhawking. How do we integrate this observation with the snowflake-clod model? We recognize that “snowflake” status isn’t about moral virtue or creativity at all. Rather, it’s about the purity. A relationship with a snowflake allows a clod to experience something (and that “something” may be, as in Spiegel’s case, hubristic malice) in its purest essence; in the adult world, that sort of purity in anything is rarely found in a person.
A 22-year-old sociopath who has always been rich and never been told “no” and whose bad behaviors toward the opposite sex have been tolerated or covered up is, in a sense, pure. Purely awful, yes, but there is still something unique to youth, there. It’s a specific flavor of evil that an adult would learn to water down or make more subtle. Twenty years later, someone like that will have experienced rejections and setbacks, no matter who he is. At 42, he won’t be able to drug and fuck his way to an early grave without a non-trivial risk of actually reaching the end of that path. When a middle-aged VC supports the career of a young sociopath, funding him in order to live vicariously through him, it’s not creation but destruction that is valued: a nihilistic lifestyle and the demeaning of women. Older clods may retain that lack of character and that nihilism, but any who’ve acted on those impulses for two decades will have had enough hard lessons to lose that purity of confidence.
Snowflakes offer purity, and that’s what makes them what they are. Clods are impure. No clod is purely good or purely evil, nor purely lawful or purely chaotic, nor purely creative or purely destructive. A clod will play the system against itself for a higher purpose, while snowflakes often refuse to do so, sometimes for idealistic reasons but just as often out of a lack of confidence (because snowflakes tend to have extreme confidence within a specialty, but a total lack of it elsewhere). It’s easier to say, “I’ll never work at a desk job” than to admit that one has an anxiety disorder that interferes with the demeaning subordinacy theater that white-collar people are expected to play themselves into. The first is a proud, idealistic statement; the second is a painful admission of (a very common) disability. Snowflakes haven’t yet learned their limitations and have a symmetry (to continue the metaphor) of character, while clods have grown in fairly random directions according to the practical needs and organizational forces that they’ve had to contend with.
Management
So what is a manager? A manager offers protection to his reports: from The Business, from The Organization, and (most importantly) from other managers. A manager also is expected to protect The Business and The Organization (which I’ll define) from the company’s own people. Moral compromise becomes mandatory, because there are many forces in play that don’t have the best intentions.
As used here, The Business refers to a corporation’s tendency to function as a paperclip maximizer. A paperclip maximizer is an intelligent agent that destroys humanity, not out of malice, but because it’s designed to achieve an entirely different goal: which is to maximize its collection of paperclips. (“The AI does not hate you, nor does it love you, but you are made out of atoms which it can use for something else.”) The Business is the paperclip maximizer that lives within the company. It wants more work out of fewer people, and will often make decisions that hurt people. One can think of The Business as akin to the executive suite in a typical company, if you strip away all of that “vision” claptrap that executives use to justify themselves (and to present themselves as something different from the winners of a long managerial-political tournament). It doesn’t have a discernible will other than to cut costs, and extract more work, with no concern for moral cost. It emerges because, while individual executives may have moral values and “vision”, those factors cancel each other out and the only vector that is left is profit maximization, regardless of source.
The Organization, as a countervailing force, exists around people who are desperately trying to do whatever is necessary to protect their own incomes and social status. It comes from the employees, rather than executives and shareholders. The Organization’s goals are more sympathetic– it’s a conservative force trying to preserve order, and a check against the rapacious greed of The Business– but The Organization can also be very mean-spirited when provoked. Become too visible to The Business, and you might get laid off. Offend The Organization and, because peoples’ careers are at stake, the knives come out.
The Business is ruthless but impersonal, while The Organization can be intensely personal. What’s more, The Business and The Organization have a bizarre relationship. Nominally, they are at odds, because The Business would ideally fire everyone if it could get the same work for free, while The Organization wants to protect peoples’ jobs and positions (except in regards to people that it finds offensive). To get its way, however, The Organization has learned that it must speak the language of The Business. People who hold power in The Organization (who may not be the formally titled power-holders of The Business) quickly become experts in the #1 most important corporate communication technique: phony existential risk. The Organization holds its place by convincing The Business that catastrophic failures (missing launch dates, losing investors) will occur unless its demands are met. If The Business is convinced of this, the organizational state is stable. If that faith wavers, layoffs and re-organizations occur.
A manager’s job is to protect reports (in particular, snowflakes who might get into trouble and not know it) from both of these forces, but also to protect The Business from underperforming snowflakes (who might judge their assigned work beneath them) and The Organization from overperforming ones (who might embarrass entrenched people). It’s pretty much impossible to do serve this multilateral job, with deep conflicts of interest that can never be reconciled, without some cloddish moral compromise. As a manager, one has to convince a multiplicity of agents that one is singularly focused on seeking their interests, when those interests likely contradict each other. A manager could, in theory, be honest about where he has made compromises, but one who does so is likely to be demoted or fired. Eventually, even the good managers realize that honesty is just one of many objectives to maximize, and that not only is a 7 or 8 out of 10 is good enough, but that more is counterproductive. If this sounds like I am bashing this class of people, I’m not. I’ve also had to lower my level of honesty, in the corporate world, to that “8/10” mediocrity. If I’m asked for an estimate (and I hate estimates, because asking for one is a microaggression disguised as prudence) then I don’t offer the most honest one, but the one that I judge to be politically optimal. When it comes to honesty, I’ve seen what happens to the 9’s and 10s (having once been one).
Rao admits that people can change roles over time, and of course they do, but programmers tend to be irritatingly snowflake-ish when they are young, and get cloddish with age. (I highly doubt that this is limited to programmers.) One of the tell-tale signs of a snowflake is not wanting to be a manager. Snowflakes see management as undignified work: it gets in their way, and it mostly exists to hold people accountable to nameless forces that no one really respects. Snowflakes might harbor visions of themselves as “executives” in the future, but they see that job (as they somehow see being an executive as different from being a manager) as a “fun” and creative one, never mind the realities of it. They can romanticize the role of a startup CEO or venture capitalist, because they’re so far from it; but they correctly recognize middle management as compromised. Therefore, they see it as “dirty”. (I would argue that it’s not. Surviving the corporate world requires becoming as “dirty” as a manager must be, so there’s no moral superiority inherent in not being one.) The snowflakes are rarely aware of the fact that, when management (which they view as cloddish) works well, they’re often protected from a lot of garbage originating in The Business, The Organization, and coming from other clods. Impurity seems to be an unfortunate artifact of human organizations that emerge around the middle-class need (The Organization) to protect an income, even if inefficiency and obscurity are consequences of this, and also around the runaway greed (The Business) of the owning upper class.
Getting old, and learning to synergize
To some degree, the simple fact of getting older pushes programmers into management positions. Let’s explain why this happens.
Software is a dangerous place to be, because there is an objective (if meaningless) performance metric that is visible to everyone: code committed. Of course, new projects offer opportunities to commit excellent code, and legacy maintenance makes a person lucky to get one solid commit (often a trivial fix, once the flaw is found) per day. Over time, programmers learn that hacking the performance-measurement game requires that they control project allocation, and once that political target is achieved, one is only a small step away from being an actual manager. Corporate software isn’t R&D; it’s manage-or-be-managed, and once programmers hit 40, be-managed (with open-plan offices and salaries that, while decent for young people, won’t support a family) becomes unacceptable. It’s flat-out irresponsible, if you have children, to accept a job where you don’t control how performance (at least, your own) is evaluated.
More relevant than aging itself is increasing impurity, by which I invoke Rao’s sense of cloddishness. For the decent individual-contributor (“IC”) roles, purity is necessary because people who get assigned work outside of their specialties are doomed end up on the second-class career track for good. If you don’t protect your specialty and purity, you’ll end up in a second-tier career and never get your status back. If you want to be writing code at 40, you have to fight impurity and simply refuse to do work that doesn’t support your career goals. On the other hand, impurity is an asset for a manager, because the job requires compromise and awareness of human deficits. “Battle scars” on a programmer are intellectually unfulfilling projects where little is learned; for a manager, they’re challenges that were overcome (preferably victoriously, and requiring spin if otherwise).
People who’ve been burned a few times, often, make good managers; likewise, people who haven’t suffered tend not to do as well. When the never-burned are made managers, they tend either to focus on the fun parts of the job and fail to fight for the team against The Business; or, alternatively, they fail to filter The Organization’s demands, often issued using bad-faith exaggerations of personal pet issues into existential risks, and thus end up over-committing and under-delivering. Simply navigating The Business and The Organization– two forces locked in eternal antipathy– is somewhat of an impossible job without some will to compromise (in the moral and negotiatory senses of the word). To do that and meet project- and people-management (protect the best, direct the middle, eject the worst) targets is nearly impossible for the “precious snowflakes” who still believe that the ethics we apply to ourselves and each other everywhere but work are also applicable in the office. Cloddish managers know that they aren’t. If incomes are at stake, marriages (“love”) and lives (“war”) are on the line, and all is fair.
Employers, perhaps expressing a subtle self-loathing, love virgin subordinates because these people are reminders, to the sullied managers and veterans, of what they used to be, long before they had to make a living playing corporate politics. Much of the ageism that we see in industries like corporate software comes from the loss of this virgin premium as one gets older. The 45-year-old still-virgin programmers who’ve only been working on machine learning problems and compilers (intellectually interesting fields that, unlike line-of-business programming, don’t deflower a person) for the past 20 years are extraordinarily rare, and 45-year-olds with average-case work experience are so thoroughly cherry-popped that many companies consider them unhireable– unless they can cleverly recast themselves as managers: seasoned veterans of corporate politics who can make some semblance of order out of chaos.
Years ago, I used to think that going into management was the path of a mediocre programmer who just couldn’t cut it, but as I get older, I’m aware of the forces pushing me in that direction. And perhaps I am mediocre if “mediocre” means “bottom 99.9 percent”, but that’s not originally what I had in mind when I formed this prejudice. Moreover, as I experience this pressure myself, I’ll say this: it’s not about money. So what is it that makes professional programming too awful to be tolerated for 20 years or more?
First, I can’t tolerate the low-status job that programming has become, with open-plan offices and short deadlines and frequent context switches and changes in priorities, often at the whim of people who wouldn’t understand technology if it kicked them in the collective pelvis. Second, I’ve been pretty aggressively de-virginized in my corporate experience. With Google, it’s become public. I don’t like that I’m a clod, but I am one, and I’m too intellectually honest to hide it. I’ve seen too much, and I’m far too familiar with the forces that cause organizational mediocrity, and with just how difficult it is to do anything about them. (Moreover, when the downside is getting fired, with the loss of income and reputation thus entailed; and when the upside is merely making someone else’s organization more efficient, why bother?) I’m cynical and insensitive, and it’s better for the world that I gain these traits because, five years ago, I would have been too naive to lead and too oblivious to protect a team (given that I couldn’t even protect myself very well).
Third, and most upsettingly, the competition for good programming jobs is severe, and the competition for management roles isn’t, and while I love hobby coding and green-field projects, I would rather “sell out” and never code again than be a fucking chump-ass peasant open-plan programmer at age 40. If I’m even at a 1% risk of ever being put on a Scrum team at age 40, then I’m going to count myself a failure at life and reconsider every decision that I’ve ever made. Getting the decent programming jobs is very competitive, and I recognize the negative possibilities as well as the positive ones. Yes, I’m a good programmer. Probably top 2 percent, possibly higher. But blue-sky R&D in Facebook’s AI lab is probably not an option for me, because I don’t have the work experience for that; they want virgin CVs, and they can get them, and I lost my flower almost a decade ago. I’m too sullied by the real world. If you need to know how to battle a software organization, that I know, because I’ve been there. If you need to know how convolutional neural networks work, well… I know that I could learn it, as I have the talent and intellectual curiosity, but I haven’t exactly been reading five papers per week for the past five years.
I give programmers enough credit that I don’t believe that many of them set out to be managers when they start their careers. To be blunt on this, I know plenty of good people who are managers or, say, investment bankers; but anyone who wanted to be one at 17, instead of a poet or a mathematician or a real entrepreneur (and not some VC-funded puppet CEO) or a bioinformatics researcher, I can’t respect. I actually think that a good number of programmers enter the field with a respect for it, wanting to do great work. They enter with pure intentions and goals– to build great products and make the world better– and organizations sully them. First, they learn how difficult it is to perform at their jobs when given typical legacy-code maintenance jobs. If they get “caught”, they become bitter and explosive; far more often, they get passing-to-positive performance reviews (by which, I mean “performance theater”) anyway and get a first lesson in phoning-it-in without making enemies. Second, they learn over time about the need to control the project allocation process and the finer points of performance-evaluation-manipulation. Ten years in, they’ve lost that “sharpness” when it comes to operating system design or gradient boosting methods, and find themselves no longer eligible to join most teams that are doing the cutting-edge work, but they’re very experienced with political games, having lived in the manage-or-be-managed corporate environment. At this point, all of the moral compromises involved in becoming a manager have been made, so there’s no good reason not to climb the ladder.
A better world
Talented programmers get pushed into management because our industry is, to state facts plainly, run by mouth-breathers, bereft of vision and culture, who don’t value technology and what it can do. When setting the vision is trusted to the sorts of uncultured, anti-intellectual people who thrive in American business culture, you get a miasma of terrible ideas, bad initiatives, and sloppy work that one has to continually contend with. That is the sort of recurring, unlimited problem that technologists (who are used to the concept of automating away a hairy problem) hate. This creates a seemingly hopeless world in which there are avalanches of undesirable work and frequent emergencies. In that world, non-managerial jobs like programming are coerced into a pyramidal shape: a large number of miserable grunts at the bottom, a smaller layer of architects and “leads” and principal engineers to do mid-level work, and maybe a couple R&D engineers at the top, who get to do the stuff that’s actually interesting. It’s a boneheaded and morally indefensible scarcity system in which desirable work is to be hoarded, collaboration is avoided, and in which there is no place for experienced engineers (except in that other pyramid called “management”). It’s also astronomically expensive, in software, because it results in work being done by large teams of incompetents that could be done by 1/10 as many people if it were done, instead, by competent engineers.
Software engineering, if it retains its status as being subordinate to The Business, is likely to be seen by history as the Great Tragedy of the 21st Century. We have one of the most powerful skills in human history but, instead of using it to fight cancer or combat climate change, we get stuck using it to enable businessmen to unemploy people. There’s a disturbingly large amount of value (ahem, short-term value) that can be unlocked in doing this, and almost all of that accrues to the paperclip-maximizing sorts of people who add nothing to society in achieving their goals. Our skills, as technologists, ought to be used to achieve more (a lot more!) with the same, not to do the same (or less) with less. The latter, taken for another decade or so, will bring us to a state in which human society is unable to solve its own problems, and the consequences will be dire.
If, however, we take our industry back, we can eliminate so many of these needless and toxic scarcities. We can throw away the disposable companies and stupid marketing experiments that VCs fund and get to work on actual meaningful problems. We can build a world in which software engineering isn’t shaped like a pyramid, dooming us to reams of bad code written by inexperienced people, and in which people can take programming seriously, as a lifelong career. We can kill “user scrum stories” and productivity-wrecking open-plan offices. If we can figure out how to make a proper profession out of ourselves, we can end the manage-or-be-managed regime for good, and there’s no good reason not to do so.
![](http://pixel.wp.com/b.gif?host=michaelochurch.wordpress.com&blog=12019234&post=2872&subd=michaelochurch&ref=&feed=1)