I Make Software

Announcement Housekeeping

I’m back from my vacation, and while I was gone my first Pluralsight course was published and I’m now officially listed as an author. The course is about continuous testing and NCrunch, if you have interest and a Pluralsight subscription. If you don’t have a subscription, I would recommend one, and that’s a plug independent of my affiliation–I’ve been a loyal subscriber and video-watcher for the last two years before becoming an author.

I have updated the tagging on the Expert Beginner posts so that you can see all of them by choosing the “Expert Beginner” tag. They appear in order from newest to oldest. The posts span a reorganization of categories and tags that I did, so things weren’t as organized as they could have been. And, speaking of those posts, I’m going to be finishing up the series this weekend. That series and another will be coming soon in e-book format, details to follow. The Japanese translation’s release date is TBD, tamil. :)

And now, back to your regularly scheduled posting.

A Programmer by any other Name…

Euphemism in the context of validating occupations, or, more generally, decisions in life, is a subject that I find pretty fascinating. To be a little less wordy and more concrete, this is what happens when a stay-at-home mom starts referring to herself as a “Domestic Engineer” or when we call secretaries, stewards/stewardesses, and janitors something different every ten years or so (excuse me, administrative assistants, flight attendants, and custodian–or perhaps sanitation engineer). A lot of people call this “political correctness,” but frankly that’s just another euphemism. All of this behavior is really just marketing and the fascinating bit is what makes people decide that image touch-up is necessary.

Lest you think I’m being snide toward other lines of work, we programmers (excuse me, software engineers) seem to do this as well. John Sonmez wrote an interesting post about this while I was on my vacation recently. My post here actually started out as a comment response to his but grew into an unruly beast that I think needs to be its own blog post. In his post, he calls for plain speaking about our line of work and less preening with titles like architect, senior software engineer, etc. (He also suggests a list of titles that we don’t use when trying to make our work seem more grandiose than it is, and that list will definitely make you chuckle). I agree wholeheartedly with the sentiment of the post and with almost all of the individual theses that I gleaned from it. To wit, these are excellent points:

  1. There is no centrally agreed-upon title ranking and one man’s software engineer IV is another man’s principal senior lead developer, more or less.
  2. Debating whether we should officially be “developers” or “programmers” or whatever is silly.
  3. Impressive-sounding title does not mean impressive skill or competence (I don’t think any regular reader would dispute my agreement with this point).
  4. It’s probably easiest to communicate what you do by saying “programmer” than by the show of force of “Well, I’m a Tenured Level 12 Architect Fellow!”

But there’s one point on which I can’t agree with him, and it saddens me. Specifically, “job titles don’t mean jack.”

Must… Rank… Ourselves!

I want to agree with that point–badly. I would agree with it if it were, “job titles shouldn’t mean jack,” or, “job titles don’t mean jack when it comes to your competence, contribution level or personal worth.” But as stated, I can’t get there.

I’m relaxed, refreshed, and cheerful these days, so I didn’t intend to do another realpolitik-oriented post where I might be accused of cynicism, but c’est la vie. Job titles are one of our main talismans of self-evaluation in the corporate world. National leaders measure worth by things like approval ratings or time in office, athletes by titles and victories, generals by battles won, accomplished scientists by publications, awards, or even Nobel Prizes. All of those have money and power. You get the idea–high-achieving outliers tend to have visible evaluation metrics that put stamps of greatness on their achievements in life. But in the banal world of bottom-heavy corporate politics, we have only a handful of such things, and they can be boiled down to this: where you sit, what you get paid, how late you can arrive at meetings, and what the title says under your name on your business card (and, of course, what your business cards are like).

scan0002

Titles tie into all of these metrics insidiously. With a title like programmer, you get a cube and not an office, much less a corner office. With a title like programmer, you don’t get paid nearly as much as a senior programmer, lead programmer, architect, or CTO. With that title, you’d better be at meetings on time or early, and you probably don’t have a business card. What would a peon like you need with that? Titles in a company are relative data points that we gather and use to understand how much or little we’re valued. They help signal that you’ve arrived or that you have a long way to go as far as the company is concerned. In a vacuum, they mean nothing, but as soon as more than one is introduced, they establish the relative pecking order and they mean everything, and that’s sad.

