Ask the pissed off engineer.

** polite applause for Race Bannon

Well let’s thank everyone for everything too. I was only responding directly to the power-plant thank-you post.

And I know quite a few PEs who work in the software, microprocessor, networking, and manufacturing industry. Before my current career, I worked with many of them. In fact, I’ve looked at another job recently involving manufacturing and programming which requires the PE.

Not really. Every time a new security hole is found in Windows or IE it seems to make front-page news in computer circles, and sometimes even the nightly news will report a major enough Outlook or IE security hole. Or virus vulnerability. Software like IE and Windows are becoming so pervasive to our lives that they have taken on the relative importance of the aforementioned dam and power station.

Plus, I know of many serious power station incidents, involving deaths and catastrophe, which never make the papers.

In support…since this is my specific career field, I can assure that anything like this offered to power plants for control systems, performance monitoring, predictive maintenance, neural networking, continuous emissions monitoring, and/or fuel and inventory management and analysis is checked over by PEs. I’ve personally been involved in many, many projects like this…

Yeah, And didn’t understand what it was they were looking at either. :rolleyes:

Unless you grant that programmers are real engineers Don’t expect your professional civil engineer/electrical enginer who isn’t a professional programmer to grok the code. That just isn’t going to happen.

It takes more time to grok someone else’s code than it did to write it in the first place. Either your PE’s are the authors of the code, or they don’t really understand it.

We have a winner.

That has to be the most simultaneously insulting and ignorant post in the entire thread.

Either you’re assuming an awful lot, or you’ve never worked professionally on engineering software. Well, I have worked on it - for more than 10 years. PE’s who don’t understand programming - surprise - are not the ones that look over the code.

And if one’s source is so hideous and poorly-documented that it takes more time to understand it than to re-write it, then I’d love to see how one gets ISO-9000 certified. Or employed to write engineering software in the first place - since by its very definition, it is software that must be checked over and verified - or else people could get hurt, or die (especially in PLC and SLC ladder-logic programming). This is one reason my company’s attempt to hire “ultra-cheap Indian PhD’s in Bangalore! They work for pennies an hour!” didn’t work - no one could check or understand what the fuck they were doing. Flush another half-mil down the crapper…

The PE’s I know who look over engineering software have forgotten more about programming than most “professional” programmers. The people that do what I do are either dual or multiple-degreed and work in straight engineering/programming-IT on about a 50-50 basis. They are highly paid and very sought-after people who are truly know what they are doing.

In addition to the code itself, there is also testing of the code and its results. And I can assure you that you do not need to know anything about virtual functions or polymorphism to test if program output does a proper PTC 4.1 calculation, or if steam tables calculate properly.

This brings up another side topic - don’t programmers get tired of anyone with opposable digits who can write “hello world” or design a web page calling themselves a “programmer”? Don’t you guys feel there should be some restriction of the title, and the classification? And professional licensing? Think about it - I call myself a “programmer” at times, especially since I am a multi-million line of code veteran. And I’ve never met any CS grad out of school whose abilities were even close to mine, MS or PhD notwithstanding. But am I really qualified to present myself as a “programmer”? What proof can I offer that I am “good enough” to be considered a professional? Or that I know and understand professional practice, ethics, and responsibility? :confused:

I’ll concede that. But, either here or in the concurrent GD thread I made the distinction between engineering software (verb phrase) and engineering software (noun phrase). As a noun phrase, ES is software intended to perform engineering functions or to assist live engineers in doing that. So definitely in your example I would expect that real engineers have not only looked it over backwards and forwards, but designed it as well. And the same goes for aircraft controls, missile systems, and so on that were mentioned above.

Gazpacho, your example of the EECS degree seems more like a variant of a BSEE. I always thought that “computer engineering” degrees were more about the design of computers, and less about applications software.

We’ve talked about this before, but it’s a good question. I’m coming around to the idea that we do need some sort of qualification process, but it’s a somewhat different case than with engineers. In programming we still do have a lot of practitioners who come from non-technical backgrounds; one of the best programmers of my experience never even went to college. It’s my impression that long ago, that was the case with many engineers, and they trained up through lower level jobs, and then were able to pass E.I.T. and licensure exams. I think we’d need something similar. A P.I.T. exam would cover basic programming, computer science, and perhaps some business knowledge, since that’s where most of us work. A P.P. exam would focus more on deeper analysis of algorithms, optimization, and so on. It’s been said that programming has too many varied aspects to be corralled into a standard of that sort, but I disagree. One of the things that has always struck me is that there is a similar knowledge base that we all do seem to have, regardless of what our college major is, and the longer you program, the less your degree matters.

