[SIGCIS-Members] Programmer vs. coder vs. sofware developer vs. software engineer
McMillan, William W
william.mcmillan at cuaa.edu
Mon May 4 08:28:01 PDT 2020
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.
More information about the Members