I’ve written and talked about how depressing I find it that we bury decades of our lives in a pursuit and count ourselves among the elite in life if get to work in a room that has a door. “Well, Jones, in honor of you investing 30,000 hours of your life in this corporation, you can now spend eight hours per day in a slightly bigger space and keep your former friends and new underlings at bay by closing your door.” If that’s the high water mark of existence, ugh. But if you think about what’s really going on, when laid bare that way in all its triteness, it’s easy to see that the office and the business card with a watermark isn’t really the end goal, nor is it important. What’s important is that offices and business cards are the work-a-day corporate equivalent of battles won, Nobel Prizes earned, and championships brought home. They are the things that say you’ve fought the good fight, earned distinction, bested your peers and vanquished your foes. Because the thing of it is, as soon as you introduce distinction, human nature will stack rank it and attempt to place itself at the head of the stack.

Stripping the Status from Titles

What if every programmer on earth right now were title-renamed “programmer?” You might find that a company tried to hire an embedded systems specialist to touch up some CSS, at which point the former would say, with a mild note of disgust, “oh, no–I’m not that kind of programmer.” Or perhaps they’d offer 50K per year to a senior architect that had been raking in 150K per year, to which she would reply with more than a mild note of disgust, “surely you jest–I’m not that kind of programmer! That’s a hack. I’m more like an-an-an engineer of programming! Or maybe an architect of programming, even!” This isn’t too far off from “oh, you’re just a janitor, eh?” being answered by “no, no–I’m a custodial engineer! That sad sack over there is a janitor.”

John is absolutely dead on when he says, “you can’t know anything about a job or person by their job title.” Whether they’re a programmer or architect, janitor or flight attendant, you know nothing about their drive, commitment, intelligence, competence, or worth as a person from that trivial, reductionist title. And no amount of artificial puffing or grandstanding will change that. But as long as we’re in the business of abbreviating people’s lives, achievements and worth with reductionist, elevator-pitch words (titles), people are going to look to change theirs to their advantage to signify that they have achievements and that their lives are going places.

I make software. If you ask me what I do, I can honestly say that, and I’ve been able to say that my whole career. But over that time, my pay has changed, my role has changed, where I sit has changed, my business cards have changed, and my position in the stack ranking stew of various organizations has changed. Along with that, my title has changed and changed as a predictable avatar representing all of those other changes. From company to company, the avatar’s interpretation may vary somewhat, but within a margin of error, the title serves as a way for organizations to quickly identify how you’ve been stack ranked by other organizations and to then rank you accordingly.

It’s because I don’t like this system and because I agree with John’s statement if amended to “job titles [shouldn't] mean jack,” that I like outfits like stack overflow, github, and coderbits. It’s nice to see value placed on works, rather than scripted career status evaluations. I think that for me, the ultimate goal is to separate “what do you do?” from “how much value to you provide?” What do I do? I make software. Perhaps I should be titled “Software Maker.” How much value do I provide as a “Software Maker?” Well, that’s a more complicated question that you can’t answer in a word or two. So perhaps it’d be better if you didn’t try.

  • jsonmez

    Great points! Agree 100%. I am an idealist and dreamer, so in my world titles don’t mean Jack, but in reality, you are absolutely correct.
    So, I agree with you, I’d more correct in saying titles “shouldn’t” mean Jack.

    I often say, everything in life is selling. :)

  • http://www.daedtech.com/blog Erik Dietrich

    I would definitely enjoy a world where the title simply described what you did — programming, in our case. By the way, I really liked the examples in your list of what we don’t call ourselves.

  • Pingback: The Dirty Work for Software Architects | DaedTech

  • Jan Van der Haegen

    Great post, especially the conclusion.

    I slightly disagree with: “human nature will stack rank it and attempt to place itself at the head of the stack”. 70% (I’m just making that number up) of people will be happy to stay where they are, and find joy in doing the same (or same type of) thing for years. And thank god for that, great companies need both the “grunts”, the boring “legacy software maintainers”, as well as the ones “running for software president”.

  • http://www.daedtech.com/blog Erik Dietrich

    I think I’d agree that a lot of people are happy, or at least content, to stay where they are, doing what they’re doing. What I’m referring to with stack ranking is that they’ll want perks like respect, promotional titles, offices, and gold watches. So even if someone simply wants to program all of his life and is content without aspiring to leadership positions or anything at all beyond his current role, he’ll still want a title with senior after it or an office or a gold watch or something to distinguish him from someone with similar aspirations but less time with the company or years of experience. That’s more what I mean — status ranking.

    And thanks! Glad you liked the post :)