Fog Creek Software
Discussion Board




Engineering

Software Engineer is a term used frequently in the computing world. The term is dervied from Engineer or Engineering.

Where do I find more about this term "Engineering" without going into specifics of its types.

Thanks,

artist
Monday, June 14, 2004

http://dictionary.reference.com/search?q=engineering

Yo
Monday, June 14, 2004

I think someone who realy loves computers would study electronics not just software. If you know your electronics knowing software should be easy and actually needed with modern electronics.

somemorone
Monday, June 14, 2004

It is not just the definition, I like to see something more. which can discuss the principles of engineering and see it reflected in different practices.

Some sites for reference:
http://www.greatachievements.org/greatachievements/
http://www.aes.org/

Thanks.

artist
Monday, June 14, 2004

The humorous thing is, "engineer" in most parts of the US is a defined professional title with specific academic, testing and work history requirements. The usual progression is: engineering degree from accredited university; work at company that sponsors engineers in training; apply for PE (professional engineer) title; take PE tests. It's a multi year process.

I have an electrical engineering degree (a BSEE). Yet I cannot legally call myself an "engineer" as an independent professional role because I lack the PE designation. Even as close as I am to that designation. If I were to put that title in advertising, the state could and should shut me down.

So I see high school and college dropouts and people lacking any engineering background whatsoever, calling themselves software engineers. I worked with a really defensive dweeb a few years ago, a CS major, who nervously and consistently made sure that I knew that he considered himself "an engineer".

PE designation mainly is needed for public works projects, road and power plant construction for instance. In the SW realm it's useless.

Sometime I'm gonna drop a dime on the lot of people calling themselves "engineers" that I see locally. Sometime.

Bored Bystander
Monday, June 14, 2004

Classically, the idea behind "Engineering" is "Applied Science".  That is, Science is concerned with the search and study for natural Principles -- how the universe works.  Engineering is concerned with applying those Principles to produce useful artifacts.

The most 'concrete' Engineering tends to be associated with construction -- aka 'Civil Engineering', bridges, houses, skyscrapers.  This area applies the principles of stress and strain, the properties of construction materials -- concrete, steel, glass.

Next is 'Mechanical Engineering' -- producing useful machines which translate energy into motion and vice-versa.  Typical energies are heat and pressure.  Typical examples are automobiles, airplanes, engines of any kind.

Electrical Engineering is concerned with several areas.  One is generation and distribution of electricity -- power plants, power lines, transformers.  One is Radio Frequency (RF) application -- radio, TV.  One is Digital Electronics -- switching speeds of transistors, Integrated Circuit design and construction.

I'm sure there are others I'm leaving out (Aerospace Engineering, Nuclear Power Plant, etc) but for me these are three key disciplines that produce products people interact with on a daily basis.

Software Engineering seeks to apply the principles of other Engineering disciplines.  So far, we've had limited success.  The 'Science' behind software is still evolving.  A consensus behind what fits into the discipline is still evolving.  The definitions of 'good' and 'quality' are still evolving. 

Unlike the other disciplines, every software product tends to be largely unique, and the way it is produced keeps evolving.  Also, the complexity and changeability of software products continues to increase.

So, we continue to evolve the process of Software Engineering.  Someday, it will reach the maturity of other Engineering Disciplines.  Meanwhile, we continue to evolve the techniques and understandings needed to make this a 'true' discipline.

AllanL5
Monday, June 14, 2004

The topic of "Engineering" as a metaphor for programming was discussed extensively at -
http://www.perlmonks.org/index.pl?node_id=314940

Jeff Zucker
Monday, June 14, 2004

I had a few machines co-located at Exodus back in the boom days. Exodus kept referring to their technicians as "Network Engineers". We called them 'BootBots. You called them up, and the best they could do to help was reboot our system.

Ori Berger
Monday, June 14, 2004

To play devil's advocate, if a group of runners decided that they wanted a monpoly over running, and they got the government to bequeath them the title of "Professional Runners", does it mean that you aren't running when you put on a pair of shoes and quickly move your legs? Are you not a runner? You may not be a "Professional Runner"TM(R), but the idea that you aren't a runner is absurd.

We all know that most software practioners are not practicing computer science, but rather computer/software engineering. Whether or not they are professional engineers is an entirely different matter.

As an aside, the Professional Engineers of Ontario tried to get Microsoft to drop "Engineer" from the MCSE designation, and while Microsoft backed down temporarily (because of the implied threat that no one can be an engineer but a professional engineer), they later decided that the PEO was toothless at co-opting a dictionary word. Last I've heard Microsoft hasn't been forced to comply with their request.

Dennis Forbes
Monday, June 14, 2004

The word "Engineering" has, in the last 10 years or so, lost all of its credibility. You need an MD "Doctor" to sign your perscription, and you need a civil "Engineer" to sign your building plans.

In some professions, you are required, due to the risk to others, to have certifications. This is true for medicine, law and some forms of engineering.

A hairdresser calling himself a "hair doctor" is not really a doctor. A network administrator calling himself a "network engineer" is not really an engineer, EVEN THOUGH this has become common practice.

Ori Berger
Monday, June 14, 2004

I know a kid who is "just" a snot nosed Perl-script kiddie with no other IT or engineering experience. His sig on mailing lists says "interaction engineer" as job title.

The closest this jerk gets to "engineering" is concocting new nipple rings.  :-(

Bored Bystander
Monday, June 14, 2004

I think it all went downhill when we started hearing about "Sanitation Engineers" <g>.

Mr. Analogy
Monday, June 14, 2004

To be an engineer is a special thing. Not everyone has the talent. The same goes for those people gifted at writing good software. This has nothing to do with passing four years of tests at university.


Monday, June 14, 2004

AllanL5 gave a good explanation.

The other major branch of engineering to mention is Chemical Engineering. This applies the sciences of chemistry and flowing materials to the production of practically everything used in the modern world: water, gasoline, food, paints, plastics, pharmaceuticals, detergents, industrial gases, electronic devices, lubricants, batteries, coatings, bathroom products, dyes, solvents, etc. etc.

Ian
Monday, June 14, 2004

AllanL5 sounds like he has never developed any significant software in his life, and is possibly still within the halls of his engineering academy, where he's just looked up the faculty handbook. "Engineering is ..."


Monday, June 14, 2004

Actually, I've been developing significant software, in various languages including 'C', since 1983.  Just because an explanation is simple, doesn't mean it was simple to make.

AllanL5
Tuesday, June 15, 2004

What makes you think I thought your explanation was simple? It was a poor explanation, of the type that dumb engineers put in their Faculty handbooks year after year.

Mechanical Engineering is this, Electrical Engineering is this ..., when the reality is different from the neat categories they would like to see.


Wednesday, June 16, 2004

*  Recent Topics

*  Fog Creek Home