IANAE, and I regularly fight with my “superiors” who wish to put that on my business card. I’ve been extremely lucky in my lifetime to know several fine engineers whom I respect highly. ( I don’t know Anthracite personally, but I get the impression that Anthracite falls squarely into that category, for instance.)

I have not completed any course and received any degree, though I think I might make all the requirements for an associates in mechanical engineering tech. I have hundreds and hundreds of hours of college credit. Of course some of those credits are over twenty five years old!!

I have completed, and can call myself, legally, a journeyman millwright. A journeyman machinist. A journeyman electrician.

I have done enough cabinetmaking that i can hold my own with master cabinetmakers. I’ve built a few homes in my spare time.

I currently do robotics and industrial automation systems. As a very small part of my job, I do a lot of heavy enginnering-type calculations- like calculating the thermal expansion of thousands of different individual welded joints in structures over an eighth of a mile long. FEA of fixturing systems. Moment loads and dynamic analysis of robotic arms. Because of the nature of my gig, I never ever do the same sort of thing twice; each new job brings with it completely new challenges.

I also do systems programming. Control troubleshoot and repair. Safety analysis so the robotic systems I design will pass the safety standards required by the Robotics Industries Association.
So don’t call me an engineer. It makes light of my abilities, and pisses me off.

b.

One of the reasons I don’t call myself a “programmer”, and sometimes usurp the “engineer” title. Another reason is that “programming” is a small part of the task. I do design documents, participate in standards discussions, negotiate deliverables with other, er, “engineers”, do project management, etc.

And I wouldn’t usurp the title if it didn’t seem to be common practice, both in my professional and non-professional environment. Otherwise, I would be being an ass. Actually, I call myself a “developer” when talking to somebody in the industry who knows what that means, or something more specific to my current role, if I need to give myself a bit of cachet (I’ve been doing this stuff long enough that my role de jour is usually “architect” or “project lead”). Contrary to what has been said, I DO hear a lot of people in my racket refer to themselves as “engineers”. My neighbor says he’s an engineer at HP. Actually, he programs. I have a regular Teusday social event I go to, and a bunch from Apple that I know there always claims to be a group of “engineers” from Apple - I don’t think any of them design Apple hardware. Lest you think this is somehow confined to hardware companies, “engineer” was very prevalent in informal conversation during my stint at Macromedia, attached to people who tweaked with authoring tools for a living.

When I call myself an engineer, I will attach “SOFTWARE engineer” basically to avoid confusing myself with people who design bridges or automobiles as opposed to servers or word processors. And let me emphasize that it is NOT because I wish to demean those professions - quite the opposite. My intent in attaching the adjective is to respect them by trying to make it clear what my actual position is in terms people understand without claiming something I’m not.

I’d use something else in casual conversation if I thought anything was suitable. I didn’t always. I remember a “we aren’t programmers” conversation that came up shortly after I started working professionally, say 1980 or so. This would have been at Bell Labs, and ran something like this:

Me: “Well, what do you call yourself then?”

My office mate: “An engineer.”

Me: “But, what we do is write software.”

My office mate: “Yep, software engineering.”

Me: “OK, what do you put under ‘occupation’ on your tax return?”

My office mate: “Software engineer.”

After I while, I started doing it myself.

Truth be told, I think the process of software development deserves to be considered a legitimate engineering discipline. And I’ve wondered from time to time if we are going to eventually HAVE professional licensing. It might be a good thing, in the long run, though there would have to be a grandfather clause to include an awful lot of people currently practicing. Just call me gramps.

Indeed, I believe we got here because of software being an industry that hadn’t matured yet. For quite a while, people doing it either came “up through the ranks” without formal degrees or were basically “renegades” from some other academic discipline, who found themselves futzing with computer programs rather than actually doing work in their nominal fields. The latter was my own path - BA, math, MA, math, MS, industrial engineering. The MS was actually mostly computer science courses, and I never worked a day as, or intended to work as, an actual industrial engineer. It was the odd choice at that time for where my University stuck CS.

