Professional Engineer (P.E.) is an engineer licensed to offer engineering services to the public. In the US the P.E. process is controlled by state licensing boards. P.E. got it's start from a number of high profile civil & structual engineering failures (i.e., Bridges). If you want to build a house with strange custom trusses you can expect the county building department to require a P.E. structural engineer's stamp on the plans. Generally, requirements are:
- Earn a BS degree in an engineering discipline from an AbEt accredited school.
- Pass the EIT (Engineer In Training) test. EIT is a general review of engineering principles (statics, dynamics, electical, etc').
- Spend 4 years at EIT status, working under the guidance of a ProfessionalEngineer.
- After 4 years, take the final test which includes a discipline specific section.
To date there are no up and running software PE options at any US state. A couple of states (VT ??? & TX ???) have been looking into a
SoftwareEngineering path.
In many states companies that have the term engineer/engineering in their title or offer engineering service to the public are required to have a P.E. on staff. (Is this limited to companies, in particular sole proprietorships or partnerships, whose job it is to offer engineering services to the public? I can think of quite a few companies whose business it is to design, manufacture, market, and sell various products, and who don't offer engineering services to the public, which do contain "Engineering" in the name.) It is quite proper for a non-P.E. engineer to offer electrionic "design services" or pregramming services to the public.
There is also quite a controversy in Canada about the use of the name "engineer" with respect to software and other computing disciplines. Various ProfessionalEngineer associations are trying to force the computing industry to stop using such terms as "SoftwareEngineer" on the grounds that only licensed ProfessionalEngineers can use the name "engineer". Needless to say, the computing industry types aren't complying.
I haven't heard of anyone taking action against "software engineers" for use of the term; at least not here in the
UnitedStates. I have heard of engineering boards going against the occasional janitor who calls themselves a "custodial engineer"--which is just plain silly. Nobody confuses custodial work with engineering, after all. (And what about railroad and ship's engineers, whose job it is to operate and maintain
engines? That's the original meaning of the term "engineer". It's we PencilNeckedGeeks
? who have hijacked the word, after all...) --
ScottJohnson
While you can find many opinions on this wiki against the
ProfessionalEngineer process I would argue that there are solid reasons for developing a software P.E. It is hard to find a life/safety critical product that does not involve software: buildings are built from CAD drawings, fire alarm systems have MicroProcessors
?, even a purely mechanical product such as a ladder is built from parts that are tracked by an inventory system. While software engineering is still evolving, the implications of software failure can extend far beyond the boundaries of software. Having properly trained and licensed engineers in position to understand the implications of a failure is vital to delivering safe products. It is one thing for a programmer to deliver a broken MP3 player because they failed to anticipate a change in FLASH interface, it is quite another to deliver a radiation therapy system that kills patients because the programmer failed to anticipate unusual key press combination from the keyboard. Engineering is not just about the technical details of your specialty, it is also about taking a broader responsibility for your work. If watch a structural engineer, they will design a part so that it can possibly fail and then they will design the rest of they system to handle when that part fails. Even an inventory system could kill. If the wrong grade aluminum stock were delivered to an assembly line it could produce a faulty ladder. For all of these reasons,
SoftwareEngineers need a fully broad engineering education and the support of a professional license. Not every programmer needs to be a P.E., even in civil engineering shops not everyone ha their P.E. --
ScottElliott
I don't think anyone believes it would be a bad thing to have a real P.E. for software. There is real disagreement as to whether or not that is actually possible with todays state of understanding. Some people believe that having a half-baked P.E. today is worse than none at all...
See Also:
SoftwareEngineering,
AfterTheGoldRush,
SteveMcConnell