3 ms·
I don't think this article describes a new thing. I got my first real job as a Programmer/Analyst (that was the entry-level title) back in 1979, at Nike. In les
by gregjor 2y ago
I don't think this article describes a new thing. I got my first real job as a Programmer/Analyst (that was the entry-level title) back in 1979, at Nike. In less than two years I got promoted to Senior Programmer/Analyst. I clearly didn't count as "senior" in the industry at large, but within the logistics/inventory group at Nike I had significant seniority. Like at a lot of companies titles corresponded to pay ranges, so a raise came with a new title.
Back then Nike laid out their business cards vertically. When I got my new cards the title read "Senior Prog/Anal," a title I still cherish. My manager noticed and had the cards reprinted with the title on two lines.
I got a Senior title at my next job, and by 23 I got named Manager and reported to the CTO at a mid-size logistics company. All of the programmers there got Senior in their title. I have worked with people all through my career who had inflated and meaningless titles.
At some point in my career I realized titles don't communicate anything meaningful. I started using Programmer. Even now with 40+ years experience I use Programmer if I have to give a title. That at least describes what I do most of the time.
I have never willingly called myself an "engineer," though I have worked at places that called all of their programmers "engineers." That seems like stolen valor to me, I didn't get an engineering degree and I don't think of programming as an engineering discipline.
Every company has its own hierarchy of titles, but those don't correspond to other companies. I got asked in an interview once why I hadn't made it to senior after so many years in the business, I just laughed and said I made senior at 21 after two years working, and didn't think titles said much -- my actual experience speaks for itself.
- smelendez 2y agoI’ve always thought that “senior” has evolved to be a relatively, well, junior title because you don’t want to give it to anyone potentially perceived as old, which could be legally problematic or just awkward.
- gregjor 2y agoI think people understand that "senior" can have different meanings depending on the context. As an actual senior (over 60 years old) I don't take offense -- give me the senior discount! As part of a job title "Senior" doesn't mean anything, and probably never did, but it certainly never referred to age.
- AlotOfReading 2y ago> That seems like stolen valor to me, I didn't get an engineering degree and I don't think of programming as an engineering discipline. I don't think of software as solely an engineering discipline either, but domains within it are certainly "engineering"-ish. I work all day with "proper" engineers doing an essentially similar job. If we call it something else, that implies the terms aren't identical. If they're not identical, what semantic differences are being conveyed, since both sets of titles refer to jobs sharing the same ultimate responsibilities for the results? When does this become a stolen valor situation?
- gregjor 2y agoEngineers get degrees in engineering, have to pass tests to work in their field, and get required ongoing education to stay current. Not every engineer but in general the title "engineer" connotes a minimum amount of education, credentials, exams, etc. that don't exist in the programming world. I think of engineering disciplines as fields that have documented knowledge and processes that lead to predictable and repeatable results. In my experience programming defies accurate (or even useful) prediction, and we fail to replicate success reliably. I agree that programming has some engineering-ish aspects, some things we understand better than others, but we mostly fall down as a field producing predictable software. I think those "failures" come from the nature of programming as an idiosyncratic craft, a field too big with too many specializations to master in a lifetime, and a constantly-changing landscape of hardware, languages, tools, frameworks, and so on. And programmers very often work with vague, incomplete, and shifting requirements -- something engineers have better processes for. A bridge or a building or a road gets planned out to a level of detail that similarly large software projects do not. If a programmer wants to call themselves an engineer, I don't mind, and I understand how that means something different than electrical engineer or civil engineer. I have always found "programmer" sufficient to describe what I do.
- tjr 2y agoHaving worked in aerospace software for decades, I believe that software engineering exists. I also realize most software projects don't have (or need) that level of planning or rigor.
- unscaled 2y agoI doubt this was ever a thing at all. I think the author falls to the common nostalgia trap of an imagined "perfect" past that has degraded somehow. It's a trap all human beings easily fall into, so I wouldn't blame him, but I fail to remember any such period from my career or older historical accounts that titles were reliably and consistently meaningful across the industry. The moment you've got more than a handful of companies doing software, each company will do its own thing with the titles it gives — and there are few incentives (if any) to heavily gatekeep titles with a complex and hard-to-implement certification process. And if a company does end up implementing some sort of certification anyway, it would be specific for that particular company and not something that's relevant for the entire industry. I would even argue that's not just the case for software, but for any industry that is not regulated by the state or by a mandatory certifying body such as law, accounting and medicine — and even in those industries, the standardized certificates you get are generally limited to a fairly entry level. The only imagined past where career progression was strongly regulated that I can think of is European Professional guilds in the late Middle Ages through the Early Modern period, where you'd often apprentice for 7 years or so before attaining the title of Journeyman, and then you would have to wait anything between 10 to 20 years to never (the most common result) before you obtain the necessary funds and approval to become a master and practice on your own. I'm not sure there is any point going back to THAT system.
- gregjor 2y agoThe guild system lives on in a way in the skilled trades. An electrician or plumber goes through specific career stages. My son apprenticed learning how to make beer. It also lives on in the military. I think programming would benefit from an apprenticeship stage -- I had great mentors assigned to me early in my career but that seems to have gone away. The meritocratic nature of programming attracted me to it (as a young nerd with an incomplete degree in military history). If you could do the work you got paid and promoted, and companies would put in the effort to train and mentor juniors back in the day (or maybe I got lucky and feel nostalgic for an imaginary past). I saw the credential craze come and then mostly fade away (I got Oracle, Novell, and DEC certifications). Now I see companies insisting on CS degrees. My early programming heroes didn't seem to use titles -- Dennis Ritchie, Ken Thompson, Brian Kernighan. I suppose Bell Labs gave them titles but when I read their papers they just used their names. Rob Pike calls himself a programmer -- when he presented Go at OSCON a long time ago he introduced himself as a "programmer at Google." Maybe a humblebrag, but if you can walk the walk you don't need to show off with a fancy title. I think we shouldn't get hung up on titles, or use them to gatekeep or judge.
- davedx 2y agoYup. I worked 3 years and 10 months (yes I just checked) before I was first hired as a "Senior Software Engineer", by a very normal desktop publishing development company, in 2007. Not via LinkedIn, nobody I knew was on it back then. I wasn't expected to be some "visionary architect" (lol), just competent enough to get the job done without hand holding. Which (spoiler alert!) I was able to do, had a good run at that company and then for the next 17 odd years I've stayed a "senior engineer" at many other companies. When I've been in hiring we've always based seniority on how we evaluated their skills and experience, not how long they've worked in the job.
- Intermernet 2y agoIn Australia the term "engineer" wasn't really used for software until relatively recently. I've been in tech for almost 30 years and have been a sys admin, network admin, db admin, developer, manager, product lead, consultant etc. I have experience in many languages, platforms and technologies and have worn many hats. I now just call myself a developer. But I also only program for fun these days.
- hyperman1 2y agoFor the 'stolen valor' thing: This blog post goes deep into the question of wether we are engineers, as answered by 'crossovers', ex engineers who now work in software. https://www.hillelwayne.com/post/are-we-really-engineers/ https://www.hillelwayne.com/post/are-we-really-engineers/
- gregjor 2y agoWow, a very long rationalization. No one “is” an engineer. People use that title to communicate something, and the title may or may not accurately describe their skills or the work they do. One thing the article makes clear: the title “engineer” doesn’t mean anything specific outside of the software business either. It comes from tradition and maybe laws and regulations. People can use whatever title they want, makes no difference to me. I choose Programmer. I don’t give it much thought and don’t see any reason to come up with justifications either way. The work looks the same no matter what goes on the business card. For the large majority of people working with software, choosing programmer, developer, engineer, architect, or code ninja amounts to a distinction without a difference.