[SIGCIS-Members] Programmer vs. coder vs. sofware developer vs. software engineer
McMillan, William W
william.mcmillan at cuaa.edu
Tue May 5 12:50:48 PDT 2020
Thanks to those who sent suggestions for background info on this topic!
My own interest in the history of computing is really more about understanding the present, and my concern about the use and misuse of professional titles, though informed by history, leads to questions such as:
- Why do we call programmers and software developers coders nowadays, when that term has long been used to label those with quite limited intellectual involvement in software development, and even considered to be carrying out a clerical task (as explained well in Nathan's book)?
- Why do we apply the term software engineer to those who can program, but who really know very little about software engineering in the broader sense?
To me this suggests that our society, and the enterprises that create the software we use, have extremely limited understanding of software development and what it entails. This is a failure of those of us who teach computing and software engineering and maybe of professional societies.
The risks to society are immense. Imagine if a machinist or even a self-taught tinkerer could adopt the title mechanical engineer at will and be tasked with designing the critical devices of our civilization. Or if anyone with some knowledge of biochemistry could serve as a pharmacist?
Maybe SIGCIS members don't believe that this topic belongs on this list, but I feel that historians might be better positioned to address it than many in the technical and commercial communities who are consumed by immediate demands, and who have very limited understanding of their profession's past.
OK, end of rant!
From: Members [members-bounces at lists.sigcis.org] on behalf of McMillan, William W [william.mcmillan at cuaa.edu]
Sent: Monday, May 04, 2020 11:28 AM
To: members at sigcis.org
Subject: [SIGCIS-Members] Programmer vs. coder vs. sofware developer vs. software engineer
Hello, SIGCIS folks.
The ruminations below might have little scholarly importance, but I think the subject is interesting at least in regard to the culture of computing.
What do we call people who design and implement computer programs?
Nowadays, the term coder is used, maybe most often. My understanding is that this used to refer to the job of translating a detailed flow chart, which was created by a programmer, into an implementation language. I.e., the coder was sort of like a human compiler who translated a detailed algorithm into a computer language like Fortran, Cobol, or assembly language. The coder didn't design algorithms.
Later, the coder dropped out of the loop and a programmer implemented algorithms directly in a computer language (possibly after creating a flow chart or pseudo-code).
The term software developer has been used, possibly implying that the job is broader than just programming, including gathering requirements, testing, and integration with existing systems.
Starting in the late 1960s, the title software engineer became common. At least initially, this implied a very broad scope, as well as specialized training in requirements analysis, system design, programming style, verification and validation, risk assessment, maintenance techniques, UI design, and other aspects of software development. I believe that Texas even licenses professional engineers in software engineering, and a detailed curriculum has been defined:
The title software engineer implied that the person at least had a solid university course specifically in software engineering, as well as a good foundation in computer science or information systems.
The term systems analyst sometimes implies a similar role, though it might mean something more akin to requirements analysis.
Currently, anyone who writes computer programs might identify as a software engineer, even if he or she has no background beyond computer programming. Companies use the title willy-nilly. This inflates the prestige of the job, I suppose.
At the same time, we call developers coders, which to me sounds like it deflates prestige.
What professionals call themselves does matter. If a medical assistant calls himself a physician, the risks are obvious. If a physician (true software engineer) calls herself a technician (coder), then at least confusion results. Of course governments regulate the use of job titles in medical professions, while software development as it exists today is very libertarian.
Has there been much consideration of the common use of job titles in the history of computing? Certainly there's been a lot of work in the history of software engineering, programming, systems analysis, etc., but I'm asking about the use and misuse of job titles by individuals and organizations.
This email is relayed from members at sigcis.org, the email discussion list of SHOT SIGCIS. Opinions expressed here are those of the member posting and are not reviewed, edited, or endorsed by SIGCIS. The list archives are at http://lists.sigcis.org/pipermail/members-sigcis.org/ and you can change your subscription options at http://lists.sigcis.org/listinfo.cgi/members-sigcis.org
More information about the Members