Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Are Programmers Engineers? 1002

The Llama King writes "The Houston Chronicle has an interesting story about a debate in the Texas Legislature over whether programmers are really engineers. A quote: " 'It's one of the silliest issues we're having to deal with this session, but it's also one of the most important,' said Steven Kester, legislative director of the American Electronics Association, an organization of computer companies." Are you really an engineer? Or just a code-monkey?"
This discussion has been archived. No new comments can be posted.

Are Programmers Engineers?

Comments Filter:
  • Re:Definitely (Score:3, Interesting)

    by Anonymous Coward on Sunday March 30, 2003 @03:56PM (#5627314)
    In this particular case, it also pobably has to do with the safety standards issue. For example, a civil engineer has to certify that the bridge that he designs meets certain minimum safety standards, and will be held professionally liable for it if it doesn't.

    I'm a code-monkey and not an engineer in the sense that I don't think I'd be willing to be held liable for my bugs :)

  • by Amigan ( 25469 ) on Sunday March 30, 2003 @03:57PM (#5627321) Homepage
    If you are a licensed Professional Engineer (PE) in the state of Texas, you can be held liable for any damages on a project. That was the reference to the 1937 project.

    How many 'software' engineers in Texas are willing to put their reputations on the line (and stand up to civil lawsuits) if they have made a coding mistake??
  • by zapp ( 201236 ) on Sunday March 30, 2003 @03:59PM (#5627330)
    - level of involvement
    - size of project
    - mindset

    Level of involvement:
    Are you a system architect? Do you write php or perl on the weekend? I think the answer to those should be obvious. The higher ups who do design the system, and work with what parts fit where, etc, I concider engineers. They need to know the rules, have good practices, and so on.

    Size of project:
    Writing a web-based app is usually not engineer-level work. I'm not putting this on what language you use, but in general anything written in perl/php/other-scripting-language is not engineer-level (a project we just finished at work was written entirely in perl/ksh, so this is not 100% true.)

    Most of all....
    Mindset:
    If you think like an engineer, you are an engineer. If you plan carefuly, and think everything through and treat your product as a full system, you are likely an engineer.
    If you sit down and start typing code, you are likely a code monkey.
  • It all depends ... (Score:5, Interesting)

    by Tensor ( 102132 ) on Sunday March 30, 2003 @03:59PM (#5627331)
    On what you studied, here i took a 5 college year course including physics 1 & 2, thermodynamics, calculs, adv calculus and all the regular programming/db/hw subjects finishing with a work-experience paper presented 6 months after finishing classes to graduate.

    I EARNED the right to be a Software Engineer.

  • by Skyfire ( 43587 ) on Sunday March 30, 2003 @04:02PM (#5627359) Homepage
    yeah, but you do the same stuff as the code-monkey in the cubicle next to you that took courses for 6 months to a year at the local commmunity course
  • By their meaning... (Score:5, Interesting)

    by Duncan3 ( 10537 ) on Sunday March 30, 2003 @04:06PM (#5627386) Homepage
    By their meaning, clearly most poeple are not engineers. That's a clear cut one.

    7/8 of the people working as "coders", that read "Java for waiters" clearly are not engineers either. Also clear cut.

    4 year degree with something on the EE//CS line (I'm right in the middle) and a dozen years in the real world... if you have the degree, and you have the insurance covering your work by yourself or by proxy - which i'm gonna call "licensed" then yea, you're clearly an engineer by THEIR meaning.

    But nothing is more insulting then being considered in the same job category and resume pile as waiter-turned-coder-last-weekend.

    I'd love to see Texas lay the law down on the clueless, and license those of us that really do this for a living. Then all those waiters and such can go back to doing things they can do well.
  • by cybercrap ( 319182 ) on Sunday March 30, 2003 @04:08PM (#5627400)
    Alright, I just recently got my Computer Engineering degree, and I can tell you plane and simple the difference between me and a computer scientist. My education was centered on the design and operation of an actual product like an embedded system or cpu. A computer scienstist at my school, UT, spend most of their time on theory about how to program and such. As an engineer I had very few just plain theory classes, I was constantly working electrical circuit problems.

    I'm not saying that all programmers are concerned with theory, cause I know plenty who aren't, but I know very few engineers who aren't working on designing some aspect of an actual product.
  • Re:Definitely (Score:3, Interesting)

    by Dolphinzilla ( 199489 ) on Sunday March 30, 2003 @04:13PM (#5627432) Journal
    are you an engineer that writes software or a computer science major who does electrical engineering - I have met computer science majors who by all rights I would call Systems Engineers - they had a complete understanding of the hardware at a very low level and how the software makes up these systems of systems - on the other hand I have met computer science majors who were just code monkey's or sys admins who thought what they did was engineering when they plugged a PCI card into a motherboard. The very best software programmers that I have personally met were all Electrical Engineers (and one PhD in Physics who wrote radar signal processing code). I think the trend in Universities offering "software and computer engineering" degrees is telling in this respect - its a grey area.
  • by zangdesign ( 462534 ) on Sunday March 30, 2003 @04:13PM (#5627440) Journal
    Actually, I'd rather be called a Software Developer, since it's more of an evolutionary process, not a fixed science. There are fewer physical principles that drive software development than something like Mechanical or Chemical engineering. There are also way more philosophical ramifications to our job, since software driven computing equipment is so pervasive in our society.

    In fact, I'd rather NOT be called an Engineer, it's kind of demeaning.
  • by 2nesser ( 538763 ) <2nesserNO@SPAMcogeco.ca> on Sunday March 30, 2003 @04:21PM (#5627496) Homepage

    Up here in Canada, the Professional Engineers Ontario [peo.on.ca] have the same outlook WRT engineering.

    Go to school, get a decent background in things other than programming (ie, thermo, materials, control systems, chemistry, calc, discrete math). Then when you graduate you can call yourself an engineer. Oh, what's that, you don't want to put in the time and effort required, then you don't deserve to call yourself an Engineer.

    Another link at the PEO that's intersting is the software page [peo.on.ca].

  • by John Hasler ( 414242 ) on Sunday March 30, 2003 @04:23PM (#5627511) Homepage
    > If you are a licensed Professional Engineer (PE)
    > in the state of Texas, you can be held liable
    > for any damages on a project.

    You are liable for your negligence whether you are licensed or not.

    > How many 'software' engineers in Texas are
    > willing to put their reputations on the line
    > (and stand up to civil lawsuits) if they have
    > made a coding mistake?

    How many software engineers are willing to work as "associates" for low wages for years while the senior partners take all the credit and all the money in hopes of eventually being granted the recommendation they must have in order to get a license?
  • Re:Depends (Score:2, Interesting)

    by Ruds ( 86067 ) on Sunday March 30, 2003 @04:23PM (#5627516) Homepage
    I definitely agree with this breakdown. Just as not everyone who works on hardware is an electrical engineer (e.g. technicians), not everyone who works on software is an engineer.

    I have a degree in electrical engineering, and I've seen the curriculum of undergraduate computer scientists at my alma mater. I would say that CS degrees create the potential for software engineering just as EE degrees create the potential for electrical engineering--the courses provide the framework but do not an engineer make. There's a reason that PE licenses require some work experience as well as passing a test--experience in the field, following correct processes, etc, is a necessity to create an Engineer (sic).

    Just as a note, there is some engineering going on in research institutions as well. I'm currently in the Computer Science graduate program at a research university, and some of the applications research (applying new ideas to particular problems) involves engineering as much as science.

    Matt
  • by soapvox ( 573037 ) on Sunday March 30, 2003 @04:24PM (#5627521)
    Id also have to add that I am a high school drop out and a very successful programmer, I don't think I'd trust a high school drop out to build me a bridge. So to everyone out there. Code Monkeys UNITE!
  • by justzisguy ( 573704 ) on Sunday March 30, 2003 @04:24PM (#5627525)
    Board certified engineers who wish to put their name on a project are required by law to carry (in most cases quite expensive) liability insurrency. I'm currently a CE major getting ready to graduate. If there was a test I could take to earn a stamp that I could use to affix my name to a project, I'd be all for it. Yes, the insurrence would be a pain, but by having a person personally responsible for a project just seems to lend that much more credibility. Impropperly designed HVAC can lead to deaths as discussed in the article just as a collapsing bridge or improperly designed roadway can; so what about computer engineers? Poorly designed hardware/software [ccnr.org] has lead to deaths as well. I would feel better if computer engineers are certified just like the MechEs and CivilEs.
  • Re:Definitely (Score:3, Interesting)

    by ncc74656 ( 45571 ) <scott@alfter.us> on Sunday March 30, 2003 @04:32PM (#5627564) Homepage Journal
    are you an engineer that writes software or a computer science major who does electrical engineering

    To some extent, I would fall into the latter category. My degree has "computer science" printed on it, but I've done custom hardware to solve some problems. When we got some security cameras in that didn't provide for computer control, I reverse-engineered the bundled remote control (just a bunch of switches and resistors, really) and built a replacement control that handles up to 8 cameras and plugs into a USB port. I didn't even build a prototype before having boards made, but when I got the boards back and stuffed all the parts onto one of them, it worked the first time I powered it up. I wish more of my software projects were like that. :-) (In all fairness, though, it really wasn't that complicated a design...the FT245BM [ftdichip.com] takes most of the pain out of working with USB.)

    (I started out majoring in computer engineering, but inattentiveness in class led to some less-than-desirable grades in courses needed for that degree. I switched over to computer science and didn't switch back...hell, I goofed off a bit too much with some upper-level math classes there, too. I started college in 1989, but didn't graduate until 2001.)

  • by blakestah ( 91866 ) <blakestah@gmail.com> on Sunday March 30, 2003 @04:33PM (#5627571) Homepage
    I dunno that such comparisons can be drawn lightly.

    I work with 2 electronics technicians. One carefully thinks things through, architects his designs first, and in general makes as good or better a solution than what I brought to him. He has a technical electronics degree - kinda like a TV repair man.

    The second has a master's in engineering, but is so incompetent I usually choose to do the work myself - it will get done faster, and better. Mostly, it won't need to be re-done is 2 weeks.

    So which is the engineer?

    But really, professionally, engineers need to pass a test upon graduating from college. This is a general test. Then, years later, they can receive professional certification by demonstrating engineering proficiency at their craft - usually by presenting a completed project they led for evaluation by their peers. This process leads to the real deal being called professional engineers.

    I see no problem with the same criteria being applied to programming. Except that few, if any, could pass the first round of tests without academic training in engineering. The certification process needs to be the real deal.

    Let any code monkey say he is training for a PE degree. And, when you really need some programming done, go to someone certified. He will have 5+ years experience, and received the stamp of approval from his peers.
  • Re:Definitely (Score:3, Interesting)

    by bjcubsfan ( 471972 ) <bjpotter@ g m a i l . com> on Sunday March 30, 2003 @04:35PM (#5627593) Homepage
    As an Electrical Engineer, I would like to say that being an EE is in now way the least. It is definately one of the more difficult engineering fields. As far as programmers being engineers, I would say that they can be, but it the main difference is the methodology behind how they write their code.

    In an interview I recently had, a group manager for lockheed martin told me that he prefered to hire people that were educated as electrical engineers to do the programming for his group. He said their methodology made their code better. By the way, he is in charge of programming the targeting and tracking for the weapons systems on F-16s.
  • by Anonymous Coward on Sunday March 30, 2003 @04:40PM (#5627622)
    It does not matter what the "dictionary.com" or "Websters" or "Oxford Unabridged" definition of "Engineer" is.

    The state of Texas has codified a definition of the word "Engineer" and who may use the word as part of a title as applied in the State of Texas. This supercedes all other definitions when used in the State of Texas.

    It doesn't matter what you think the definition is, or what you want the definition to be, because in Texas it is what the Texas Legislature has defined it to be.

    JD
  • by mrybczyn ( 515205 ) on Sunday March 30, 2003 @04:40PM (#5627625)
    If organizations such as the ACM, ACL, ALP, CRA, ISOC, and the various national associations were to combine forces and come up with accreditation and standards for "Software Professionals", we might get somewhere. An accredited computer science degree, followed up by specialized examination in a particular field, should yield professional standing just as much as a medical, engineering, or law degree.

    Currently, the software engineering we see growing out of the traditional engineering culture is not sufficient or inclusive. Engineers do not make good computer scientists.
  • by son_of_asdf ( 598521 ) on Sunday March 30, 2003 @04:42PM (#5627638)
    This question could also be applied to those of us that are A/V "engineers" as well as coders/software "engineers". Within A/V circles, if you know how to use the equipment in a studio environment to maximum effect and troubleshoot problems, you are known as an "engineer." Does the fact that we are able to implement, run and troubleshoot audio/video recording and editing systems make us "engineers" in the purest sense of the word? Certainly not.
    By the same token, is the fact that one is able to build boxen, integrate a server farm, write scripts, properly implement ipchains, or successfully install Slackware on siad boxen make us "engineers?" Once again, no.
    Most of the audio video engineers that I know (including myself) know very little about the low level workings of the equipment that we use and maintain. We are, in a sense, administrators: we know how to use the equipment to maximum artistic and technical effect and are able to resolve problems as they appear, but if asked to explain the nuts and bolts of the gear we know how to use so well, we are most often at a loss. The same thing applies to those of us that are highly able "users" of various boxen. We can manipulate these machines to do all sorts of nifty, useful stuff, which is great, but few of us could explain, let alone design, the inner workings of the machines we use so well.

    To those that defy the above descriptions, I salute you. To the rest, we have to face up to the fact that we are users, albeit good ones.
  • by javahacker ( 469605 ) on Sunday March 30, 2003 @04:53PM (#5627700)
    Lets get some facts correct. In most of the US, you are an engineer if you study engineering in college, be it electrical, mechanical, etc. To manage projects in civil engineering you have to be a licensed Professional Engineer (P.E.). That means you have several years of experience, have passed thorough testing, and have references from established P.E.s that say you are not only qualified technically, but ethically, to recieve the title.

    Texas, unlike the rest of the US, says that the title Engineer is the equivalent of the P.E., which it is not. This is an error on the part of lawmakers in Texas, who should act to bring their definition of Engineer into line with the rest of the country.

    I have a B.S.E.E. which is an Electrical Engineering degree. It is recognised throughout the country, and one would expect through much of the world, what this represents. If I had a P.E., it would not necessarily mean that I was the person you would want to design a bridge, or a building, but would mean that I would send you to someone who could, rather than do a bad job for you.

    Since I have a degree, which I earned, that includes the title Engineer, I find it offensive that Texas would refuse me the right to use that title. Requiring a P.E. for some activities is perfectly understandable, but there are many Engineers who do not have a P.E., who still deserve to be able to use the title they earned.

    Having said that, I find the MSCE, and similar titles to be offensive. They didn't earn the right to use the title Engineer, which implies an educational background well beyond what is required to pass the MSCE technical exam. Microsoft can't declare someone an Engineer, but passing through an accredited Engineering program is college is an entirely different thing.
  • Exactly... (Score:3, Interesting)

    by Keebler71 ( 520908 ) on Sunday March 30, 2003 @04:59PM (#5627726) Journal
    I wouldn't call a welder or the guy who installed my drywall an engineer. Perhaps the guy who designed my house and certainly the guys who designed the construction equipment.

    Now, I am going piss off a lot of people but consider a large software project... say developing the software to run a complete Air Traffic Control System (ATC). This task would likely require hundreds of programmers and many managers and systems engineers. The managers and systems engineers who develop the SPECIFICATIONS, PROTOCOLS, INTERFACES (etc.) and oversee the development and testing... sure, they earn the right to be Software Engineers. The guy who takes a specification and writes his/her very modular piece of code to accomplish a small task == code monkey.

    Now, this isn't to say that all programmers aren't engineers,...obviously many of the managers do know how to program but are indeed engineers.

    In "traditional" engineering fields, an "engineer" usually refers to someone with a degree in some engineering field (not including software but including Computer engineering which at my college were the guys who actually designed chips and architectures). Even still, there is a difference between "being" and engineer and having the TITLE engineer. To use the title of engineer, you have to pass the Professional Engineer [theinformant.com](PE) exam, of which I am completely certain that 99.99% of CS majors would fail with quite a bit of flair.

    To make matters even more confusing, there is a degree known as an "Engineer's Degree". It is pretty rare, but falls somewhere between a Master's Degree and a P.H.D. People with this degree would say they have a Masters in Mechanical Engineering AND the degree of Electical Engineer. (as an example.)

  • Re:Definitely (Score:3, Interesting)

    by LinuxInDallas ( 73952 ) on Sunday March 30, 2003 @05:00PM (#5627737)
    That really wasn't the point of the article. I believe that regardless of what type of engineer you think you are, if you are not a licensed professional engineer then you can't represent yourself as one outside of the company. When I worked for a company in Richardson, TX (Dallas suburb) all of our business cards said "Telecommunication Hardware Engineering." I was told at the time (back in 96) that this was because you couldn't put engineer on your business card unless you were licensed. Oddly enough, the company I am at now seems to not have a problem with it. But then I think it's because they are unaware of the issue.
  • Re:Let's ask Webster (Score:3, Interesting)

    by frdmfghtr ( 603968 ) on Sunday March 30, 2003 @05:36PM (#5627904)
    According to that, programmers are engineers. That's especially true for those programmers that do design as well (like myself).

    Fair enough. Then when a particular piece of software crashes, the software engineer can be held liable for damages caused by the crash (lost time, income, etc.) When you write code, do you stand behind it? If it doesn't work or crashes, will you accept responsibility and liability? If the answer to these questions is "yes," then I applaud your willingness to stand behind your work.

    Microsoft hires (and certifies) software engineers, yet will not accept liability for bad programming (read their EULA). Therefore, they are not engineers.

    "If you can't walk the walk, don't talk the talk." It's amazing how personal liability can provide motivation to do the job right the first time.

    I'll graduate in May with a BSEE, but I won't be a EE yet...I'll be an EE in training until I get my PE license. When I have my license, THEN I will be a full-fledged electrical engineer.
  • Re:Dubya (Score:3, Interesting)

    by Safety Cap ( 253500 ) on Sunday March 30, 2003 @06:13PM (#5628072) Homepage Journal
    MCSE
    This is exactly why the law is so incredibly stupid. Thanks to the quite powerful Engineering SIGs here, if you put MCSE on your business cards and hand them out, you could be liable for a US$3,000/day fine.

    The real point of all of this was to limit the number of engineers in the market, so as to keep the salaries up. Same thing goes for architects and lawyers.

    Protectionism may be ugly, but it is one of America's most cherished traditions.

  • Note on P.E. (Score:2, Interesting)

    by David Ishee ( 6015 ) on Sunday March 30, 2003 @07:34PM (#5628367) Homepage
    I am a Mechanical Engineer, although I'm not a Professional Engineer (P.E.). In order to get the Professional Engineer certification, you have to first complete the E.I.T exam (Engineer In Training), then get X number of years of supervised work under a current Professional Engineer, then take the Professional Engineer exam. Most people take the E.I.T in college before they graduate.

    Most Civil Engineers need the P.E. license since they generally work for government agencies (building roads, bridges, etc). Mechanical Engineers who work in the HVAC industry generally get their P.E. license also.

    Engineers usually get the P.E. license if they are doing work for outside customers. If there are no P.E. certified engineers at your company, you can get a P.E at another company to check and sign off on your work to count toward your required years of experience. Many times, a P.E. license in one state will be recognized in surrounding states (subject to variation).

    If you are an engineer doing work only inside a company, you generally don't need a P.E. license. For example, in the aerospace industry, or automotive industry, it isn't required as far as I know. In that case, you can pursue it if you wish and you may get paid a little more money and it looks good on your resume. If your company doesn't require it, then there is no penalty for not having it.

    The E.I.T exam is a comprehensive exam on all subjects (thermodynamics, controls, electrical, mechanical, etc). When you take the P.E. exam, you can usually choose between a general exam, or one that is specialized to your field.

    At my school (Mississippi State University), they just moved the Computer Science department into the Engineering Department.
  • Proof(not) (Score:1, Interesting)

    by Anonymous Coward on Sunday March 30, 2003 @09:01PM (#5628763)
    #include <stdio.h>
    #include <string.h>

    main( int argc, char *argv[] )
    {
    if ( strcmp( "engineer", "programmer" ) == 0 )
    printf("Programmers are engineers\n");
    }

    Seriously, if they were one and the same thing then why create another word. The answer is that they are different. Computer programming is an activity that can be learned in a few minutes/hours. At it's essense it's just translating a sequence of steps into a computer language. There are simple programs, moderately complex ones and very complex examples that few people can understand.

    My definition of "Engineering" is the ability to make a reasonable determination of how well something will work "before" you built it. Or more abstractly, "the systematic removal of unknown variables from a problem domain to reveal the solution space". In other words they were predicting the outcome "prior" to doing something.

    For example you might hear an engineer say that "using a multi-user Ethernet segment as the message passing fabric will lead to a non-deterministic response time because of resource contention".

    Does this mean you "have to" be an engineer to be a good programmer? I would say no, there are lot's of good programmers who are not engineers. In reality a lot of programming environments are architected to specifically remove or reduce "excess" knowledge. This "simplification" facilitates the programming task, opening it up to problem "domain" specialists, i.e. the people who actually understand a problem well enough to translate it into a workable computer based solution. This is a good thing, you really want to enable end users by providing them an easy way to "program" their computers. Note the success of spreadsheet programs, which do exactly that, or VisualBasic which strives to enable end users. Even Unix/Linux is a programming environment, and in fact that's why it's so popular. Shell scripts make it easier to program ...

  • by Oestergaard ( 3005 ) on Sunday March 30, 2003 @09:28PM (#5628859) Homepage
    The Atomic Bomb: the theory can be grasped by a child, what keeps the dictators of the world from having the A-Bomb is the fact that they are devilishly hard to make.


    Bzzzt.

    What keeps the dictators of the world from officially having nukes is
    • Larger nations would cut monetary support
    • The raw material is (for reasons I don't understand) hard to get
    • The raw material is somewhat hard to properly produce unnoticed, by small nations - and requires natural resources not every nation is "fortunate" enough to have


    Take two bricks of weapons grade uranium. Put one on the floor. Step up on your office desk, and drop the other brick on top of the first one, from there. BOOOM - you have successfully set of a home made nuke. Yes, it is this easy - ask any physicist. Once your combined bricks of weapons grade uranium reaches supercritical mass, there is no need for fancy engineering.

    It might not be terribly efficient (a little engineering is needed for that), and thus it might also be a little unclean, leaving unpleasent amounts of radioactive downfall around your former office building. But it will work, and any child could do it - given the raw materials.

    That's at least how it is for uranium based weapons. Plutonium based weapons are much harder to produce, and would require at least some basic engineering skills. For larger nations they are cheaper to produce in numbers, but that's not really relevant to your average "axis-of-evil-dictator-dude".

    Scary fact No.2: You can actually (at least the U.S. managed to) produce a uranium based nuclear weapon from reactor-grade material. It is much less efficient, and no so called great nation would want to do that (just going with plutonium (and a little hydrogen) is cleaner and more effective when you really have that kind of resources). But for your average evil dictator, it's possible. To be honest I don't know how much having lower-grade material complicates the construction of the weapon.

    Assuming it is not terribly much harder to produce a weapon on fuel-grade material, this makes up for some pretty scary scenarios. Quite a few countries have nuclear reactors, and therefore fuel-grade material.

    With the recent developments legitimizing pre-emptive strikes on "perceived future threats", and the possible legitimization of using small nuclear weapons in common warfare, the above does not get any less scary if you ask me.

    Whether you're pro or con the recent developments, the above should give you some food for thought, at least.
  • by dkhoo ( 618628 ) on Sunday March 30, 2003 @09:28PM (#5628862)
    There are two issues here. The first is whether or not a software engineer performs "engineering". The second is whether a software engineer can have the legal status of an "engineer".

    Do software engineers perform engineering? What is engineering anyway? As far as I am concerned as a Chemical Engineer, an engineer fundamentally designs systems. As part of this work, he will probably need to model the system and test this model (whether the model is mental, computational or physical). Implementing the design involves the engineer, but is not the engineer's job. That is the job of the technician.

    This means that a software engineer should be the person who develops requirements (both software and hardware), overall design (data structures, classes, interfaces, protocols) and supervises their implementation. As part of this he may write some test code or build test equipment to verify his design. The actual writing and testing of the code to the design specification is the job of a software technician (which is a better term than "code monkey").
    Note that engineers usually have engineers below them. Smaller parts of the overall system may be designed by a junior engineer according to specifications that the senior engineer provides. This smaller part may in turn have smaller parts designed by yet more junior engineers and so on. So you do not have to be a project manager to be an engineer. The important thing is what you are actually doing at your desk. If you design, test THEN implement, according to scientific principles, you perform engineering and are in that sense an "engineer".

    However, whether or not you can legally be called an "engineer" is a seperate matter. A "professional engineer" in Singapore is a very special beast. To become one, you need 10 years of exemplary active experience, yearly training, adherence to a code of conduct, etc. You become empowered to testify in court as an expert regarding engineering in your field. Certain types of work require certification by a professional engineer and cannot proceed without you (this means big bucks).
    In return for this status, you accept great responsibility. You are personally liable for criminal charges if a design you certify fails, in addition to civil damages. If the failure involved grevious injury or the loss of life, this may mean 10+ years jail and caning, in addition to a criminal record.
    This is the issue that the article probably refers to. The software industry has not yet reached a state where its engineers can accept this level of responsibility without it becoming a legal farce. The poor seperation of engineer from technician in software engineering makes this even harder. This is because every line of code is in a sense "designed" when it is written. The design of the code IS the code.
    I do not see any real way out of this, which is a pity. Until some professional order is imposed on the software industry, hairy and wasteful civil lawsuits will be the only way to ensure (not just produce) quality, which means that unreliability will remain rampant. It is likely that software will always remain an art and never make the transition to engineering. Perhaps that is the way it should be.
  • It was a failure of design. It's being maintained by constantly shoring it up. Call it the real world equivilent of solving memory leaks by getting more memory. It's an instance of a major project that ran into huge trouble because an engineer fucked up and therefore a counterargument to the idea that having the little symbol on your buisness cards somehow makes you more capable than someone without it.

    I'll take a moment to rant here, actually, because it's something I see alot with all kinds of accreditation. People have an assumption that the diploma or the logo or whatever means that they're innately more skilled than people without it - it doesn't. It means that you're accredited to have met a minimum amount of skill, not that you're privy to knowledge that others don't have.

  • by wadiwood ( 601205 ) on Sunday March 30, 2003 @09:47PM (#5628934) Journal
    From the New York Times and the BBC
    via Stupid White Men (the awful truth)

    Katherine Harris was both George W's presidentail campaign co-chair and Florida secretary of state in charge of elections ie who was allowed to be on the roll and vote counting. No conflict of interest here?

    Katherine had anyone "suspected" of commiting a felon removed from the rolls, this included anyone with a "similar" name to a felon. This mostly affected black democrat voters. 173000 registered Florida voters were removed. A black list of a further 8000 peole was supplied from Texas of people who had moved from Texas to Florida, and these all had their names crossed off, even though they were actually eligible to vote.

    One of these "supposed felons" was Linda Howell, elections supervisor of Madison County, Florida. The only way to get back on the roll was to agree to fingerprinting. Ie guilty until "proven" innocent.

    Of the Florida overseas ballots many were counted that did not meet florida law, specifically

    Overseas ballots can only be counted if they were cast and signed on or before election day and mailed and postmarted from another country by election day.

    544 overseas votes that counted towards George W Bush did not meet this criteria.

    As for the supreme court, the ancient republican appointees Sandra Oconnor and William Rehnquist did not want to retire until there was a republican government in power to appoint more republicans to the court. Clarence Thomas's wife had just got a job with George W Bush and the son of Antoni Scalia was working for the law firm that was representing George W Bush.

    And there's more and it gets worse.

    Personally I don't think the result should have hinged just on Florida and some of the other state results looked dodgy too. If I was a USA citizen I would have voted for Nadar, not because I thought he could win, but because the Democrat and the Republican are almost identically pro Corporate America and against everyone else. Except we probably wouldn't be wasting money on a stupid war if the Democrat had got in. I could be wrong about that.
  • by a42 ( 136563 ) on Sunday March 30, 2003 @10:03PM (#5629006)
    If I put "Senior Software Developer" on my resume instead of "Senior Software Engineer" what does that do to my chances of getting a job? Employers *expect* to see the word "Engineer" there so I keep putting it there.

    I'd much rather be "Software Sultan" or "Kode Kaiser" but...

  • Software Too Soft? (Score:3, Interesting)

    by FrankDrebin ( 238464 ) on Sunday March 30, 2003 @10:58PM (#5629248) Homepage

    I'm concerned that that Software Engineering as a Professional Engineering discpline is not really going to get very far very quickly. The public and our potential clients need too much education to see value in the profession. I believe the Professional Engineering associations have a huge challenge ahead.

    The Professional Engineering associations do what they can under the legislation to support Professional Engineering. The ultimate premise behind the legislation and existence of these associations is that Professional Engineering is needed. Of course in traditional engineering fields, including the oft-exampled bridge building, a degree of competence is required and demanded by the client. Where public safety is at issue, the professional associations stand behind the "seal of approval" needed by the client, government, and the general public. Of course no one wants unqualified people responsible for works that pose an obvious potential danger.

    However, the public trust is very difficult to causally connect to the practice of professional Software Engineering. I submit the following reasons:

    1. The lay person's perception of software development is that of a black art practiced in darkened basements or ultra-hip NERF-encrusted neo-offices by Pepsi-swilling twentysomethings. Mad scientists and uber-hackers do not instill a professional impression. Traditional engineers are not seen this way - maybe a little nerdy, but still professional.
    2. The public expectation of the performance of computers and software is very low. Terms like "crash", "reboot", and "virus" are now commonplace. Problems seem expected, and are to a large degree tolerated. This is not the case for a major bridge or nuclear power station.
    3. The perceived "talent pool" for software development ranges from inexperienced youngster hackers through to highly-experienced professionals. The entrance barrier to claiming - and demonstrating - ability is very low, and it is difficult to raise the bar. Just about anyone can create and release software. Conversely, if you want to design for example a jet engine, you likely wouldn't hire a neighborhood kid.
    4. Given the above, the initial costs of software projects can seem very low, and very attractive, when done in an unprofessional manner. It is extremely difficult to convince an unsophisticated client otherwise despite the evidence indicating software development done right is cheaper in the long run. Professionalism is seen as an extra cost in software, but an absolute must for designing say a highway on-ramp or a multi-level parking structure.
    5. There are many bodies "competing" with the Professional Engineering associations for setting the common view of the standard of professionalism. A person may be an MCSE, or his organization may be CMM Level 4, etc. It's confusing to the public and difficult to justify and position yet another certification body.

    While there might be enough evidence, both academic and anecdotal, to counter all of these points, it requires extraordinary public education. I have heard comments from my local association members wishing for more proactive public education in traditional Professional Engineering disciplines. While the association has had some lukewarm results in raising the Engineering profile, I find the challenge of doing so for CSED to be orders of magnitude more difficult.

    P.S. I currently work primarily in Software Development, but hold my P.Eng as an EE.

  • by James McP ( 3700 ) on Monday March 31, 2003 @01:30AM (#5629819)
    No one's going to read this at this point but I have to assuage my own conscience. (Damn engineering ethics courses) I will presage this by saying I am a civil designer with a BS in Civil Engineering and 3 years experience about to take the EIT that has spent 8 years in the IT field as (variously) a sys admin, helpdesk, Q/A, sales support, PBX admin, network flunky, and hardware reviewer.

    Fallacies
    1. It's a meaningless debate because it's just a title.

    It is a title, but not a meaningless one. People are breaking the law in most states by claiming to be an engineer/lawyer/doctor/plumber/surveyor/etc if they are not one for the same reason it is illegal to claim to be a police officer. Those titles imply that you will look out for the good of the public and your client (in that order).

    There is software out there today that could kill you if it malfunctions (antilock brakes, traffic controls, etc). Today that software is a component in a system and the engineer in charge of the system signed off on it and will be held responsible if it fails. They know it and they take the responsibility seriously.

    Claiming that title can put you in a position where your actions could affect others seriously through your negligence or ignorance. I can see a day fast approaching when a CEO hires a tech-school "software engineer" to design a system that winds up killing someone because it was never evaluated by a "real" engineer. I hope that someone isn't me or mine.

    2. Engineers only increment known designs and aren't creative.

    While 90% of engineering is run-of-the-mill, that 10% requires creative thinking. Sure, I can spec out rehab work & basic residential designs all day in my sleep, but there are times when the Engineer works in the unknown. Build a structure on a new soil type or any device exposed to extreme environments and you will see real engineering at play. And all engineers are expected to be able to deal with that. They may call in people from other disciplines to advise them, but an Engineer will ultimately deal with the situation.

    3. Current "software engineers" will have to go back to school.

    When the egineering licensure became an issue for the states, there were many qualified people working in the field who did not meet the paper requirements. So there was a grandfather clause that was generally 5-10 years of documented experience and must pass the licensing test like any new graduate. There was also a window of opportunity until the grandfather clause was removed.

    Any current programmer who wants to be an engineer would likely be given the opportunity to take the tests. Good luck, you'll need it. Engineers are expected to be multidisciplinary. I had courses from all branches of engineering (Civil, Mechanical, Electrical, Chemical, Industrial) AND Comp. Sci. programming courses (Fortran & C++). The point isn't to say an engineer is competent to practice all fields but that they will be able to understand information from all fields.

    The flip side is that a licensed Software Engineer would require the tests for *ALL* engineers to expand. Not a bad thing at all in a software-operated world.

    4. Companies will only hire these "licensed" engineers creating artificial demand.

    Truth is, most current engineering companies have a significant number of non-engineers: draftsmen, surveyors, technicians, designers, and scientists. Those people do a significant amount of the work, but the Engineer is responsible. (Exception: The surveyor is responsible for the accuracy of the survey, since they should be a licensed Land Surveyor.)

    5. Anyone with a degree that has "engineer" in the title is an engineer.

    Most states have specific laws regarding the Professions (including the oldest one, but those laws regulate it out of existence typically). The degree is not enough because colleges & universities can lie; just read your spam. You have to get a degree from a university that has pro
  • Re:Dubya (Score:2, Interesting)

    by GNU_Suit ( 123400 ) on Monday March 31, 2003 @02:07AM (#5629901)
    Catherine Harris was caught accepting a bribe from her cousin, Bill Griffin the founder and CEO of RISCORP. Somehow she avoided prison, Bill did not & had to serve several years.

    If you don't believe it, please check via Google.
  • An Expert Opinion (Score:3, Interesting)

    by JohnsonWax ( 195390 ) on Monday March 31, 2003 @04:54AM (#5630296)
    At a function about 3 years ago, I asked two Boeing VPs whether or not they felt that Software Engineers should be licensed, overlooking the fact that Boeing doesn't need to hire PEs because the company covers the engineers liability. The Texas law had just been passed, IIRC.

    Their divisions each had a substantial investment in software engineers, one more so than the other. And they had slightly different opinions.

    They both felt that it should be a licensed profession based on the quality of the people they hired. One hated the CS people they hired, because they were too eager to do thing. He'd rather train an EE to program, because within 2 years they'd be far more productive and introduce fewer problems. The EEs he felt had a respect for failure that the CS students lacked. He especially cited the degradation of most CS programs during the 90s due to the perception of incoming students that they should all turn into Windows coders. Perhaps things will perk up now that the market has tanked. The other didn't have a strong opinion about where they came from, but he noted they tended to hire more out of engineering than CS programs.

    One felt that Software Engineering wasn't mature enough yet because it lacked a set of rigorous standards. Civil Engineers know how much you can safely load a beam, EEs know failure points on components, but Software Engineers don't have these - or don't have them laid out as standards. What is the standard for preventing buffer overflow? etc. Until there are well regarded standards for Software Engineering practice, there's probably not much value in licensure. Of course, licensure isn't important to them, so they might not have been so hot on it.

    I've also spent time with some Biomedical execs that deal with software in their industry and they expressed more urgent need for it. For one, they're accustomed to accountability through the FDA and physician liability. One pointed out that medical device companies tend to be pretty small - not unlike civil engineering firms, and simply don't have the resources to cover their own liability. They need licensure. They worry less about the hardware development because they can hire licensed EEs or MEs.
  • by Zeinfeld ( 263942 ) on Monday March 31, 2003 @06:03PM (#5633784) Homepage
    Hubble space telescope optics?

    The design of the mirror was perfect, it was the manufacture and testing that were flawed. To add insult to injury Kodak made a perfect mirror that was used in the vehicle testing... It is still sitting at Nasa...

    I am a Chartered Engineer and a member of the Britich Computer Society, most programmers in the UK are not. Only a percentage would qualify. Who do you call a programmer? Some HTML and perl monkey who does nothing but setup simple websites with frontpage? Someone who writes an Excell macro? Thats programming but it isn't engineering.

    To be a chartered engineer you have to be more than just a grunt worker. You have to have a certain level of responsibility, usually responsibility for a budget, you have to have an architectural input. In short you need to be a professional and have equivalent skills to a doctor or an accountant or a lawyer.

    That does not mean you are guaranteed to be any good, there are a lot of useless doctors arround (who thought that lobotomies would be a good idea), there are losts of incompetent accountants (Enron, Sunbeam, Harken, etc.) and there are plenty of duff lawyers.

    The real test is whether you can get kicked out of the association if you screw up big time, although in fact few doctors or lawyers get struck off for incomptence, its more usually having sex with a patient or embezlement, or in one case sending spam (ok it was only 2 years for the spam).

Do you suffer painful elimination? -- Don Knuth, "Structured Programming with Gotos"

Working...