views:

396

answers:

4

A similar question has been discussed in Programmer vs. software engineer but most of the responses miss the essential point, which is - what is engineering. The standard definition is:

The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.

At the same time (see Lack of knowledge of fundamentals) it seems that many of today's software development 'CRUD' jobs, which may be as high as 80% of the market, do not require a formal engineering background, such as knowledge of scientific principles.

Therefore, the questions are - should the IT industry rationalize and standardize all of the job titles according to a formal scheme? Are there any dangers in keeping the current job title soup? Is it objectionable to put in the same category the software developers who know the fundamentals with the ones who don't? Is software engineering very different from other engineering branches when it comes to application of scientific principles?

+4  A: 

Good question.

The word "engineer" has a special legal meaning in most jurisdictions. It does not only mean what you said but also implies a infrastructure for acknowledging and licensing competent engineers (ones who fulfill criteria of education and pass formal examination, for instance).

The need for a similar infrastructure for software engineering is disputed. I guess that when you say standardize you mean creating such a thing.

The pros usually given are the standardization of the profession, in terms of requirements, licensing, etc. The cons are unnecessary burden put on professionals to maintain such a infrastructure (licensing boards, professional associations, etc) and the inability to guarantee that a licensed professional´s work will be of quality.

The irony, I think, are that these pros and cons are the same for every each other engineering discipline, and there was not much discussion when the first engineering boards were formed. My theory is that those were created with a guild-like quality that was proper of the time, and nowadays guilds in that sense, are out of fashion.

As to the dangers of the current title soup, it certainly is not a pleasant situation, but I see no other way to settle it for all, other than software engineering being treated as a regular engineering discipline. If such a thing does happen tough software engineering would have to be in a class of its own, because the scientific principles it applies is computer science, rather than physics and chemistry, as other engineering disciplines.

David Reis
+2  A: 
should the IT industry rationalize and standardize all of the job titles

no, that would be silly. The job title "web developer" did not exist fifteen years ago. I imagine that in another ten years it will be as meaningless as the 'standard' job title "Programmer III" is today.

"standardizing" things that are evolving is counter-productive. Embrace the chaos, flow with the change, give the world time to self-rearrangeTM

Steven A. Lowe
So is 'web developer' necessarily a software engineer? What differentiates the two?
Andrew from NZSG
web developers can be software engineers and vice-versa, or both can be neither; what's the point?
Steven A. Lowe
What I'm pointing at is that engineers should be able to pick up technologies/tools (such as web development) much quicker than non-engineers can pick up fundamentals.
Andrew from NZSG
@[Andrew from NZSG]: and musicians can pick up instruments faster than non-musicians. i still don't get your point - the question was about standardizing job titles
Steven A. Lowe
"The job title "web developer" did not exist fifteen years ago"But the unofficial title of a 'software technician' or 'CRUD monkey' or 'Joe Quick-n-dirty' existed for a long time and will exit for a long time. The current job soup is due to dependencies on tools/technologies, rather than ability.
Andrew from NZSG
@[Andrew from NZSG]: i can definitely agree with that, but am not sure what could or should be done about it. CS is not stable enough for everyone to know a standard set of tools fresh out of school...
Steven A. Lowe
+3  A: 

I think so. Software Engineering is still emerging as discipline in the context of true engineering. Many people, including some of the top software engineers think that we are still more in a craft phase of evolution rather than a matured engineering phase.

Prospects for an Engineering Discipline of Software by Mary Shaw.

An Engineer IMHO builds things that have a high degree of certainty based of scientific/mathematical principles. Your standard coder working on business apps does not do this. I guess a good analogy would be programmers/developers are alchemists whereas engineers are chemists.

Daniel Auger
A: 

Within IT there may exist some scheme to order things but there may be cultural differences between say the U.S. and India about how various titles are interpreted and why would software engineers outside of IT be exempt from this?

The current job title soup will continue to exist as long as there isn't some heavy group, like a tech mafia, enforcing some rules to say that this job is this type, etc. Consider that some immigration laws have specific job titles that have to be considered here, e.g. in the US there is "Software Design Engineer" that is on a list of occupations for some work visas how would this be cleared up if there was a formal scheme? I'd like to see that get through Congress without being radically reshapened.

Some of software engineering is still in its infancy if you think about how long bridges or buildings have been built compared to various older computer systems that didn't have the power that today's machines seem to carry in abundance.

JB King

related questions