Long live the dispassionate programmers! They get the documentation written and the boring bugs ironed out, when the passionate programmers have finished 80% on their latest cool Proof-of-Concept and are moving on to their next one.
A quote from Kurt Vonnegut:
Another flaw in the human character is that everybody wants to build and nobody wants to do maintenance.
Cheers to all the 80% programmers out there.
There are plenty of people who will do software maintenance. The problem is that they come in two kinds, neither of which companies usually want to hire.
First, you have the ninjas who slash and hack their way though the codebase and organization, have no problem sending FYS (“Fix Your Shit”) letters to the original authors of a system even if they have fancy titles now, and are usually freelancers charging $200+ per hour. The good news is that they will figure out the existing system. The bad news is that they won’t document the new one that they create unless you pay for that too.
Second, you have the lazy but reliably capable people who work 9:30-to-4:00 (with 90 minute lunches) and don’t do anything they aren’t explicitly asked to do, but will happily dive in on boring maintenance tasks and, although it won’t happen fast, they’ll get the job done. They might work 1.5-2 hours per day and that’s when they’re actively tasked, but they’re more productive on maintenance than anyone else, because they have a certain rare gift of emotionlessness that prevents them from getting angry at the code they have to work with.
Managers don’t want to pay for the first kind and deal with the hurt egos (because the mercenary ninja types are often telling the company men that their code is terrible) and they don’t want the second kind because they’re afraid of slacker contagion… even when the slackers are competent enough to be a net win.
In other words, this problem is sociological and economic, not innate. It’s not that software maintenance is this inherently ugly or unsolvable problem. There are personality types that are suited to it. The problem is that managers don’t want to hire the people who can do it well. They’d rather plonk the work on some unlucky fool. The job never gets done, but the manager gets to evade blame and say it was a bad hire, so the behavior won’t change. Managers don’t believe in technical debt because their ethos is, “It’s not really debt if you never pay it back.”
Maintenance would be relatively easy if companies were wiling to hire the right sorts of people to do the job, but I don’t see that happening in the near future.
One thing that’s interesting about old-line engineering companies (the Exxons and Lockheeds) is that they’re totally ok with your type #2, maybe even prefer that kind of employee. Although they’re virulently allergic to type #1: when they hire an external consultant, it’s to regurgitate back what they what to hear, not to make waves. But on the 2nd type, someone who does an honest two hours of work per day on a boring but necessary maintenance task, assuming they do so reasonably consistently and correctly, would be a valued employee in a lot of these more staid engineering organizations. These companies can have all kinds of other dysfunctions of course, but not this particular one.
The interesting question is the extent to which such companies are productive. I’ve heard claims that all large companies are inherently in decline, that your Exxons and Lockheeds will always and only burn money (or have below-market returns, which in a spherical-cow economics sense amounts to the same thing), that all useful growth and innovation are accomplished by small companies (populated mainly by people who might be categorized as type 1 in this taxonomy that I don’t really want to legitimize). I don’t quite subscribe to the strong version of this thesis, but it’s food for thought.
Actually, I think that the Exxons of the world are, in general, capable of being very profitable.
Keep in mind that if a CEO can capture $1 in executive perks or compensation instead of corporate profit, he’ll do that. It’s a classic principal-agent problem. This is complicated somewhat by the fact that shareholders aren’t always idiots, so the CEO can’t just loot at will, and of course the CEO’s compensation is often largely in stock. So there are some limits on the self-dealing… but, on the whole, executives take away a lot, not only financially, but also in terms of intangibles, e.g. using the corporate power and reputation to further their own branding and to take care of personal and family needs.
If you include executive takeaway, these companies are way more profitable than what you see on the balance sheet. It has nothing to do with them being well-run organizations. There are just a lot more feedback loops (rich getting richer, power accumulating) in human societies than most people want to admit.
Reported profits, however, tend to be mediocre because executives take the best stuff for themselves, just as startup equity often ends up worthless even when founders and C-words get $5 million signing bonuses and VP+ positions at the acquirer.
What executives take is only profit to the extent that they can take it efficiently though. If a company returns $1000 to shareholders then we can call that producing $1000 of value; if a company spends $1000 providing a first-class flight to an executive that might be only $100 of value to them.
It’s hard to say much solid about macroeconomics at that level of abstraction, or at least I don’t feel confident saying much about it. :-) I’m somewhat skeptical though. Not that the small fast-moving companies aren’t likely to be more profitable, but what the impact on the economy in aggregate is. It’s quite easy to construct situations, at least in economic models, where the profitable decisions for individual companies don’t necessarily optimize the economy as a whole (if anything it’s somewhat tricky to construct models where that isn’t the case). It’s hard to measure empirically, though. I could hypothesize that some of these boring, less-profitable companies play an outsized role in propping up the whole system, by keeping infrastructure working smoothly, but that’s hard to empirically test.
I do think such organizations are necessary for long-term maintenance, anyway: either it’ll get done by boring, slower-moving organizations (or at least, organizations with some divisions/groups within them fitting that description), or it just won’t get done at all. In terms of a world I’d like to live in, I do like things being maintained by utility-like organizations, or even the nonprofit or public sectors, that are interested in ensuring long-term stability and usability of things, especially things I’d classify as infrastructure.
Interestingly, as a side-note: “The Passionate Programmer” (the book) does not talk very much about passion about the craft of coding, but passion about your life and career choices and not taking the bullshit many people tell you about “career management” and what you should do.
For a more theoretical take on the misuse of “passion” as a job description, I highly recommend Avdi Grimm’s article on The Passion Gospel, which I submitted here: https://lobste.rs/s/i9va1y/passion_gospel
Why is it that programming lends to discussions about passion, side projects, etc. (coding as a life style)? Nothing wrong or right with it, just curious since we lump programming with engineering, medicine, and law as “upper middle class jobs” when in reality it seems to be more like art, music, and other creative fields.
Unrelated, I’ve been reading Theodor Adorno’s thoughts on Free Time in a capitalist society (just search “Adorno Free Time” for a PDF) and he predicts a lot of things developers do: willingly give their leisure time to make themselves more useful to the job market. No need to agree with all of it but worth a read.
when in reality it seems to be more like art, music, and other creative fields
This is only a side point, but it’s interesting that prior to the 19th Century Romantic Movement, the arts weren’t conceived of primarily as a passion-driven enterprise either. The previous Neoclassical view was very different, focusing much more on reason, order, restraint, etc. Brief summary here: http://www.victorianweb.org/previctorian/nc/ncintro.html
Well, maybe this is why Neoclassical art is the latest art style I like :-)
Thanks for the read. I really identified with this excerpt:
I should like to elucidate the problem with the help of a trivial
experience of my own. Time and time again, when questioned or
interviewed, one is asked about one’s hobbies. When the illustrated
weeklies report on the life of one of those giants of the culture industry,
they rarely forego the opportunity to report, with varying degrees
of intimacy, on the hobbies of the person in question. I am shocked by
the question when I come up against it. I have no hobby. Not that I am
the kind of workaholic, who is incapable of doing anything with his
time but applying himself industriously to the required task. But, as far
as my activities beyond the bounds of my recognised profession are
concerned, I take them all, without exception, very seriously. So much
so, that I should be horrified by the very idea that they had anything to
do with hobbies – preoccupations with which I had become mindlessly
infatuated merely in order to kill the time – had I not become
hardened by experience to such examples of this now widespread,
I was once invited to join a prominent open source company’s semi-annual meeting in London because of my work as a volunteer on one of their projects. When I told people I was traveling to London for a week, the next question was always: “Oh for leisure or for work?” I struggled to answer that question… Every. Single. Time. I know I gave different answers to it. Neither answer was even close to capturing how I felt about it (and more precisely, how I knew it would be interpreted by the questioner). Expressing my true feelings was clearly beyond what social etiquette would dictate.
I was literally driven mad by it. Just like Adorno.
I will say that I didn’t much like the rest of the piece. It was a bit too holier-than-thou for my tastes, and made a few broad generalizations that I don’t necessarily buy.
willingly give their leisure time to make themselves more useful to the job market
I’m not quite sure of the phrasing here… I work with a lot of passionate people on several open source projects. I’ve never seen one lick of evidence that they’re there right by my side so that they can be “more useful to the job market.” That may be a reality of what they’re doing, but it’s not why they’re doing it. The why is important.
With that said, I couldn’t quite find that prediction in Adorno’s piece, but I admit I started skimming maybe 65% of the way through it.
Why is it that programming lends to discussions about passion, side projects, etc. (coding as a life style)?
My favorite quote of all time is from Knuth. It’s my favorite because it describes my experience with the discipline nearly perfectly. It’s also my answer to your question.
is an art, because it applies accumulated
knowledge to the world, because it requires skill and
ingenuity, and especially because it produces objects of
beauty. A programmer who subconsciously views himself
as an artist will enjoy what he does and will do it
Nothing wrong or right with it, just curious since we lump programming with engineering, medicine, and law as “upper middle class jobs” when in reality it seems to be more like art, music, and other creative fields.
Programmers have absolutely failed in defining the terms of engagement with employers and we’ve managed to get the worst of both. We have to deal with upper-middle-class professional expectations, but the social status distribution of artists– a few wealthy and influential celebrities, most of whom turn out to be adept businesspeople but mediocre or worse at the craft, and then a gigantic mass of nobodies who will have to do something else when they grow up.
Corporate coding is not the least bit creative. The business people just call it a “creative” role to justify the fact that they get paid significantly more, have superior working conditions (like actual offices with doors that close), and have almost total leniency over how their performance will be evaluated, despite working 1/5th as hard as we do. That disparity is only tolerated because the market is flooded at the low end with script kiddies and bootcamp grads who haven’t developed a psychological immune system yet and think that corporate programming is a “cushy” and “creative” job.
despite working 1/5th as hard as we do
I’m assuming that I’m in the “they” as I admittedly work in a “corporate” environment. But I’m not sure who the “we” are in this sentence. Silicon Valley startup programmers?
“They” means “the business people” who “get paid significantly more, have superior working conditions (like actual offices with doors that close), and have almost total leniency over how their performance will be evaluated, despite …”. You know, the people who employ programmers.
Silicon Valley and startups are orthogonal to this; SillyCon Valley is the new Corporate America, and just as uninspiring and vapid.
Ah. Thanks for the clarification.
I absolutely don’t describe to that notion. I can’t quite formulate it, but I consider programming a highly mechanical job that needs a lot of knowledge, but you can get very good even if you just follow the motions that tought you.
There are some aspects of programming that require creativity. You don’t stumble upon Con Kolivas' CPU schedulers by simply going through the motions.
These can be found in any job though. The word is “innovation”, not art.
Also, how many programmers come up with scheduling algorithms?
The word is “innovation”, not art.
The word is “creativity” and it’s what separates art from just applying a rule set.
when in reality [programmings] seems to be more like art, music, and other creative fields.
As someone involved with art and music, but which makes money from programming, I deeply disagree with this idea.
And I do the kind of programming that is often considered creative (or certainly not boring).
Here’s what passion really means in that context: “We want people who will take us seriously before we take them seriously.”
In the old economy, companies invested in their employees and employees were usually pretty loyal. There was reciprocity. In the new economy, everything is viewed as an out-of-the-money call option that either flatlines or pays off big, but with a high probability on the flatlining: most jobs won’t lead anywhere, and most hires are judged (often in the first 90 days) to be disappointments with zero promotion potential.
The problem for companies is that they still need some work output from the 85% who won’t be going anywhere. Hence, the emphasis on “passion”, which is a euphemism for either a quixotry that is disproportionately observed in the young one ethnic-x-gender group (white, male, middle-class) or an unconditional work ethic that can only be borne out of desperation (H1-Bs). They don’t want to invest in people, but they want the kind of work that they would expect to get only if they invested in people.
To be honest, the “passion” stuff is this weird song-and-dance that will make 2016-era Corporate America look as silly as 1986-era Soviet Russia. It’s amazing (although sad) to me how people pretend to be passionate about, say, claims processing frameworks as if their lives depend on it… because due to the artificial scarcity (these silly things called “jobs”) imposed by late-stage corporate capitalism, their lives actually do depend on it.