[NTLUG:Discuss] Re: software engineer? -- the term "Engineer" is overused (it's not practical anyway)
Bryan J. Smith
b.j.smith at ieee.org
Thu Jul 29 17:37:05 CDT 2004
The term "engineer" is overused.
- Engineers v. Engineering Technologists v. Technicians
"Engineers" are not practical. They study theory. They design systems
at the physics or numerical-level. They do not configure or install
systems, although they may as a secondary role.
"Engineering Technologists" or "Technicians" are far more practical.
They apply knowledge. They install and tweak the designs engineers come
up with. Many times Technologists or Technicians _know_ more about a
product that the engineer that designed it.
There are typically 1,000 techs to 100 technos to 10 engineers.
Why did I pick 10 engineers?
Well, engineering itself is really just a simplification of science into
a usable art. So there are typically 10 engineers to 1 physicist.
And that's the order. You get "more practial, less specific" on the
side of technology. But as you go more to the "science" end of things,
you get more and more "theory, less practical."
We need physicists to come up with new ideas and materials.
We need engineers to take those and make then into usable technologies.
We need technologists to build the products from these technologies.
And then we need technicians to install and support them.
A technician doesn't not need to know how how crystal lattice structures
form a semiconductor, even though it is at the heart of everything he
uses. But someone _does_ have to know so they can _build_ the unit that
the technician installs!
- Issac Asimov and his Foundation Trilogy
If you don't think so, I recommend you read Asimov's Foundation Trilogy.
People argue everyday that computer engineers don't need to take
semiconductor design, numerical theory and other courses that require an
underlying basis of 2 years of calculus and physics. I mean, computers
design computers these days -- so you just have to train the engineer in
how to use them, right?
Wrong!
I see the same argument on whether or not we should teach our kids long
division anymore now that calculators exist. I agree the student will
rarely ever use long division extensively. Yet if it is not taught the
student will not only not understand the purpose of division, but it
will be _forgotten_ after generations.
Resulting in the breakdown Asimov has predicted.
I am already seeing Asimov's theories coming out in our economy right
now. The United States has been graduating fewer and fewer traditional
engineers since the '80s (at least those that stay in-country).
Engineering has given way to not just Engineering Technology ('80s), but
straight to Technician ('90s). The results are obvious.
- Engineers != Practical
"Software Engineering" encompasses far more than just writing software.
It encompasses the development process, release control and, more
importantly, post-release support. But most important are the ethics
and laws involved as a "Professional Engineer" is considered
_criminally_liable_ for negligence.
I don't know why people want to be called an engineer.
You don't have to be an engineer to write great software. You don't
have to follow the software engineering process to have excellent
products. Arguing that you are a "software engineer" is pointless,
because the title is more about "liability" than actual "capability."
Being a Professional Engineer licensed under the Software Engineering
discipline means you guarantee, under penalty of _criminal_ law, that
you will follow guidelines to ensure _public_safety_.
- Texas was first to recognize Software as a formal discipline
Texas was one of the first states to recognize Software Engineering as a
formal engineering discipline. Not because the Texas Board of
Professional Engineers (BoPE) wanted to "screw people over" or make a
"good'ole boys club." It was because the safety of people finally
became an issue has software controls _everything_ these days -- from
elevators to HVAC to financial systems and networks.
No offense, but whenever someone says "I'm a network engineer," I
respond with, "Really? What products have you designed?"
Examples of my point ...
- Civil Engineering
Engr: Civil Engineers design bridges and seal them as safe.
ETechno: The Land Surveyors and Civil Engineer Technologists can modify
and layout them out to engineering spec.
Techni: The construction workers build them to technical spec.
Just because a construction worker knows how to run a transit, use a
theodolite or a level doesn't mean they know how to it to code or
standards. In fact, most I have met are not concerned with accuracy or
precision, and are often way off. They have no liability if they do.
And they hold civil engineers and land surveyors in general distain.
- Electrical Engineering
Engr: Electrical Engineers design microcontrollers, ASICs and IC cores.
ETechno: EE Technologists can modify them and lay them out on a PCB to
engineering spec.
Techni: IT Professionals install networking equipment to technical
spec.
Just because an IT Professional might know how to use a solder iron or
even the detailed specifications of a microprocessor doesn't mean they
know anything about how to design one. My favorite example of this is
the "Generation Digital" _farce_. _Everything_ is still 100% analog.
<arrogance>
When the speed of light can't even cross 1/100th of a chip a clock
cycle, let alone the _massive_ EMF generated with the fall of a clock,
you can be _damn_sure_ you have to have a _strong_foundation_ in
advanced differential equations with trignometry to understand WTF is
going on!
Analog EE is considered the "most difficult" of engineering disciplines
with a level that rivals mechanical engineering (ME) of the rocket
science level.
[SIDE NOTE: Coincidentally, some of the greatest ME inventions have
been by EEs, and vice-versa. Because the underlying theories between
momentum-normal and and eletromagnetic-field cross in the academic
simularities of the normal and field. ]
</arrogance>
- Software Engineering
Engr: Software Engineers typically design the algorithms but, more
importantly, do the all important risk analysis and mitigation
ETechno: These are typically the best coders, and get the job done
(just like land surveyors and EE Technologists)
Techni: These are the grunt programmers that are tasked by the above.
Do you need a software engineer on every project? No. No more than you
need a civil engineer when you want to put in new set of cubicles. But
if you are going to build the control systems for an elevator or a
nuclear power plant, many states are now requiring a licensed PE oversee
the project.
Ohio's First Energy is getting drilled right now over this with their 2
public "viruses in the controls network" fiascos. Apparently it was the
IT staff that allowed remote access into the control systems network,
despite repeated warnings by the professional engineers on-site.
- "Assembler" is _not_ the "lowest form of computing"
One of my _perfect_ examples are those self-proclaiming "software
engineers" who thing assembly is "as low as you go." Not only is
writing in assembler _futile_ these days, you can typially _never_
outwit the engineer who designed the chip.
The idea of an the base "instruction set" of a processor is _not_
_native_ to how a microprocessor really works -- especially today's
superscalar, long pipes. But with the invention of the C compiler, the
layer of "abstraction" between a "programmer" and a more formal
"computer engineer" could be bridged.
When you use an optimizing C compiler, you are basically getting code
like it was written in assembly by the engineering team who designed the
chip. Because opcodes and instructions are actually an _inefficient_
way to code a chip -- but programming is such an established practice we
can't expect technicians to have the technologist or engineering
- A PE is the direct equivalent to a MD or PA
A Professional Engineering (PE) license indicates a combined 10 years of
education and experience, just like a Medical Doctor (MD) or Attorney
(PA).
But as the British discovered, the measly 2 year internship of a MD or
PA was _not_enough_ for an engineer. An engineer needs more "practical"
interaction with technologists and technicians in a 4-5 year internship.
[ SIDE NOTE: In fact, engineering is a discipline where the must
"learn" from _experienced_ technologists and technicians, as well as
other engineers. It would be _great_ if MDs and PAs had to do the same
with _experienced_ nurses or paralegals. ]
The British moved the "Engineering Core and Specialty" into an
undergraduate program. If you major in Engineering at a university, you
will not have a "general 60 hours" your first 2 years, but a
"Pre-Engineering Core" that was previously the last 2 years of your
undergraduate in the old Roman-French engineer/doctor/lawyer.
That's why engineering colleges are _separate_ at universities. They do
_not_ have a 60 hour "general studies" program in them.
The American Accreditation Board of Engineering and Technology (ABET) is
the respected organization by state boards to ensure engineering
programs are teaching to the level of an advanced program condensed at
an undergraduate college.
Graduation and passing the "Fundamentals of Engineering" (FE) exam which
grants the certification of an "Engineering Intern" (EI) begins the 4-5
year intership. A person can become a candidate for the PE after this
internship, which involves a 4-month review process of interviews,
references, etc...
The _extensive_ peer-review of a candidate for the PE license is what I
cannot find _anywhere_ in the technology field -- period! The CISSP
doesn't even come close. Furthermore, as I stated before, accepting the
responsibility of becoming a PE means you are now _criminally_liable_
for your practice, just an MD or PA.
Which is one of the _major_reasons_ state BoPE's sue Microsoft and
Novell. Because they become innudated with malpractice claims from
private citizens who call the board about CNEs and MCSEs (these have
gone down in more recent years as more people become aware).
- Substituting Experience for Education
Most Profesional Engineering Boards _will_ let you substitute 12 years
of experience for the 4-5 years of education. The theory is that you
can gain much of the academics of engineering with experience.
Remember, academics is just the teaching of
For example, if you are a bookkeeper for 12 years, you will eventually
understand the principals of elementary differential and integral
calculus (limits, variable slope, variable summation, etc...) that an
accountant is taught.
-- Bryan J. Smith
Son of a licensed Florida Professional Land Surveyor (PLS)
Florida Certified Engineering Intern (EI), Computer Engineering
P.S. I have _no_love_ for the largely "bridge builder" BoPEs. The IEEE
and NCEES have introduced "Software Engineering" specific courseware and
exams for them and the state BoPEs _refuse_ to offer it! Those old
civil engineering geezers "just don't ge tit."
That means I have to take ELE or Control Systems exams. That's just
_stupid_ to recognize Software Engineering as a discipline, but not
offer a test for it -- even though the IEEE and the NCEES have developed
everything needed. Really sad.
--
Discussing distributions is like discussing political parties.
Not only do they enflame people, but they often break down into
sets of blind assumptions. Instead, people should focus on the
specific details of underlying technologies, just like one
should when it comes to specific terms in legislation. Because
the similarities are often more surprising than the differences.
----------------------------------------------------------------
Bryan J. Smith, E.I. b.j.smith at ieee.org
More information about the Discuss
mailing list