There was a bit of a discussion on Mastodon and various blogs about how best to call someone who writes code for fun or profit. I’ll spare you the prologue of how this discussion that has been going on since the start of the profession itself: I’m sure you’ve heard it all before. But hearing one of these terms today got me thinking about this, and I thought I’d say what my preferences are.

As someone who writes software for my job and hobby, I personally prefer the term “developer”. I usually call myself a “developer” or “dev” when I’m around a group of my peers. When I’m with lay people, I usually say that I’m a “software developer” as people can associate a developer as one who’s involved with building houses (this has happened to me once). I don’t mind the term “coder” or “programmer” either, but I don’t feel like it fully describes what I actually do, given that about half my job involves things other than code (as much as I dislike that fact).

Officially my role is “engineer” but I don’t really care for the term. The reasons are the same as anyone else that’s got a problem with it, namely the fact that we’re not bound to the same level of accreditation that “real” engineers are (civil, electrical, etc.). But I think my dislike for it also has to do with the fact that the job of a “software engineer” usually involves more than just the “engineering” side of things. There’s design work, planning work, operations, etc. that feel beyond the scope of what could simply be called engineering. I guess one could say that an engineer is required to consider maintenance when they’re designing a structure or electrical circuit, but I feel like us software developers are more involved in the day-to-day operations of things than our “real” engineer counterparts. I could be completely wrong here though: I don’t know a thing about what “real” engineers really get up to, so I probably can’t say.

One term I’ve recently started hearing more is “individual contributor”, and I must say I don’t care for the term. It’s feels so abstract and wishy-washy; so divorced from the actual act of working with the code which, arguably, is a pretty important part of delivering value for a project. I don’t know how this term got so widespread. Maybe is a way of grouping all the activities involved in software development into one noun-phrase. I guess if I’m being charitable, I can see it that way. After all, the existing terms don’t really work as well for doing this (I’m guess that’s why the question was posted on Mastodon in the first place). And yet, I still get this feeling that the existence of this term is to deliberately reduce the importance of value these people deliver, as if we’re interchangeable cogs. It might just be where I see this term, so I could be completely unfair. But that’s how I feel, and it’s for that reason I don’t like using this term.

So that’s pretty much it. All in all I’m generally okay with being called what you’d want me to call, and I won’t call you out if you called me something else (except “Java monkey”, especially since I haven’t work in Java for a few years now). But if I had the choice: call me a “dev”, “developer” or “programmer”; try not to call me a “engineer”; and please don’t call me an “individual contributor”.

And please don’t call me at home. 😛