Professional Software Engineer Exam coming in April 2013
ncees.org
ncees.org
An overview of the exam: http://ncees.org/Documents/Public/Exam%20specifications/PE%2...
Not something I'd feel inclined to get unless this somehow became an industry requirement- which is unlikely - Agile and progressive Software Dev shops are probably throwing up a little bit in their mouths at this thing. Replace Agile with "Extreme Programming" and you've got something that looks like it came straight out of the 90s.
Read what it actually covers and the topics they test and tell me there's something on there that is completely useless.
So, not-UML?
<a><b>something</a></b>
I do say it's not XML.I've worked in waterfall shops. Sections I through V are very similar to what we aspired to do. Look, it's not like this knowledge is worthless. It's just that what is outlined in these sections is a very thorough but expensive ($$$ and labor) and time-consuming process that that when put into practice often insulates itself from the business problem at hand. Just because it looks good on paper does not mean it will look good when you start applying it to the real world with real people.
I'll say this: If you want to participate in an organization that is culturally waterfall and practices waterfall this certification will prove quite valuable. Anywhere else though, and you might give the impression you're not a good "culture fit" for the organization.
That's funny.
Some of them can actually scan you or your friend's internal organs to see if they're alright too - that's not going to be php on a lamp stack. I'm guessing they are probably not moving fast and breaking things either. They may be taking it easy with your friends internal organs, just so they don't get sued by the growing legal community on HN.
There's also all that bizarre software that somehow delivers you to the airport of your choice. I wonder how that happens - do they have their Agile/Waterfall/Kanban/Nonsense boards on their office walls in order to get you there?
Agreed on the pyramid scheme. But the challenges listed strike me as mostly hardware, physics, and non-software science/engineering related. A Waterfall-like process is probably a good fit here since failure is far more costly than project budget/time overruns. Also, didn't the Apollo guidance computer suffer several failures? ;)
To me, software looks like the least-difficult part of the space program. Doesn't mean it's easy. But let's not overstate its importance.
Also, most developers aren't working on mission-critical stuff. I think it's fair to apply the 80/20 rule here.
> Some of them can actually scan you or your friend's internal organs to see if they're alright too - that's not going to be php on a lamp stack. I'm guessing they are probably not moving fast and breaking things either.
Funny you should bring up medical equipment. Recently, a laser caught fire inside a friend-of-a-friend during a bronchoscopy. Had to put him in an induced coma (Happy ending: he pulled through).
Just out of curiosity, does anyone here think there's anything inherit to either mainstream process (Agile, Waterfall) that puts direct controls in place to prevent complexity? Both talk about "Managing complexity" but very little on mitigating complexity. To me and prevention and elimination complexity is something our profession still struggles with.
The content of that exam is like a list of everything that's wrong with industry. Those are problems to be fixed, not things to set in concrete as the way it shall be henceforth.
All that ugly stuff that's wrong with the industry.
We don't have a "software physics".
The last thing I want to see is for some kind of guild to arise, which could ultimately lock down the industry (via government requiring licensing, for instance).
Organizations that create weapons, spaceships, medical equipment and anything that can and will kill you if it has any bugs, needs to enforce quality not by certifying the engineers, but by certifying the organization to follow very rigid quality criteria. Some companies just have it naturally (perhaps Apple is a nice example) some companies need a structure (see things like http://www.sei.cmu.edu/cmmi/)
So if this is not for saving lives, then I don't see any purpose in taking or creating this test.
if you can code, you'll get a job, if your code is bad and has a lot of bugs, our software cycle is so fast you'll be forced to either improve or switch a profession. or work on non critical software.
When individuals ask me for a PE recommendation, I am often reminded in particular of one of the questions from the PPI2PASS FAQ [1]:
Q: I have been in supervision since graduation. I have never performed a single calculation.
A: Oops.
[1] https://ppi2pass.com/faqs/qualifying-to-take-the-licensing-e...
What if the job requires a different language -- does the Engineer's professional certification suddenly become invalid, thus denying him work because of a technicality, even though he otherwise has tons of experience in that language?
Also - that would really fragment the hiring scene. But a bonanza for the testing company.
This isn't something for Web 2.0 programmers, who can carry on as they have been doing. Instead, it's for folks like myself who have designed the clean-room door locking logic for the CDC when contamination is detected (see "Walking Dead" for a grossly exaggerated example of such a system).
I ended up learning VBScript for that job, automating some of the testing, and turning the scripting tool they gave us into a music player.
I don't think the majority of companies hiring programmers will care at all about a PE or even require it. For most programming jobs the varied level of knowledge required to complete the exam probably isn't necessary.
Only if you intend to work for code sweatshops and "consultancies" that value credentialing above track record/experience.
In other words, if you're stuck at the bottom of the programming jobs barrel, it may behoove you to get this. For those of us lucky enough to avoid that fate, we'll spend more time laughing at it than studying it.
If and when such changes are made, I expect the result would be something like the situation for electrical engineers now: a nominal requirement for licensure coupled with broad exemptions that make it practically irrelevant for most people working in the field.
In most states, only a licensed (registered) engineer may use the title “electrical engineer,” practice electrical engineering, or offer electrical engineering services to the public, but there is usually a so-called “industrial exemption” from these requirements; this section of the California Business and Professions Code is typical:
6747. (a) This chapter, except for those provisions
that apply to civil engineers and civil engineering,
shall not apply to the performance of engineering work
by a manufacturing, mining, public utility, research
and development, or other industrial corporation, or
by employees of that corporation, provided that work
is in connection with, or incidental to, the products,
systems, or services of that corporation or its
affiliates.
(b) For purposes of this section, “employees” also
includes consultants, temporary employees, contract
employees, and those persons hired pursuant to third-
party contracts.
As I understand it, this exemption exists because employers convinced the Legislature that corporate liability, including strict liability for product defects, would be an adequate substitute for licensure as a means to protect the public from professional incompetence.Practically speaking, the only electrical engineers who must have licenses are those designing electric power systems for buildings or working for public utilities, which often choose to employ only licensed engineers in positions of responsibility, even when this is not legally required.
As a licensed engineer myself, I’m not sure this state of affairs is best for the public or for the engineering profession, but I’m also not convinced that software engineering, as a discipline, is sufficiently mature that even a nominal requirement for licensure would provide enough real benefits to justify the burden on practitioners.
But it would be nice to have an idea of what other people think is the most important information in each topic they mention in that PDF (as far as passing the exam).
So maybe we should create a wiki where we enter in all of the information people should understand in order to pass the exam?
I created one on Wikia in case anyone is interested.
Also, question, would this PE exam be the last step in obtaining a Software Engineering license, or would it be the only step. If its the last step, exactly what are the other steps? What group would provide a software engineering license? Would there be any point in me passing this exam, since I don't even have a college degree?
If you do not have an ABET degree, then it is still possible to obtain a PE, but the requirements generally go from four years to sixteen years of documented experience.
I may be wrong, I don't think this will be a route for Computer Science. It is more for those individuals who have been programming under other Engineering hats ("controls", "electrical", "mechanical") but now have a way to take an exam that satisfies their actual Engineering work. For instance, I might have fit more under the hat of Software Engineer (since I did a lot of embedded programming), but had to take the Electrical Engineering exam instead due to lack of selection.
The cutoff scores vary by year, but roughly 70% is a good benchmark for passing. Unless you fail, your actual score is not revealed. You can see the pass rates here [1], but not the actual cutoffs.
The major part of the application process is that you will need to work under the direct supervision of a PE, and have increasing levels of documented responsibility, which is often harder to satisfy. Depending on the state, three of the five (minimum) of your recommendations must come from licensed PEs, who need to be able to certify more about you than simply your character.
Usually when threads like this appear, too much emphasis is placed on the exam rather than the requirements that allow you to sit for the exam in the first place. The PE license process is not like a Microsoft or Cisco certification. It took me a good six months to get all the paperwork ready to apply for the exam. I minimally studied for the exam itself. Consequently, four years ends up being more like five or six, in my case, due to less than stellar record keeping.
This exam is for people who work on very difficult, very error-sensitive, very high-end stuff that needs to work from the very start: jet planes, medical devices, spacevessel systems, etc. You don't get second chances with these types of systems, so this exam is focused on making sure passers know the gold standard for how coding is currently done in these areas.
It's ok if your Web app occasionally spits a 500 error or your game crashes once in a while. It's not ok if your radiation therapy machine occasionally flips out and kills people with a massive overdose.