Agile Zone is brought to you in partnership with:

John Sonmez is a Pluralsight author of over 25 courses spanning a wide range of topics from mobile development to IoC containers. He is a frequent guest on podcasts such as DotNetRocks and Hanselminutes. John has created applications for iOS, Android and Windows Phone 7 using native tools, HTML5, and just about every cross platform solution available today. He has a passion for Agile development and is engaged in a personal crusade to make the complex simple. John is a DZone MVB and is not an employee of DZone and has posted 81 posts at DZone. You can read more from them at their website. View Full User Profile

Your Job Title Is Wrong, Here Is What It Should Be

  • submit to reddit

Here is a good question for you: what do you call yourself?

What is your job title?

More importantly, what should your job title actually be?

There are quite a few job titles that describe people who write code for a living.

  • Software Developer
  • Developer
  • Software Engineer
  • Senior Software Engineer
  • Programmer
  • Coder
  • Architect
  • Software Architect

job titles on business cards

In my career I’ve officially held many of these job titles while being employed, but what your official job title is and what you call yourself are two different things.

Of course now I am self-employed, so I get to call myself whatever I want.

The job title debate

More than once, I’ve been involved in the debate over what people who write code should call themselves, what the difference is and what the different job titles actually mean.

Let me tell you something right now, before we even go any further:

Job titles don’t mean jack!

That’s right, you can’t know anything about a job or a person by their job title.

I’ve seen some companies call their most competent coders senior software engineer, I’ve seen others give that same group of people the job title architects, and I’ve seen some call them software developers.

Now obviously some job titles appear to have more clout than others, and obviously some titles would be more desirable for a software writing professional to have, but a job title alone doesn’t convey any real information.

Still, over twitter and occasionally over a blog post, I’ll see this long debate about which job titles mean what and what we should call ourselves.

The problem I have with almost all of these debates is that they are based on the ludicrous assumption that there is some actual real official designation of titles and their meaning that exists somewhere.

If there is one, I’d like to see it, because as far as I know we are just making this stuff up as we go along.

So what should programmers call themselves, then?

Good question… How about, oh I donno, programmers, maybe?

But wait John, I don’t just program computers!  I gather and analyze requirements, I design mock ups, write unit tests and I attend all kinds of meetings.  You may be a programmer, but as for me, I am a software developer.  Oh, and since I’ve been doing this for a while and I am awesome at it, I shall bestow upon myself the title of senior software engineer.

I get what you are saying; you’re important, you’re hot stuff, you don’t just program computers.

Heck, you probably spend a majority of your time not writing code.  Most programmers do.

But let me ask you this question.

What thing do you do that provides the highest value?

What is your most specialized skill set?

Now, not everyone is the same, but most people who write code for a living will have to admit that although they do many other things that add value and are required for their job, primarily what makes them valuable is their ability to program a computer.

If you took all the responsibilities and activities that senior software engineers do and you let someone else do them that could do all the functions of the job except for writing code, what would you call that person?

Think digitalMost likely a business analyst or something around those lines, but it would seem a little silly to give them a title of senior software engineer.

At the same time, you could remove just about any other job function from a typical senior software engineer’s responsibilities and still easily call them a senior software engineer.

All this is to simply say that the thing of importance is the ability to program computers.

So again my answer to what you call yourself is the function you do that provides the most value: programming the computer.

(By the way, Amazon tends to think programmer is the right term, since the biggest book category under computers & technology is programming.)

It’s not what you do most that counts, it’s the most important thing you do that counts

If throughout our careers, we chose our titles based on what we did the most, we’d have titles like the following:

  • Sr. Professional Emailer
  • Customer Handler
  • Pretender of Doing Hard Work
  • Unit Test Writer
  • Build Breaker Extraordinaire
  • Meeting Engineer
  • Legacy Code Maintainer
  • Browser of the Webs
  • Corrector Of Wrong People On The Internet

You may spend 90% of your time not writing code, but if writing code is really what your value primarily derives from, I see no good reason to call yourself something other than a programmer or a coder. (Although coder is a bit ambiguous and programmer is pretty much right on key.)

But wait, if I do that John, then people will think I just write code all day.  They won’t know that I have all these other skills that are required to develop software.

Once again, I get what you are saying.  I understand your concern, but it is ridiculous.

No one thinks that peat-computerrogrammers just spend all day programming computers.

Just like no one thinks lawyers spend all day everyday in court arguing cases.

Most people will get that when you say “programmer,” you don’t mean that you just write code.

If you don’t believe me, then let me ask you again what it means when I say I am a software developer.

Does software developer or senior software engineer or architect more adequately describe the 50 job responsibilities of a programmer other than writing code?

I don’t think so.

But, at least the word programmer makes it clear to anyone, even someone who knows nothing about the field of software development, what the valuable thing you can do is.

It’s really not a big deal

Don’t get all worked up about this though.  I’m telling you right now because I know some of you are sure you understand the true meaning of the various programmer job titles out there.

I’m not asking you to call up your boss and demand that your job title be changed to just programmer.

No need to correct people when they call themselves software engineers or architects.  (And yes, I am grouping lowly software engineers in with architects, because if you are writing software, but you aren’t architecting it as well, you shouldn’t even call yourself a programmer, and if all you are doing is waving your magic wand and drawing architectures for others to implement, I’ve got news for you, you’re not adding any real value either.)

In fact, around this blog, you’ll find that I often say software developer, because it is a term I agree with and more people relate to it than programmer.  So, I’m not even that adamant about using programmer, myself.

I’m just saying, when someone asks you what you do for a living, spare them the grandiose speech and flowery words, just say “I’m a programmer” and leave it at that.  There is no need to say “I’m a software engineer”; to which they inevitably respond with, “oh, but what do you do?”  And of course you respond with some detailed description of what exactly software engineers do which could have all been summed up in the beginning by saying you were a programmer in the first place.

YouTube video for the week

Oh, and don’t forget to check out my YouTube video for the week, where I talk about why you should fake it till you make it.

Get Up and CODE

And here is the link to the latest Get Up and CODE episode, where Iris and I talk about healthy eating.  You can also listen to it below.

Published at DZone with permission of John Sonmez, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Renato Battaglia replied on Wed, 2013/06/05 - 8:14am

 Pretty much perfect. As good old Bjarne Strostroup's C++ book stares in its chapter on architecture... "Yup, I am a programmer, that's what I am after all".

Roman Uruskyi replied on Wed, 2013/06/05 - 11:03am

Imagine you need to write SRS and specify intended audience, for example software architects, developers, business analysts. Will you write "Intended audience is programmers?"

First of all, it depends who you are talking to. If person is non-technical and have no idea what programming is and how complex is it, then even "programmer" will not help. In France, if you say you are programmer, non-technical people still don't understand. They say "Informatique" for everybody who somehow related to computers ) Neither you are system administrator or software architect, they don't give a shit. Perhaps, you have to call yourself "IT specialist". LOL. It would be even easier to understand than "programmer".

Everything in this life make sense. If you write that avoid you are Lead Developer than it typically mean that you are doing the most complex tasks on the project. If you say that you are Architect than logically you designing (or designed) something, therefore, you have enough analytical skills to provide solution.

To be honest, I am absolutely good with most titles but one I really hate is title "Senior". I know a lot of programmers that after 5 years were calling themselves "Senior" but was total rubbish. And some students were much better. 

Conclusion: don't mix up functional titles, such as architect or lead, with titles that define level, like junior or senior. Junior, middle, senior - they all don't really show your level and are extremely subjective. When you talk to non-technical people use the most self-explanatory word (in different counties it is different). 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.