Now that we have had the formal degree tracks in place in our academic institutions for some time, it might be the time for the software business to “grow up”, so to speak.

From Javaman

You could get a EECS degree that was mostly about designing computers and such which is mostly what I have. Or you could get it mostly focusing on writing software which my college roommate had. My roomate would not say that he could design computers and I would not say that I was qualified to do software development.

In fact at Cal you can get a CS degree through the college of letters and sciences instead of through the college of engineering. The main difference I can tell between them in the Engineering students have to take a couple of electrical engineering courses.

What the hell are you talking about?

Of course real engineers write code, and “grok” it. And put it online in high-risk applications.

I’ll tell you what’s not going to happen. Take the best (non-engineer) professional programmer, have him right some flight controls code, and have him tell the flight test engineers that they should just take his word that it’s good code - no sense trying to grok it.

That one ain’t gonna fly.

Aside from the potential deaths of innocent men, women, and children, there’s that whole legal business too. Until or unless software engineers have the same legal exposure as a PE does, they are always going to need to justify their work to a PE on any act covered by the laws which pertain to designs and concsulting offered or for the general public.

Yes, I have personally seen source code - faulty Allen Bradley SLC logic that caused an actuator to run at the wrong time, that hurt a person bad enough to send them to the hospital. The code was not checked by anyone at the time, be they programmer, PE, Bulgarian Uber-hacker, or dog catcher. If it had been, someone would have seen that there were not one but two different ways in which a byte overflow on a counter for an optical encoder would result in flipping some directional actuators to reverse at the wrong time. The programmer didn’t - he assumed that a byte overflow would just “stop the program”. I guess he didn’t “grok” his own code. :rolleyes:

But one he was very glad of - he said “Hey, at least my name’s not on any of the source code! They can’t sue me!”

Bitter? You bet I am. If I had written it, it would have been a design or consulting work that I would have had to stamp. You can bet your ass I would have been in court.

Why shouldn’t a programmer providing services like that to the public have been forced to be licensed, and thus held directly and personally responsible for the injury which occured? Why would I treated differently be, if the code was part of a design or consulting? He got off free and clear. Does anyone honestly think a PE would have got off free and clear?

This is where I’m getting at. This guy was a shithead who shouldn’t have been designing ladder logic to monitor a catbox. He should have been held directly responsible. He should have been forced to have been licensed to offer his services to a company directly (he was just a contract programmer). And maybe there ought to be a PE for programmers too. So not just anyone can go out to a company as a contractor and legally say “D00d3! i Am th3 373373 h4x00r! gIv3 m3 $$$$!” :confused:

No, just insecure.

:confused:

what did that mean?

another thought …

part of my definition of engineer:
engineer=scientist
That’s what’s missing from the MSCE. The MSCE is not a scientist.

And, I have written my share of code. I got a big laugh out of that lie.

…unless that well designed application is in a mission-critical system, in which case, very bad things may happen.

I’m a programmer, and have met enough talented engineers to not call myself one, but saying that engineers are the only ones who are in charge of “headine news” issues isn’t quite right.

Professional programmer here (unemployed, but still…).

Yes, there are a hell of a lot of people calling themselves “software engineers” who know next to nothing about software OR engineering, just as there are incompetants in every sphere.

Yes, it annoys me that people write bad code (but, as I have been paid good money to fix the code, I am basically ambivalent about the situation).

As to personal/professional responsibility:

No, individual programmers working for corporations are not held responsible for bugs, even big, expensive, multi-million dollar bugs. The ME’s who designed the fuel tanks in the Pinto weren’t held responsible, nor were the folks who used the brittle-when-hard O-rings on the Challenger.

Independant contractors are usually required to carry E&O insurance by potential clients.

Note: my experience is with real computers (mainframes) - the nature of that workplace (centralized offices, few employers, high education levels required for entry) kept the incompetants pretty much out (yes, I have stories, but pretty much).

With the advent of small, cheap machines, simply everybody is looking for something called a “programmer”, without knowing just what that is. The rush for “certification” programs is an attempt to set minimum standards for knowledge - it’s a start, but a weak one.

And the concept that hardware that produces, but does NOT auto-detect conditions such as “stack overflow” and abort is troubling. That such hardware is being used when lives are on the line is scary, and should be criminal (IMNHO).