by Conrad Weisert
November 29, 2005
© 2005 Information Disciplines, Inc.
This article may be circulated freely as long as the copyright notice is included.
Recruiting ads seldom seek programmers and hardly ever seek systems analysts any more. Instead they specify the presumably more inclusive title developer, a professional who is expected to perform all duties associated with specifying, designing, building, and installing a computerized system. But in case you assume that's a higher-level professional calling, note that many of the ads specifically call for a "Java developer", an "Oracle developer", or a developer having some other tool-specific coding skill.1
That doesn't mean, however, that "developer" is just the new term for "programmer". We've noted before with bewilderment the vanishing role of the Systems Analyst in application development, and indeed much recent literature assumes that the functions once performed by the analyst are now, if performed at all, folded into the developer role.2
These very brief definitions are consistent with long-accepted usage:
Update—October 17, 2010
Today's Chicago Tribune Jobs section contained a long article "Software engineers harder to find", reporting growing demand for skilled programmers.
The author mentions the term "developer" seventeen times and "engineer" fourteen times. She refrains from using "programmer" altogether, except in one quote from a source she identifies as a "senior developer".
The article's emphasis is more upon a job-seeker's mastery of certain tools that are popular today, e.g. Ruby on Rails, than upon programming competence.
A computing professional who defines a problem that might be solved by a computerized system.
A computing professional who solves a well-defined problem, usually by means of a computerized system.
Those two roles call for very different skills, experience, interests, and personality. In the rare case where an individual is qualified in both roles, he or she may do systems analysis some of the time and programming some of the time, but should never try to do some mixture of the two at the same time. To assume that any typical developer can perform both roles is unrealistic and sure to lead to failure of any non-trivial project.
Despite all the courses and textbooks on analysis and design, design activities properly belong to programming, not to systems analysis as defined above. The role of programmer as problem solver includes (at least):
I believe the proponents of a developer role agree on including those activities.
As the requirements crisis worsens some of the UML and neo-requirements literature fuels the confusion over "developer":
"The developers are people who will be part of the building effort for the product. The product designers, programmers, testers, systems analysts, technical writers, database designers, and anyone who is somehow involved in the construction."
Robertson & Robertson: Mastering the Requirements Process,
1999, Addison-Wesley, ISBN 0-201-36046-2, p. 36.
So, who should apply for a "developer" opening?
The index in another book from a staffing specialist contains 44 entries for developer, none at all for either programmer or systems analyst! The author has clearly embraced the terminology shift, but she offers no explanation.
A recent search of Dice listings for the Chicago area yielded:
Recent updateFor the ultimate in confusion see What Ever Happened to Our Professional Positions.
I suspect that the switch to "developer" originated in organizations whose understanding of the system development process is shaky. Indeed, I first noticed the term being used at clients that had very little development infrastructure and whose I.T. managers had little I.T. background. Such managers may actually feel threatened by rigor and precision, and hope to avoid facing difficult issues through indefinite commitments and wishful thinking.
How should today's professionals deal with the new terminology? I'm inclined to ignore it, on the grounds that "developer" is far too vague to convey a definite role with definite responsibilities and rigorous measures of performance. When I want to talk about a programmer, a database designer, or a systems analyst, I'll continue to use the exact terms, but if I sense that my audience might misunderstand I'll add enough qualifiers to eliminate that possibility.
What do you think?
Return to table of contents
Last modified May 23, 2012