Slashdot Mirror


Software Engineering Body of Knowledge

An Anonymous Coward writes: "The IEEE has a project going to establish a Software Engineering Body of Knowledge. I'd recommend that all Slashdotters read this and send comments to this since this project could lead to the officially designating Software Engineers as a real Engineering discipline. That could then mean that licenses could be required to practice software development and that this could to regulation and other legal ramifications." On the surface this looks like a fairly boring document/process, but this is a major step forward - turning software engineering from an art into a science.

126 of 428 comments (clear)

  1. What about the PPR? by LazyDawg · · Score: 4, Insightful

    I've found thousands of really detailed, useful pages about software engineering, design and manufacture at the Portland Pattern Repository. Why are they trying to make yet another big repository with a structure that doesn't neccesarily scale as well as a wiki?

    To see the PPR, surf to http://www.c2.com/cgi/wiki

    --
    "Look at me, I invented the stove!" -- Ben Franklin
    1. Re:What about the PPR? by partingshot · · Score: 2, Interesting

      because there's more to software engineering than just patterns.

      --
      Anonymous posts are filtered.
  2. What about my MCSE? by alen · · Score: 5, Funny

    Microsoft says I'm a systems engineer. I studied long and hard for the exams. And then had to relearn almost everything for the real world. You wouldn't believe my surprise when I found out that in the enterprise people don't use NT boxes as routers and use third party software instead of NT backup and a tape drive on each server. But getting back to the point. How come I'm not considered a "real" engineer? I got my license from Microsoft. Like developers are real engineers anyway. All they do is click, drag and drop code in until they say it's ready. Then the patches come out.

    1. Re:What about my MCSE? by ZxCv · · Score: 2

      How come I'm not considered a "real" engineer? I got my license from Microsoft.

      Sounds like you answered your own question.

      If you think software engineering isn't any harder than administrating some NT machines or even a whole NT network, you're obviously without the necessary experience to accurately make that judgement in the first place.

      --

      Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
    2. Re:What about my MCSE? by alen · · Score: 3, Informative

      I guess computer geeks don't have a sense of humor. I remember hearing somewhere that C coders don't think VB programmers are real programers or something like that. Don't remember the specifics. Thought I would play on that.

      I do have a real MCSE. And I also realize that any certification program run by a company's marketing department isn't a real certification.

    3. Re:What about my MCSE? by WasterDave · · Score: 2

      Cor, fsck me, the number of people who took this seriously. What's up with slashdot today?

      Dave

      --
      I write a blog now, you should be afraid.
    4. Re:What about my MCSE? by snake_dad · · Score: 2

      Oh come on! I already started laughing when I saw MCSE :-)

      --
      karma capped .sig seeking available Slashdot poster for long-term relationship.
  3. Both kinds: Science and Art! by TimTipple · · Score: 3, Insightful

    Hey, I'm all for recognising the science of software engineering. But don't let the pendulum swing too far the other way such that we end up forgetting the art of software engineering.

  4. Art and Science by deggy · · Score: 2, Insightful

    I still beleive that Software engineering is as much art as science. It's just less free-form. The biggest thing that most people miss is method and Structure (can you say SSADM? Aarrgh!). This is what leads to the failure of most software projects - the winning bidders (the lowest bidders) are often just a bunch of untrained amatures (Mostly "Microsoft Certified Professionals") who, while they can talk a good project don't know how to successfully complete a large task (only 20% coding time and all that) as they're only used to banging together a quick web-site/access back end. The art comes into making it efficient (Elegant code, a lost art to most MS programmers), The Science goes into realising that art in a functioning form.

  5. Huh? I don't get the fears.... by invenustus · · Score: 3
    ....this project could lead to the officially designating Software Engineers as a real Engineering discipline. That could then mean that licenses could be required to practice software development and that this could to regulation and other legal ramifications....

    Okay, correct me if I'm wrong, but Electrical Engineering is designated a "real Engineering discipline", right? Well I've never taken a course on EE, nor do I have any kind of license or certification, but I'm still allowed to take my radios apart and fix them when they break, right? Why would this official designation of software engineering affect anything? Am I the only one who doesn't get this?
    --
    grep -ri 'should work' /usr/src/linux | wc -l
  6. responsibility??? by Quasar1999 · · Score: 2

    Someone please define the differences between, say... software developer, software engineer, and ummm... code monkey...

    Now who has to get certified, and is legally responsible? Being a code monkey, I already have too much responsibility... don't want more... where do I protest?

    --

    ---
    Programming is like sex... Make one mistake and support it the rest of your life.
  7. Licenses Required? by aridhol · · Score: 5, Insightful

    The article is slashdotted, so this is based on the writeup.

    Requiring a license to be a programmer is a bad thing. If you think it will improve software quality, you're mistaken. Think I'm crazy? How many software contributers have an engineering certification? Sorry, no cert, no programming. No open-source software.

    OK, so let's change the rules a bit. "You must be certified in order to write commercial software". You think that will help anything? Who determines what classifies as commercial software? Is my Mandrake CD commercial software? If so, does that mean all the software on it, including the free software, is now commercial? Not good.

    However, what if there's a non-commercial certification process. Run, not by RedHat or Microsoft, but by a vendor-independent group of engineers. You prove to them that you are a capable engineer/programmer/whatever. They give you a certificate that actually means something. Perhaps require the certification to be re-written every N years.

    Now, companies can have a certification that says this person is a software engineer. Not a Microsoft-certified software engineer. Not a RedHat-certified software engineer. An engineer-certified software engineer. No commercial influence, transferrable skills, and a large skill set.

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
    1. Re:Licenses Required? by Anonymous Coward · · Score: 4, Interesting

      You're right. No, being licensed won't improve software quality. But, it does improve accountability.

      Take the bridge building analogy. If an engineer designs a bridge that falls apart and people die, they are liable. His company may also be liable. If a city engineer put his stamp on the bridge design, then he is also liable, and perhaps the municipality he works for.

      Why should software be any different? We get mad when MS Word dies on us and we lose an hours work. Can we sue Microsoft for lost revenue because we missed a deadline because of that, and therefore missed a contract? Probably not (well, I haven't read a EULA lately) but there's no reason why we shouldn't be able to. Actually that was a bad example. Lemme try again.

      How about a software firm contracted to write a control system for a city's traffic grid. A bug or poor design causes a set of lights to go on the blink, two people run an intersection and both die in the resulting collision. Who pays the damages? Not sure, perhaps the city... but its not their fault. But they can't pass that onto the software firm... not currently.

      But instead, if we had licensed software engineers, who in certain instances like the one above, who were now indefinately liable for their work, and who are required by the customer to "sign off" on it... well, it can only bode well for the quality of software.

      The big thing here is that the customer has to demand accountability --> Im sure that big e-commerce data centres demand guaranteed uptime from Microsoft.. .and if something bugs out, then Microsoft will foot the bill. As consumers we get told "dont use this in a safety critical system, a real time system, a system where you need X uptime or reliability" and worse, we buy it still! Would you buy a car if the dealer said "we think your airbag will deploy, but just to be safe, try not to get into an accident"

      As an engineer myself, Im constantly reminded of my responsibility to society. Alright, I don't write code for the space shuttle, or code that flys your 767 to Bermuda. In fact, I don't write code that even sees a customer. But I do write code that tests product (in this case radio systems for police and ems). If I screw up, don't properly test my code, then the product code is not properly tested, and perhaps at a critical moment a system will go down and a police officer facing a dangerous suspect will lose his life. That sucks.

      Consumer software should be no different, but we don't demand the accountability.

    2. Re:Licenses Required? by aridhol · · Score: 2

      How 'bout a compromise?

      Commercial, off-the-shelf software, doesn't require licenced engineers. Shouldn't have the EULA restrictions, but that's a different kettle of fish.

      However, only licensed engineers and programmers are allowed to write critical software. They could write regular software as well; it could be a selling point to know that the software is written by someone who both knows what (s)he's doing, and is willing to take accountability for its failures.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    3. Re:Licenses Required? by Kerg · · Score: 2
      If a city engineer put his stamp on the bridge design, then he is also liable, and perhaps the municipality he works for. Why should software be any different?

      Because a) building a non-trivial piece of software is lot more complex than building a bridge b) we currently lack the tools to verify the correctness of a software implementation.

      The city engineer can do the math to verify the bridge will hold and not collapse. A software engineer is not able to do the same. Testing will never guarantee 100% correctness of code.

    4. Re:Licenses Required? by aridhol · · Score: 2
      Besides, requiring Eng certification will not prevent Open Source software


      If it is publicized that certification is required to be a programmer, will it be similarly publicized that it only applies to certain software? Or will the media just say that all programmers need certification? What will that do to prospective programmers?
      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    5. Re:Licenses Required? by Kerg · · Score: 2
      If your software crashes or otherwise doesn't work properly, you can sue the company that made it.

      Has there ever been a single piece of software that did not include at least one bug after its initial release?

      If companies are going to get sued when their software is unstable, they wont make unstable software.

      Define "unstable software".

    6. Re:Licenses Required? by aridhol · · Score: 2
      Commercial software can't be critical software? I wasn't aware of that.


      If you believe your software is mission-critical, look for the "Certified Engineer" label I suggested in the parent post. If you have the choice between a cheap, uncertified word processor and an expensive, certified one, weigh your needs. If it needs to be rock-solid, get the certified one. If you can handle the occasional crash, get the cheap one.
      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    7. Re:Licenses Required? by p3d0 · · Score: 2

      I don't see any reason to require an engineering certification to write software, just like you don't need an engineering certification to build a bridge. However, certain projects can require certification if they want to have certain quality guarantees.

      Also, to continue the analogy, the engineer doesn't actually construct the bridge; he designs it and certifies it. Same could be true of software: if the appropriate practices are developed, an engineer could certify the work of a hundred non-engineers.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    8. Re:Licenses Required? by Kerg · · Score: 2
      I can definetly tell you that designing & building bridges is harder than designing and building software!

      I think not. Building software with the assumption that its correctness is not verified or guaranteed is easy. So is building a bridge if I don't have to take account the calculus, but will rely on common sense ("it looks strong enough, I'm sure it'll hold" -- mind you, this is the attitude we use with building the consumer software today).

      If you put the same requirements on consumer software that we put on bridges today (in other words, 100% correctness) then verifying the software will be alot more complex than verifying a design of a bridge.

      Well, you can do the same with software.

      There's a problem in putting this in practice. Otherwise we wouldn't have satellites worth billions of dollars explode if it was a simple matter to verify the correctness of the software.

      However, a civil engineer CAN'T test a bridge!

      Yes, so? My point was that testing in software engineering is a cheap replacement for the lack of methods to verify the correctness of software. The civil engineers can build safe bridges without testing because they have a well known axioms they can base their proof of correctness on. This is what is lacking in software engineering.

    9. Re:Licenses Required? by Kerg · · Score: 2
      I don't know how much physics you've taken but the math behind a bridge is complex and it's really easy to make a mistake.

      I am sure the math is very very complex, and that it is very very easy to make a mistake. That's not the point however. The math behind the bridge design can be proven either correct or wrong. The math we use have been known for centuries.

      Proving a software implementation correct has turned out to be alot more difficult task though. Otherwise the software engineers of today would be constructing the proofs routinely, instead of trying to rely on all sorts of different kinds of testing methods.

      A properly designed program is inherently flawless because it was designed before it was implemented.

      The software engineering field is filled with countless examples of heavy "design first" approach to implementing software. The practice has shown it does not guarantee flawless programs.

      If you know each module performs its task and only its task and does it properly, the software won't crash!

      Nice theory, but wrong. Why do we have "integration testing" then?

      So you'd better make damn sure you get it 100% correct.

      Please give examples of software in use today that have been proven 100% correct. I'd be curious to know how many actually exist.

    10. Re:Licenses Required? by Kerg · · Score: 2
      That is besides the point. You said:

      If your software crashes or otherwise doesn't work properly, you can sue the company that made it.

      You could sue every software company that has ever existed. Software has bugs. Certifying Software Engineers is not going to change that fact.

    11. Re:Licenses Required? by p3d0 · · Score: 2

      I'm not sure what you mean by "guarantee" but I mean that the engineer stakes his reputation and his career on the quality of the end product.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    12. Re:Licenses Required? by Cederic · · Score: 2


      Ok, I'm happy enough to be accountable for the software that I write. However, if I am being forced to produce working software, and can be sued for bugs, then:

      - I want insurance.
      - I want full, complete requirements up-front. Changes in requirements will involve an additional project, at full cost.
      - I want three years to design the system. I want another year to review that design.
      - The system can be built in three months.
      - I want a two year test cycle. Anything less wont find all of the bugs. Even that wont find all of them, but should find most of them.

      Basically, building a bridge takes a long time, needs a lot of upfront design, doesn't have to cope with changing requirements, and can use engineering principles and practices that have been around for centuries.

      Building software in a timescale demanded by internal customers (as in my current company) or at a price acceptable to the market (as at my previous company) is not feasible without bugs.

      There are trade-offs between quality, functionality and time. Since time tends to equate to cost, most companies wont compromise on time. They also refuse to compromise on functionality (hey, I can produce a perfect piece of software - wont do much though). So quality suffers.

      The software engineering body of knowledge is a fine effort; unfortunately they don't know what is "right" yet. There are still many ways to do things, and all of them can be correct.

      ~Cederic

  8. Developer with no CS Degree by javacowboy · · Score: 4, Insightful

    So because I have no university degree I'm suddenly considered useless? I studyed long and hard to change careers from banking. I took a 9-month intensive IT course which was at times very hectic. The J2CP exam was no joke, neither was the 60% of my knowledge that I learned without formal training on the job in my first 2 months, or the first month of my new job, in which I had to learn yet ANOTHER new set of skills and development tools with almost no training whatsoever.

    Are we suddenly going to stop rewarding initiative, independent learning, flexibility and gumption, and only give credit to people who were lucky enough to figure out their career paths in their late teens, unlike me? Proposterous!

    --
    This space left intentionally blank.
    1. Re:Developer with no CS Degree by Ismilar · · Score: 4, Informative

      It doesn't mean your are considered useless.

      Electricians and electrical technicians aren't useless. They can get good jobs, they just can't legally design commercial electrical products (unless they work under a supervising engineer, of course).Electrical Engineers go through Ethics courses and Occupational Safety courses, and they have to take responsibility for the things they make.

      If a professional Engineer designs something, it _MUST_ work as specified. If it doesn't, the consumer can sue the engineer that made it. With software (which is not made by engineers) doesn't work, you can't do much about it. That's the difference between engineers and non-engineers.

    2. Re:Developer with no CS Degree by javacowboy · · Score: 2, Interesting

      At least I had the guts not to hide behind "Anonymous Coward".

      --
      This space left intentionally blank.
    3. Re:Developer with no CS Degree by malkavian · · Score: 5, Insightful

      Well, I don't think you'd be useless, and perhaps that's the wrong way to look at it.
      What you need to consider is:
      Do you really consider you know as much about the structure of programs (in general), putting software together, and have as broad an overview and experience as someone who's spent 20 years intensively studying and applying software, and trying to refine it to it's optimum, and is at least as talented as you?

      The idea of accreditation is that you take people with the talent, and subject them to several years of rounded exposure to the whole of the discipline, so they don't fall foul of errors caused by lack of understanding of associated areas. You then test these people to ensure that they don't make the stupid mistakes that can and frequently are made by people applying good methodology in a stupid way (it happens).
      What is being rewarded is people who went into a field because they liked it, and followed it, and gained experience. Don't call it luck, 'cos I don't buy that.
      You chose your path, they chose theirs, and perhaps, just perhaps, they're being rewarded for the initiative, independant learning, flexibility and gumption they showed in choosing their career because it's what they wanted to study in the first place!
      If you consider that in 11 months, you're on par with some of the old timers that HAVE been in the game for 20 or 30 years (I've worked with some in my time), then, I think you're exactly the kind of person that shouldn't be an engineer.
      These things take time. If you want full accreditation, you should be prepared to do the graft and sweat that the rest of the world put in, even if it means going back to study full time again for several years, to re train from another discipline.
      It seems that perhaps the move is partly to prevent the influx of people who've suddenly realised that there's a fast buck to be made in the computing world, and take a fast track that trains intensively in one area, to get them able to perform programming tasks, and these people pushing that envelope into areas they were never trained for.
      I'm sure you're very good at what you do, and I'm in no way trying to take away from you what you have achieved, and yes, I agree, it's quite an achievement. I just ask you not to belittle those people who had the insight to choose their career early and stick to it.
      As to the cries I hear here in the UK so often of "Oh, but that's so ELITIST!".. Well, yes. But I'd rather be travelling in a plane programmed by a set of guys who have proven themselves to be the elite by many years of peer review and monitoring, than a bunch of guys who thought maybe this would be the best way to assemble an avionics system, although they couldn't quite put on paper why that was so...
      Knowing the Slashdot of today, it's quite likely this will be modded down, but, I've worked with gurus claiming to be fools, and fools claiming to be gurus, and I say what I see.

      Malk

    4. Re:Developer with no CS Degree by duffbeer703 · · Score: 2

      Yes, you had the guts to post as the "javacowboy".

      I'm impressed.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    5. Re:Developer with no CS Degree by malkavian · · Score: 2

      In many aspects of computing, I'd agree. But in Software Engineering, you don't need the other disciplines. It's all about putting the thing together reliably.
      Unlike the 'tainted' cross trained programmers which are great at putting together scripts, some designs and general coding, the engineer is dedicated to the engineering aspect.
      In the same way you may also employ the services of a geologist to determine the land around where you build a bridge, you would hire someone from another discipline to aid the engineer in achieving the optimum solution.
      You wouldn't, however, put someone with only a Geology qualification in charge of designing the bridge structure, just because they'd recieved a little 'intensive' training in engineering basics, with specialism in pylons.
      You don't lose any innovations from engineering software correctly. However, you do lose quality of the engineering if you don't use an experienced professional that's been doing it for years.
      And yep, I know that to be a fact, 'cos I've worked in those conditions (a few times as the engineer, a few times on the groups, with a dedicated Engineer, and I know I don't hold a candle to a dedicated software engineer at engineering big projects).

  9. Already a real engineering discipline. by trp0 · · Score: 2, Informative

    At the university I attend there is already a Software Engineering curriculum, and if you take a look at places like the Carnegie Mellon Software Engineering Institute, you'll see that this concept has been around for a little while now.

  10. Legal Status of the term 'Engineer' by pcb · · Score: 2, Interesting
    In Canada, the term 'engineer' is legally protected. Technically you can only use the term if you have be certified by the Canadian Council of Professional Engineers (CCPE). Check out their disclaimer:
    The terms engineer, engineering, professional engineer, P.Eng., consulting engineer, ingénieur, ing., ingénieur conseil, génie and ingénierie are official marks held by the Canadian Council of Professional Engineers on behalf of its Constituent Members.

    However, this dosn't stop everybody and their dog from calling themselves engineers! Not that I really care, I just find it one of the most abused words out there. How many people out there call themselves doctors who don't have a medical degree.
    --
    'Men never commit evil so fully and joyfully as when they do it for religious convictions.' B. Pascal
    1. Re:Legal Status of the term 'Engineer' by cperciva · · Score: 2

      In Canada, the term 'engineer' is legally protected.

      Not only that, but this protection is at least somewhat enforced. A Canadian university which shall remain anonymous recently received an official letter demanding that its "Software Engineering" program be renamed because the university wasn't properly certified to hand out engineering degrees.

    2. Re:Legal Status of the term 'Engineer' by Skapare · · Score: 2

      So is that "Dr. Anonymous Coward, Ph.D" ?

      --
      now we need to go OSS in diesel cars
  11. Important Subject by porterhouse · · Score: 2, Informative

    This topic will have huge ramifications. Too many people call themselves engineers these days. It wasn't a problem in the past because the general public could differentiate between a "custodial engineer" and a professional engineer. Now, professional engineering is becoming blurred by more and more technical types calling themselves engineers, without even close to the training and standards a professional engineer is held to. I'm not familiar with American laws, but in Canada, you are not allowed to call yourself an engineer without a professional license. The Canadian professional engineering bodies have successfully stopped Microsoft, Cisco and others from calling their technicians "engineers". "Software engineering" is the most dangerouse of all, and in my opinion, the most needing of the professional designation, if only to apply appropriate training standards, ethics and liability. Think about it: don't you want to know that the guy who designed the fly-by-wire software for your 767 or A300 knew what he was doing?

    1. Re:Important Subject by spectecjr · · Score: 2

      Think about it: don't you want to know that the guy who designed the fly-by-wire software for your 767 or A300 knew what he was doing?

      Would you prefer someone fresh out of a CSEng degree, or someone who has 10 years of real-world experience (equivalent to at least a Master's degree in the same field)?

      You do realize that real world experience is treated by most universities and employers as equivalent to education? eg. two years in the field will take you from a BSc degree to a Master's degree *automatically*, as far as any University is concerned.

      Just a thought...

      Simon

      --
      Coming soon - pyrogyra
    2. Re:Important Subject by mesocyclone · · Score: 2
      I agree that the term engineer has been misused.


      Engineering is the practice of designing things based on underlying science. An engineer in theory deeply understands (or at least at one time understood) the principles upon which his work is based. A technician, by contrast, knows how to do specific tasks and knows specific information, but does not have the background to understand those techniques. An engineer can create by understanding... a technician by tinkering.


      I shudder to imagine a certification process of software engineers. It would either be so broad that you would need a post-doc education to get through it, or it would be too narrow to apply to the whole field. The past certification practices have really been technician certification, not engineer certification. An "MCSE" is an oxymoronic title - it should be a "Microsoft Certified Software technician!"


      In software, we do not have an underlying science. Instead, we have an eclectic mixture of abstract math, techniques, fads, management techniques, language design, artificial intelligence, etc. We don't have a cohesive definition or understanding of computer engineering.


      In many ways, I think computer science is more like a biological "engineering" area - such as pharmaceutical development. In both cases, there are pieces of the underlying mechanisms that are well understood, but there are large missing pieces in areas important to the task of reaching a solution.


      Furthermore, computer systems design is such a broad area that it could not become a single discipline. Designing business applications software is vastly different than designing neural net pattern recognizers (although the latter are actually used in the former). Not only are the techniques almost unrelated - so are the educational requirements.

      --

      The only good weather is bad weather.

    3. Re:Important Subject by ameoba · · Score: 2

      I'm suprised that nobody has properly explained that being certified as an engineer has nothing to do with a degree. Here (not sure if it's a state (WA) or a federal (USA) thing) all that is required to be an engineer is to take and pass your PE tests (Professional Engineer, an evil 8hr long standarized test). It's not exactly common, but perfectly allowable to walk in without even having a HS diploma and get a PE, however getting an engineering degree helps provide you with the body of knowledge you'd be tested on. Having a PE carries far more weight than having a BS (or even a masters).

      In many larger companies, each group is headed by a PE, who has to sign-off on the work of those below him. Having a certified engineer helps them if they run into any legal problems, as they could show the court they had a certified competant engineer say it was good.

      Comming from this angle, I don't really see any push towards having a -serious- software engineering licence until somebody gets sued for writing/releasing buggy code. The industry is going to need to be seriously afraid of releasing crap before they make efforts to change things, since they're making money and not putting themselves at risk.

      --
      my sig's at the bottom of the page.
  12. Re:Huh? I don't get the fears.... by aridhol · · Score: 2
    but I'm still allowed to take my radios apart and fix them when they break, right?


    (Emphasis added)

    Yes, you can fix your own radios. You'd be allowed to write your own software. But would you be allowed to write it commercially?
    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
  13. Re:Huh? I don't get the fears.... by Flakeloaf · · Score: 2, Insightful

    If software engineers become a trade, they'll eventually get their own union. This union would control the engineers' work by setting standards for education, and defining how certain jobs will be done.

    I'll give a cookie to the first person who names a company that would be quite happy to control the board overseeing this as-yet imaginary union.

    --

    Am I the only one who heard Roxette to sing "I'm gonna get blitzed for some sex"?

  14. I live in Qu�bec. by TheTomcat · · Score: 2

    My title cannot legally be "engineer".
    I'm a developer.
    I don't have the ring. (-:

  15. The engineering licencing exams by acomj · · Score: 2

    I took the EIT exam which this first step tword becomming an "engineer". It was 4 hours and covered all of the engineering fields (electrical, mechanical, civil, chemisty).. It wasn't too bad, but tested my entire undergraduate schooling.

    After going through graduate computer science/software engineering, I can't see how a CS ciriculum is going to prepare students for this "engineering" test.
    The states make you an engineer, and unless they are all going to impliment a standard and separate cs engineering test, I don't see it flying.

    Computer science pay is much much higher than
    civil engeering..

  16. License to practice engineering? by brunes69 · · Score: 3, Insightful

    Needing a license to practice only applys to CERTAIN types of engineers doing CERTAIN projects. I can tell you right now that if you go to work for Intel, but don't have an EE, you're not going to be arrested or anything. Sure, Intel may be taking a chance, but that's their problem. Now, Civil Engineers designing bridges is a different issue.

    I expect it would be the same for software engineering. Good (and neerly necessary) to have the certification, but it won't impede Free Software in any way.

  17. Licensed to do what? by pla · · Score: 2, Interesting

    I see a *HUGE* problem with requiring licensure to practice software development, aside from the legal ramifications on open source work.

    I do mostly low level coding, firmware, device drivers, things of that nature. I can interface with anything I can get a spec for.

    I do not, however, know much at all about application development. I do not know much about writing an OS. I do not know much about game development. Yes, I can understand the concepts involved, but that differs from having the familiarity required to do those things with confidence in my abilities.

    I agree that making software less of an "art" would help large corporations take fewer risks in hiring coders. While not a big fan of "That which benefits M$ benefits America", I can also see the side benefit of helping to separate the real developers from the web weenies.

    Until we have only one platform, however, with only one API, only one programming language, and only one conceptual model (ie, OO, which I personally dislike), software development *MUST* remain an art.

  18. Software Engineering Code of Hygiene by imrdkl · · Score: 3, Funny
    • 1. Thou shalt not clothe thyself with stupid conference t-shirts.
    • 2. Thou shalt bathe.
    • 3. Thou shalt hold thy cube clean and pure.
    • 4. Thou shalt wash thy keyboard, and screen, occasionally.
    • 5. Thou shalt not allow the bottom of thy chair to collect undesirable, hardened objects.
  19. Some observations from a non-software engineer by SimJockey · · Score: 5, Interesting

    Background: I am a chemical engineer, and I currently work in water treatment.
    To me an essential part of engineering has always been a sense of responsibility to society as a whole. Technology is harnessing natural forces in a way that provides benefit to someone or some group. Engineers try to ensure that this technology is used is as safe a fashion as possible. Minimization of risk. Planes stay in the air, bridges don't fall down, the water is safe to drink.
    The article is hopelessly /.ed, so I'm not sure entirely what the IEEE is up to. However I would think that there is a definite need for accredited software engineers for software systems that would pose a hazard to life or limb by their failure. A control system for an oil refinery, or medical equipment, for example are no place for feature rich bloatware that needs to be re-booted once a day.
    The other side of the responsibility coin is liability. Engineers must show due diligence and carry liability insurance. It would likely be easier to insure an accredited software engineer working on a mission critical system.
    I'm anxious to see what might come out as accreditation criteria for software engineers. I hope it would require some knowledge of the larger technological context and social responsibility.

    --
    Laugh while you can, monkey boy!
    1. Re:Some observations from a non-software engineer by omnirealm · · Score: 2

      Planes stay in the air, bridges don't fall down, the water is safe to drink ... I would think that there is a definite need for accredited software engineers for software systems that would pose a hazard to life or limb by their failure.

      Planes stay in the air and bridges don't fall down, not because the engineers who built them were "accredited," but because if that were to happen, the engineering firm that built the plane or the bridge would be in breach of contract and would be sued into oblivion.

      The role of government in a free market society is to enforce legally binding contracts, not to make a straw-horse licensing scheme to make us all feel warm and fuzzy about the people who manage our water and build our bridges. Believe me, if engineers were held accountable directly to the people for the quality of service they provided, they would provide a good service not for some sense of responsibility to the people around them, but because they would want to save their own hides. Let's use the strongest motives in the best possible way.

      "It is not from the benevolence of the butcher, the brewer, or the baker that we expect our dinner, but from their regard to their self-love, and never talk to them of our own necessities but of their advantages."

      - Adam Smith, The Wealth of Nations

      --
      An unjust law is no law at all. - St. Augustine
    2. Re:Some observations from a non-software engineer by richieb · · Score: 2
      Engineers try to ensure that this technology is used is as safe a fashion as possible. Minimization of risk. Planes stay in the air, bridges don't fall down, the water is safe to drink.

      I think engineers are also driven by the cost/economy of the designs they create. It's a balance of conflicting requirements.

      For example, if you study the history of bridge building, you'll find that Galileo's formula for the strength of the cantilever bean was wrong. Yet bridge builders used it successfully, because of large safety factors they used.

      But the requirement to reduce costs, reduced the safety factors, until bridges started failing. Only then someone reexamined the formula they all used and discovered an error.

      ...richie

      --
      ...richie - It is a good day to code.
  20. Only if companies adopt this policy... by Tazzy531 · · Score: 2, Insightful

    Disclaimer: I haven't been able to read the article yet; it's taking a while to load up. (Plus, I bet only half of the people that post don't even bother reading it before posting anyways) Computer Science and computers have always been well ahead of the people that create and develop laws. IF this ever became a law, very few people would actually follow it. I mean, how many top-notched computer programmers actually have official title education? I mean, probably a quarter of the very best programmers out there started doing it BEFORE computer science even existed. Secondly, the only possible use that this would be would be if the government or a top-tier company needed a developer to develop a fail-safe application. Let's say NASA needed an application, this might be a benchmark for them to identify talent. Lastly, to some extent, I agree that software engineering should be come a little more structured. There is a major difference in the code style and programming style of programmers that have proper education and those that are self learned. With education, coding becomes a more structured practice. This is a valuable asset in a corporate or group environment. If a certain person write code that only he or she understands, it costs the company even more because of the greater amount of time that it takes for other people to learn his code and style. However, on the other hand, some self-learned individuals, not learning structured development styles, are able to take shortcuts or find optimizations to produce better codes. (As always, this is a generalization. There are obviously exceptions to these two rules.) So to sum it up, this IEEE proposal would benefit schools and corporations because it creates structure in programming style. However, something like this could never become law in the same way that you need a medical license to practice law.

    --


    _______________________________
    "I'm not Conceited...I'm just a realist..."
  21. The problems with certification by Anonymous+Brave+Guy · · Score: 5, Informative

    We have had some discussion on the C++ newsgroups recently, regarding the possibility of getting a decent C++ certification scheme started in the industry. Bear in mind that we're talking about a major language here, and one that has an incredibly high number of "users" who don't really know the first thing about it -- or worse, get that first thing wrong -- but think they're experts. There is no single commercial body that "owns" C++, so no political spin needs to be put on things. Basically, this is a prime candidate for certification.

    Except that we concluded viable certification was not going to happen. Without a major industrial sponsor, and without a large body of experts who are actually qualified to administer the necessary tests, you'd never get it off the floor.

    And what would "certified in the use of C++" mean, anyway? There are many different areas of C++ programming, and while some projects use most/all of them, other projects would never use, for example, much of the STL. To have any practical use, any certification would have to be more precise than just "good at C++".

    Remember, this is just one language, and still the expert population felt it would be impossible to provide an effective recognition in today's environment. What hope can anyone have of effectively regulating software engineering as a whole in this today's development world, then? There are more contradictions in this industry than anywhere else I've ever seen, with some companies successfully using development methods for years where other companies have failed completely using the same methods. Who's to say, with any justification or authority, which methods a "chartered software engineer" should use?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:The problems with certification by Pedrito · · Score: 2

      As a C++ programmer, I agree, it would be nice to see some sort of accreditation, but it won't happen. Not with C++, and not with programming. Not anytime soon.

      Why not? Because programming is no more science than art and no more art than science. Yet.

      I have big dreams for programming. I dream of one day it being an engineering discipline. Today it isn't. At least not as practiced by most software developers.

      A chemical engineer posted earlier talking about responsibility to society. I agree, but he's also talking about a very small percentage of programmers. I write database systems. If someone uses my DB system for a life-critical function without my knowledge, well, their bad. If they ask my opinion, I'll say, "Don't use it for a life-critical system."

      It comes down to this. It's art, with some science, until it becomes life critical. At that point, it MUST be engineering. That's the difference, though. The application, not the skill. Programming will always be on the fringe of engineering with a lot of "art" involved. At least in the forseeable future.

      Is this a bad thing? I don't know. Aspiring to engineering is, in some ways, a good thing, but look at all the good stuff that came out of lone programmers, working out of their basements, with no degrees, writing cool software. It's happened, and it will continue to happen.

  22. typical the US call things science by johnjones · · Score: 2

    oh my

    science is about trying things out understanding things

    Very little to with enginering
    (yes they work on many of the same concepts and engineers would not exist without scientists)

    engineering is boring repeatable stuff churning out things at the same standard how many software releases are of EXACTLY the same quality

    arrgh

    john jones

    1. Re:typical the US call things science by Ars-Fartsica · · Score: 2
      science is about trying things out understanding things

      Aren't philosphers trying to understand things? Isn't everyone? This is a flawed definition.

      Simply put, science is defined as a field that uses the scientific method.

      The scientific method is hypothesis-experiment-result-conclusion.

      This is why math is not a science - there are no "experiments" in math.

      Computer science does use experimental methods from time to time - I know of one case where sorting algorithms were applied to real-world data to test the hypothesis that a quicksort using a randomized pivot would be superior. Since the pivot was randomized, the only way to tell if it was better was to test it.

    2. Re:typical the US call things science by Ars-Fartsica · · Score: 2
      Ok, I'll bite. How about this: there is no math, just few lucky collisions with the truth.

      Math has no "truths", only axioms.

      There is (probably) only Statistics, the measurement of experiments.

      Huh?

  23. Certify Software, not Software Engineers by blair1q · · Score: 3, Insightful

    A certified engineer can still make a mistake.

    Certified software is tested and putatively immutable, and you can always throw more testing at it if you think it needs it.

    DO-178B procedures require that all software designs and implementations be reviewed and tested, the tests reviewed, and the reviews reviewed, by different engineers--or companies--wherever practicable. And it comes with different levels of certification, to allow cost reduction where lower levels of risk are involved.

    --Blair

    (Note to web surfers, if you want to go to yahoo.com, say, to find standards links, do not mis-type the domain as "yaho.com". Trust me on this. I also advise everyone to use Panicware's free Pop-up Stopper. This node is getting wrapped right now.)

    1. Re:Certify Software, not Software Engineers by blair1q · · Score: 2

      Actually, that's the reason the DO-178B system is the way it is.

      It's designed to indemnify the engineers, the companies, and the FAA against liability for failures.

      Independent review and testing indemnifies individual engineers.

      Testing and review to an FAA-approved standard indemnifies the companies.

      Good-faith reduction in bug counts, and full disclosure of unrepaired bugs, indemnifies the FAA.

      The trick is, certain kinds of unrepaired bugs will not get certified. Certain kinds will get certified if they are properly disclosed and documented. The company takes responsibility for those, and the FAA approves them. Those bugs are determined by review and testing not to affect the certification level of the software.

      So it's important to note that certification doesn't mean bug-free, either. It just means safe enough to fly on, which is all you can ask for in the real world, where going 7 miles up in the sky in a tin sausage with a million parts and a million lines of code and all-too-human operators and fellow travellers is considered a safe thing to do.

      --Blair

  24. Professionalizing Software is Premature by Crispin+Cowan · · Score: 5, Insightful
    Professionalizing software development entails:
    1. Codifying a set of "best practicies" that, when applied, assure a solid product.
    2. Codifying educational programs that teach these best practices.
    3. Certifying people who graduate from the educational process as "Software Engineers".
    The big problem with this idea is step 1: Sure, we have best practices, but they do not assure a solid product. By far, the highest assurance practice to date for developing working software is to make sure the developers have a lot of talent and dedication. There are software engineering best practices, but when goobers apply them, they are fully capable of producing bloated non-working crap. This is characteristic of an art, not an engineering discipline.

    It is very nice that people are sufficiently concerned about software quality and its impact on the real world (e.g. comp.risks). But this in no way means that we actually have best practices that will assure that mediocre developers can produce working product. Wishing for it (or mandating it) will not make it so.

    Crispin
    --
    Crispin Cowan, Ph.D.
    Chief Scientist, WireX Communications, Inc.
    Immunix: Security Hardened Linux Distribution
    Available for Purchase

    1. Re:Professionalizing Software is Premature by KarmaBlackballed · · Score: 2

      What you say has the feel of truth because it fits the reality that we experience today. The only people I've met so far that believe process fixes all software development issues do not code themselves. Those that code know there is a fundamental talent+attitude aspect to this whole thing.

      In traditional engineering disciplines, the laws of physics apply and do not change. On these laws, best practices have been built. No matter where you apply these practices, you can be sure the laws supporting them are just as they were before and will be tomorrow. This covers most of the work we consider "engineering."

      In software development, there is less solid stuff to build our rules on. Heck, the very hardware changes all the time

      I agree 100% that it is premature to expect software engineering to match mechanical/electrical/civil/chemical engineering in predictability today. However, it is self eviedent that there are some things we should expect all professionals to apply as a best practice. (e.g., Document your d*mn code, apply good naming conventions, get user buy in, keep backups, etc.)

      --

      --- -- - -
      Give me LIBERTY, or give me a check.
    2. Re:Professionalizing Software is Premature by richieb · · Score: 3, Insightful
      In traditional engineering disciplines, the laws of physics apply and do not change. On these laws, best practices have been built. No matter where you apply these practices, you can be sure the laws supporting them are just as they were before and will be tomorrow. This covers most of the work we consider "engineering."

      Even in traditional engineering disciplines knowing the laws of physics may not help much. For example, consider civil engineers who try to control floods. We understand the basic physical process (i.e. gravity pulls water down), but the system of rivers etc, interacting with the weather is chaotic, and there is no scientific theory that tell us where to build dams to stop floods.

      The problem is that engineers are asked to build things, whether the science to help them exists or not.

      ...richie

      --
      ...richie - It is a good day to code.
  25. Who's there by Alomex · · Score: 2


    I did a quick search in the list and found very few people from big name universities, with all the four big names in the field (software engineering is not my cup of te) that I know missing.

    This makes me wonder if this process has any credibility then... Anybody out there who can comment (intelligently) on this?

  26. I agree by HanzoSan · · Score: 2



    I dont want software engineering to become some esoteric type of thing like quantum physics, or math, I want it to be something everyone can take part in.

    Thats what open source is all about, allowing anyone with knowledge to contribute.

    We shouldnt even have "licenses" and so on and so forth because in the real world, its not how many licenses you have, but what you can contribute that matters.

    I say its an art and a science, and we shouldnt swing one way or the other, but if people are pushing it toward science, then i'm going to push it toward art, and i'm sure anyone whos a programmer for open source will agree that its an art, unless they work for microsoft and then perhaps its a science.

    --
    If you use Linux, please help development of Autopac
  27. Passing a test doesnt make you a good programmer by HanzoSan · · Score: 2, Insightful



    This idea is just plain stupid. Its an attempt to make programming as esoteric as other scientific fields.

    Problem is, we need more programmers not less, why make it hard as hell now to become one by requiring people go to special schools like a doctor has to go to medical school, and requiring they pass all these overly difficult tests ?

    --
    If you use Linux, please help development of Autopac
  28. Re:Passing a test doesnt make you a good programme by aridhol · · Score: 2

    That's why I suggested mandatory recertifications. Perhaps something besides a test can be used. What is the entire body of Joh Hacker's previous work? What has been written since the last recert board?

    I also don't like exams. Too artificial for me.

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
  29. No certification for me please by wickedhobo · · Score: 2

    I'm a fairly experienced system architect as well as faculty in the CS/COE department of a major university, yet I have never received a degree in CS or engineering, nor any professional certifications in engineering. I fail to see how these would make me a better developer.

    In fact, I've often found that my lack of formal background is a help rather than a hindrance. I'm often able to think outside of the traditional engineers paradigm. Because of that, I often see other developers being surprised at something I though up, that they never would have tried just because their training told them that sort of thing doesn't work. Since I work in distributed middleware and DB research, coming up with new things is kind of the point.

    -Hobo

    --

    --Stupidity is Self Curing!
  30. Passing a test does not make you a good engineer!! by HanzoSan · · Score: 2, Insightful



    You just dont get it. Programming is not like building a house.

    When you build a house, you cannot freely learn from millions of other houses built by taking it apart peice by peice and putting it back together.

    Programming allows ANYONE to learn on their own and become a good software engineer.

    Passing a test wont prove that you are good, It just proves you are good at passing tests.

    The proof should be in your source code.

    Perhaps as a test, requiring people write several programs and submit them to a review group, (similar to the driving test) so people can SEE they have skill, would actually be a better idea.

    But to give a standard TEST, it doesnt come down to skill, it comes down to how much of the text book you memorized.

    Its stupid.

    The source code should prove someones worth, not a test.

    --
    If you use Linux, please help development of Autopac
  31. Re:Licenses dont prove much by aridhol · · Score: 2

    I agree with you completely. Which is why, in response to another poster, I reccomended that the license be not based on a test, but on the body of all the work you've done. Require re-certification every N years. The review board looks at the code written between re-certs. They determine whether it is worthy of re-certification.

    The main problem I see with this is with engineers not being allowed to show their work due to NDAs. Not quite sure how to get around that.

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
  32. Re:Huh? I don't get the fears.... by John+Miles · · Score: 2

    Yes, you can fix your own radios. You'd be allowed to write your own software. But would you be allowed to write it commercially?

    Not a problem. An un-degreed SE would be "allowed" to write commercial software, just as an undegreed EE would be "allowed" to design commercial hardware. (Ever hear of a fellow named Wozniak? Or Dell, for that matter)

    Professional engineering licensing/accreditation issues tend to be relevant when government or military contracts are at stake. For instance, no municipality is going to accept a bridge-design proposal from some random dude calling himself a "civil engineer." Likewise, you're not going to work for JPL or NASA unless you can show the necessary professional credentials to indicate competency with metric and English units, for example.

    It's true that a few talented engineers have been held back by a lack of degrees and licenses. After WWII, Wernher von Braun had to send off for a mail-order doctorate degree before Congress would take him seriously. But for the most part, this action on IEEE's part isn't something that should scare anyone, IMHO. The IEEE is a rather toothless organization, and no commercial interests are going to let them threaten the supply of talent, accredited or otherwise.

    --
    Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  33. Certification: About Time by Ars-Fartsica · · Score: 2
    After being a software engineer for ten years, I have found one constant in this field of work: disappointment and disgust.

    If you allow anyone to program professionally, then you must be prepared for more terrible code.

    And please spare me the anecdotes about the English major who is the world's best programmer - we don't architect our socirty on corner cases. Added to which, there would be ample opportunity for non-CS grads to gain the certification where it to become required.

  34. Who are you going to trust? by Ars-Fartsica · · Score: 2
    No one is pointing a gun at your head forcing you to get a licensed architect or structural engineer to design your house. Yet when you look up prospective contractors you are obviously going to ask them, and probably pick one who has his certification.

    So why not let it stand as a marketing device? If you want software from the lay-hacker, you can choose to buy from him. If you choose to buy it from the certified hacker, you may do so freely.

    Within a decade the marketing clout of the certification (if it is worth anything) would put the uncertified hackers out of business. Its just human nature - we look for a degree in the dentists office, don't we?

  35. Your first sentence is incorrect by Ars-Fartsica · · Score: 2
    Microsoft says I'm a systems engineer.

    No, Microsoft says you are an MCSE. They make no attempt to generalize your skillset beyond that which is required to pass their certification.

    1. Re:Your first sentence is incorrect by Anonymous Coward · · Score: 2, Insightful

      Yes, you are a Microsoft Certified Systems Engineer, but that can't be broken down into (Microsoft Certified) Systems Engineer (as that infers a common standard that can be equally accredited by any body), but more to the point should be surrounded by quotes and an "TM" symbol.

  36. Re:Passing a test does not make you a good enginee by DGolden · · Score: 2

    The way a "real" engineering discipline works:

    I am a mechanical engineer (MEng Mech Eng.). I passed lots of tests (barely, I only got a 2.2). But even to get that qualification, I _also_ had to complete team and individual industrial-style projects + have them reviewed. (Designing a recumbent pedal vehicle, and a streamlined body for a vehicle.)

    Even so, I'm not really a fully qualified mechanical engineer - I'm not chartered. (I probably never will be, since I started developing software instead, but that's another story.)

    I don't know how it works in America, but the way you fully qualify as an engineer (get your charter) in Britain and Ireland _is_ by the mechanical engineering equivalent of writing several programs and submitting them to a review group - the IMechE. After a few years as a "rookie" mechanical engineer in the industry (usually with a "mentor", an engineering guru to guide you on your way), you submit details of the projects you have worked on for review, and have an unfun interview. If they're up to scratch, you get a charter. The academic tests don't really mean much, beyond a certain basic level of competence, unless you're sticking in academia to do research.

    Just as I can happily write programs without being a qualified software engineer, plenty of people can happily design machines without being a mechanical engineer. But qualified mechanical engineers will probably do a better job, and be allowed do it where people's lives are at stake - note how most software says things like "not to be used to run a nuclear reactor" in the license?

    Also, mechanical engineers don't go off and reinvent the wheel from scratch either - we don't re-derive the Navier-Stokes equations each time we use them, and, when we're designing something, we used a (gasp!) "component-based approach" - ordering off-the-shelf parts and slotting them together. It keeps the cost down that way, and is a lot like component/ OO programming with a rich standard API. Kinda like writing Java applications, in fact (what I've actually spent the past while doing). Building and Civil engineers use a similar approach for... building houses...

    Programming _is_ like building a house. Generally, you're slotting together lots of components that people have already designed. A builder doesn't make his own bricks - bricks come in a selection of standard sizes from the brick factory.

    So, why not a similar approach for life-critical Software Engineering?

    --
    Choice of masters is not freedom.
  37. There is art in all branches of engineering by Ars-Fartsica · · Score: 3, Interesting
    If you are going to loosely define "art" as the practices that produce elegant solutions, this applies to every branch of engineering. There are structural engineers who are sought out by architects for their ability to render a satisfactory strcuture in an artful manner, so for structural engineers, asthetics matter.

    For electrical engineers, the elegance may be in minimzing the number of transistors in a design.

    For chemical engineers, the elegance may come on the form of the safety or usefulness of the byproducts of a reaction.

    All engineering fields value elegance in method and design. The notion that "art" separates programming from other engineering endeavors is bogus.

  38. Totally not true by Ars-Fartsica · · Score: 2

    Its ridiculous to assert that there are no means by which you can qualify and test programmers. Haven't you ever applied for a job? Didn't they ask you any programming questions? Did you take the Computer Science GRE? There are numerous excellent methods available for ascertaining some basic metrics about the competency of a programmer.

  39. No, we would ALL have to be recertified by Ars-Fartsica · · Score: 2

    Obviously there would be no prohibitions on non-CS grads getting certified. Why would there be? CS grads may have some inherent advantages, but I've never heard of a certification proposal that requires a CS degree.

  40. Unfortunately you are preaching to the wrong crowd by Ars-Fartsica · · Score: 3, Interesting

    Your statements are well thought out and valid, unfortunately the group-think of /. is so peversely self-contradictory that it really makes you wonder where common sense went. You see, /.'s rail against certification every time an article comes up suggesting it, but then they spend the rest of their time bitching about Microsoft's crappy software and how horrible it is that they "get away with it".

  41. Whats the problem? by Ars-Fartsica · · Score: 3, Insightful
    No one is claiming a certification exam would be perfect. Is the SAT perfect? The GRE? The GMAT? At some point you are going to have to comprimise and assume that no one will get everything right or everything wrong, regardless of their state of knowledge.

    What is so difficult about going through Stroustrup's book and picking three or four topics per chapter and formulating questions from them? Some could be true/false, some multiple choice, and some requiring you to "write" code snippets. It seems pretty straightforward.

    The problem is when most "expert" groups discuss this topic, they typically look for a test they could get perfect in, based on the fault assumption that their perfect mastery of C++ must result in a perfect score.

  42. Re:Creating Software is not Engineering by tius · · Score: 2, Insightful

    You are correct to a degree, but only for some types of S/W systems. For example, my word processor is artfully designed for me to intuitively make the most out of it's capabilities. Great, but it crashes due to sloppy, 'artful' practices. Ok, it's a word processor, I lose a bit of work...annoying, but not critical.

    Now for the systems that I hope were not designed in a purely 'artful' manner: Aircraft control systems, my microwave oven, the telecom switches that connect me to emergency services, chemical/nuclear process control systems, automotive control systems, traffic light control systems, fire control system on a smart bomb, nuclear attack early warning systems, pacemaker control system, computerized medical equipment (life support, anaylsis equipment...etc.), electronic infrastucture for commerce...etc..

    These are all S/W application areas that demand an engineered solution. That means that the system performs the required functionality correctly, meets the required level of reliability, and does not perform unintended actions in either normal or extrordinary circumstances.

    Artistic qualities do play a role in design & implementation, but it is not the only quality required to build & test such systems.

    Could you imagine someone 'artistically' testing such a system? "Well, the system 'felt' right...I think we should ship it." "Oh, it failed! It killed 300 people! Tsk."

    Last word; Programming != S/W engineering.

  43. Re:Creating Software is not Engineering by mogens · · Score: 2, Insightful

    (How this scores 3 is a mystery)

    Computer SCIENCE is very much part of mathematics. Denying it just proves that you slept through class, or avoided taking the hard classes because they had math in them.

    Computer SCIENCE comes up with tools like VDM and Z (formal methods) that can be applied by ENGINEERS to verify that the software that was built.

    Application Software construction is very much like movie-making already. You usually have a director (architect/designer), lighting and camera-crews (database and graphics experts) and so on. However, they all use tools like cameras, lights, and cranes (compilers, database engines, Open-GL drivers). These tools are usually certified by ENGINEERS who have used the processes that SCIENCE gave them.

    Beautiful stuff does come out of the IEEE. 802.11b for example. Wi-Fi or Airport the marketing departments are calling it. Quite popular these days, apparently.

  44. Re:Professionalizing would help w/H-1B abuse by elflord · · Score: 2
    Professionalization would keep standards higher in many ways- by keeping people out who are little more than code monkeys, but more importantly via the creation of a bona fide association with some real political power.

    Actually, a lot of the H1Bs are qualified, because a lot of them use F1 (student) visas to get into the country in the first place. And the foreigners are more determined to go through such steps. If qualifications were so important, it would give companies all the more reason to choose a foreign national with a masters, than a US citizen who's graduated from a related degree (eg math or electrical engineering ). You're not going to keep foreigners out by raising the bar.

  45. Read "After the Goldrush" by MagikSlinger · · Score: 2

    By Steve McConnel. I used to fear licensing software engineers until McConnel explained what being an engineer *really* means.

    You can still write software, even for commercial purposes. In fact, there would be many situations why a sotware engineer is not what you need.

    In any given engineering shop, there's only a handful of licensed engineers. There are still other engineers there who do the work, but the licensed engineer oversees the work and ensures due dilligence and best practices are used. In electronics, there are electronic technicians who don't have engineering degrees who design electronics. Instead, those places have a single licensed engineer who will oversee the final design and inspect it.

    Do not fear software engineering: embrace it!

    For the record, I do not qualify for licensing as a software engineer, but a licensed software engineer wouldn't mind hiring me to work on his team.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
  46. Back asswards by Ars-Fartsica · · Score: 2
    The big problem with this idea is step 1: Sure, we have best practices, but they do not assure a solid product.

    The goal is failure avoidance.

    There are software engineering best practices, but when goobers apply them, they are fully capable of producing bloated non-working crap.

    I think you're blowing smoke. What are these best practices that produce crap? No one said best practices would make stupidity obsolete, so please don't tell me about people misapplying or misusing well-defined practices.


    It is very nice that people are sufficiently concerned about software quality and its impact on the real world (e.g. comp.risks). But this in no way means that we actually have best practices

    The two are completely independent in any case...so what are you saying? Obviously we know some best practices in software engineering...don't use GOTO, comment your code, use a debugger...come on, are you telling me that in fifty years of programming we haven't learned anything?????

  47. Software is not an engineering discipline. by SCHecklerX · · Score: 2
    It is simply something engineers use to do their job. Programming is a tool, not an end in itself.

    The next thing you know, people who write will want to be known as 'book engineers.'

    Hardware is engineering. Software is simply telling the machine what to do. An engineer designs ACS. An engineer does not write the specifications to mill the parts created by the ACS, although he might be involved in the *LOW LEVEL* programming that controls the physics of the thing.

    If there is to be a software engineer, it should be limited to the software the directly interacts with physical systems (ie, ACS).

    As always, just my opinion.

    SCH - Aerospace Engineer.

  48. Re:Unfortunately you are preaching to the wrong cr by Ars-Fartsica · · Score: 2

    No "certified" software engineers work anywhere, there is no certification. Thats the whole point of this article.

  49. That's not all. by Nindalf · · Score: 4, Interesting

    First you need that Engineering degree, and they are really nasty about transferring credit or allowing courses to be challenged. Basically, figure at least 3 years as a full-time university student if you already have very relevant training.

    But then you need 4 (IIRC) years as basically an apprentice, working full time under the direct supervision of an accredited engineer. Naturally, this is, "We can end your career before it even begins!" internship-type employment.

    So we're talking about a bare minimum 7-year investment (more likely 8 or 9) before they'll even look at you. These restrictions have been tightening up, requiring larger and larger investments in time, over the last decades, and I expect it to continue in this manner.

    It seems to me that all of our professional organizations are slowly becoming old-fashioned guilds, organized less for the benefit of the general public and more for the members. Organizations in which one doesn't become a full member who can work unsupervised until middle age, assuming one commits oneself in one's youth. They already have the protection of government, so entrenched that nobody ever seems to suggest weakening their monopolies.

    Do we really need a Bar Association? Do you think lawyers are more ethical, more beneficial to society because there's a government-granted monopoly to its members on arguing the law on others' behalf? Do you think your area's medical association is doing the best possible job producing competent, efficient doctors with no competition or alternative of any kind?

    How many professionals are just wielders of required rubber stamps? How many brilliant young potential innovators are slowly crushed into mediocre clock-watchers, who have been shown again and again that putting your time in, looking respectable, and covering your ass pays off better than doing your job well and advancing the state of the art?

    I think that far too few people question the value, competence, and good faith of professional organizations. They're just accepted as natural features of a well-run society, assumed to be the best interface to highly specialized skills without an active evaluation.

    I look at them, and see the gradual calcification, then downfall of our society. I see never moving beyond asphalt roads and cars that move at 60 MPH, never moving a viable population off the planet, never extending the average human lifespan beyond 100 years.

    I hate to see people talking about moving this kind of influence into software. It's one thing to run competing private organizations that certify certain skills, it's quite another to start legally requiring certification from a particular one, giving it monopoly status. Let alone ceasing to question whether it should keep that status.

    1. Re:That's not all. by Nindalf · · Score: 2

      Professional accreditation organizations are there to guarantee a minimum level of competence for the accredited people qualified in their field. Do you really want a lawyer that doesn't have this minimum level of competence? A doctor? What about the civil engineers who design the buildings you live and work in?

      How about a cook? A car driver? A janitor? A construction worker? Any of those could kill you with their incompetence. Do they spend 8 or 10 years in training, supervised work, and examinations before they are allowed to work on their own?

      The risk is managed because both they and the people who hire them are liable for any consequences of their incompetence. It is possible to verify skills without a government-granted monopoly on certification.

      A decade is too much for a minimum-cost verification of competence, that's practically a lifetime committment. It's hard to recognize competence in such involved fields, but not that hard. In this case, for example, only recently they doubled the experience requirement. Were the previous engineers incompetent? The fact is that the existing members had nothing at all to lose by extending the experience requirement, though this was clearly (through long precedent) not necessary to ensure "a minimum level of competence," as you put it.

      The problem is that we give these organizations free rein. They are assumed both ideally competent and to be looking out for society's interests. They are never cut down to size when they start stepping on people's toes in areas where they've never been needed before, or when a field is so developed with other specialized workers that they are reduced to placing their seal on a job already done, instead, their influence constantly grows by tiny increments, until you see such profound idiocies as needing to hire an engineer to verify that your lawnmower shed is structurally sound before you are allowed to build it.

      They're not evil, they're not out to stiffle innovation and "calcifify" our society.

      Perhaps one day you will understand that sometimes ostensible intention is not the same thing as effect. Nobody writes laws intending to make things worse, but there are bad laws.

    2. Re:That's not all. by Pig+Hogger · · Score: 2
      Professional accreditation organizations are there to guarantee a minimum level of competence for the accredited people qualified in their field. Do you really want a lawyer that doesn't have this minimum level of competence? A doctor? What about the civil engineers who design the buildings you live and work in?
      How about a cook?
      My grandfather won a medal during WW-II, for saving the life of 200 men.
      He killed the cook.
    3. Re:That's not all. by sigwinch · · Score: 2
      But then you need 4 (IIRC) years as basically an apprentice, working full time under the direct supervision of an accredited engineer.
      There's more: you are often required to have worked under several different PEs. If your employer doesn't have enough PEs, you have to resign and go somewhere else. (Note: job hopping in your first few years of employment is a career-limiting move.)

      The PEs you work under have no obligation whatsoever to provide you with references. If they did give you a reference, you'd be able to take work away from them.

      It seems to me that all of our professional organizations are slowly becoming old-fashioned guilds, organized less for the benefit of the general public and more for the members.
      Here in Oklahoma (United States), you are absolutely prohibited from doing *anything* that requires engineering-oriented technical knowledge unless you have a PE. This includes Radio Shack electronics kits, serving as a teaching assistant for a university engineering coures, operating a ham radio, *anything*. It doesn't matter if you aren't selling services to the public, or even if the engineering work has no conceivable effect on the public. Even just thinking engineering thoughts is probably illegal. The statute is very explicitly all-encompassing.

      At the same time, you are absolutely prohibited from getting a PE unless you practice engineering beforehand. It's a beautiful catch-22 that gives the Engineering Guild -- let's call a spade a spade -- unlimited discretion to declare anything illegal and take pretty much any action they want. If they let you in, and later decide they don't like you, they can always go back and declare your pre-PE work unlawful and yank your license. The overall impression is one of banana republic corruption, except that the actions aren't even pro forma illegal.

      How many brilliant young potential innovators are slowly crushed into mediocre clock-watchers,...
      And how many flee to free states where they can talk about their jobs in public without fear of being arrested?
      I think that far too few people question the value, competence, and good faith of professional organizations.
      I think that the "professional" organizations are run by savvy politicos who know better than to attract the attention of the public, instead preferring to sneak around in the shadows. They can curry and maintain unlimited power because they are very, very discrete in exercising it. It's the usual power grab: make everybody a criminal with broad yet nebulous laws, then be very selective about prosecuting. The subjects' fear then rules them more effectively than any amount of draconian enforcement.

      It seems to me that recognizing the situation for what it is gives you extreme leverage. Simply file fifty or a hundred thousand lawsuits against the critical employees of the state's industries, alleging product liability and danger to the public since they don't have licenses. Write scare letters to all their suppliers and business partners informing them of the malpractice and making vague, scary pronouncements about vicarious liability. If you do it thoroughly enough you can basically kill the economy overnight, scare all practicing engineers shitless, and piss off the general public in a major way. You probably wouldn't win with this technique, but at least everyone else would lose too.

      I look at them, and see the gradual calcification, then downfall of our society.
      Hear, hear! I don't actually know how the average age of PEs has changed, but I suspect it is rising rapidly, and I've heard anecdotes that certain jobs (e.g., power utility engineers) can't find PEs to fill the jobs.

      Personally I'd like to see licensing optional for all things that don't directly affect public safety. Sure, the gov't ought to require experience and skill for things like bridges, utility power lines, steam boilers, nuclear reactors, and so forth, but private citizens and businesses ought to be able to hire whatever level of competence they prefer. The PE registration could be operated as a gov't service mark and people who falsify it could be prosecuted with existing trademark laws. Other organizations, like the IEEE, could create their own certifications and requirements as they deem appropriate. I think a license like "IEEE Master Engineer (Radio Communications)" would be a hell of a lot more useful to clients than a generic PE license.

      I have little hope of seeing a rational licensing system in my lifetime.

      --

      --
      Kuro5hin.org: where the good times never end. ;-)

  50. Accountability is key ...... by Samuel+Nitzberg · · Score: 2, Insightful

    I think that there are significant problems with relying on legal issues or tests alone for establishing or maintaining requirements for software developers, coders, managers, database people, etc...

    There are a number of theories regarding why software fails. There are many studies, papers, etc... I have even been involved in a few of them. I don't know of any study or organization who feels that - at the very heart of the problem - is a shortage of licensing. At best, some sort of licensing -- might -- be of some benefit, but I don't believe that should be the first or foremost solution towards addressing software quality problems.

    Many years ago, Scientific American magazine had an article on software; this article cited complexity as the reason software fails. I disagree. There are arguments about how complex software is - the difficulties associated with testing all computation branches and [execution] flows through a program (exponention, NP-C problems), testing software and module linkages, data typing and related matters, and many other issues. My experience and understanding is that most software problems relate to poorly thought out requirements, poorly documented changes, work done under time pressure, and a host of what I will call "fundamental" failings from software developers.

    I think that advanced training in software - degrees with math components, and formal software engineering training can be genuinely helpful. A great problem is organizations that do not know or care about the consequences of flawed work going out the door.

    Ultimately, with or without any form of licensing, I see one major step that would help software quality - ACCOUNTABILITY. There must be legal liability for software that doesn't work, or is purely dangerous. The onus must be on the producers of software to do the job properly.

    I know software can be large, and can be complex - but it also often sloppy, poorly thought out, and problems are considered post-release headaches.

    My presentation at H2K (Hackers on Planet Earth, 2000) addressed some of these issues. The presentation focused on Ethics in Military and Civilian Software Development. You can find this online from http://www.2600.com, and then following the link to the presentation. I have other papers that discuss this and related issues, also on my web site.

    Sam Nitzberg
    sam@iamsam.com
    http://www.iamsam.com

    1. Re:Accountability is key ...... by Sloppy · · Score: 2

      Ultimately, with or without any form of licensing, I see one major step that would help software quality - ACCOUNTABILITY. There must be legal liability for software that doesn't work, or is purely dangerous. The onus must be on the producers of software to do the job properly.

      If all software were like that, then Yes, software would be better, but it would not be affordable. Legal liability should simply be an extra-cost option. And to do that, we don't need to require any new regulations; we just need customers to use demand appropriate contracts (which they will pay for), or maybe a special type of insurance. That way, the software that controls your neutron control rods can be written by engineers who will be accountable and stand behind their work (and have spend ten times as much time as normal, testing and re-reviewing the code), and your desktop menu utility is allowed to be inexpensive (but possibly defective).

      What's wrong with that?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  51. Re:Unfortunately you are preaching to the wrong cr by Ars-Fartsica · · Score: 2
    Do you think the Microsoft software would suddenly become high quality if these people were "certified"?

    Firstly, I made no claims of my own regarding the quality of Microsoft code. That said,Microsoft software has improved. Drastically. Its the crap they've had on the market for ten years that is the source of angst.

  52. Re:Feh! by the+eric+conspiracy · · Score: 2

    Why would I want to be lumped together with a bunch of stodgy old electrical or mechanical dweebs?

    Because they are responsible for all the technology you use on a daily basis?

    And no, it wasn't programmers that build the first calculator. It was a stodgy old electrical dweeb.

    Seriously, I think that software that is used in critical applications should be subject to competancy requirements. Like the saying goes, if our buildings were designed like our software is, the first woodpecker that came along would destroy civilization.

    Otherwise licensing is a waste of time.

    And that is how it is done in other disciplines as well. Licenses are only required for work in certain areas - otherwise anyone who can convince a company that he can do a job can work as a engineer.

  53. Perspective of Canadian Software Engineer Student by lnical · · Score: 2, Informative
    I'm currently enrolled in a Software Engineering program at Lakehead University in Canada. The Software Engineering program is undergoing examination by the Canadian Engineering Accreditation Board (CEAB) If the program is approved and work for four years under a qualified Professional Engineer, I too can be come a Profession Engineer in Software Engineering.

    I was speaking to one of the members of the CEAB who visted LU on Monday. He recieved his P. Eng designation first in Electrical Engineering then later in Software. He said that the purpose of the Software Engineer should be for critical systems, namely those that if the fail, would put people in danger. The same as Electrical, Chemical, Mechanical or Civil or other Engineering professions.

    This doesn't mean that only software engineers can work on such projects. It means that before the software is used it must be approved or 'stamped' by a Software Engineer with a P. Eng designation.

    This is not currently required by law in Canada (AFAIK).

    Again, this doesn't mean that all programs have to be written by software engineers, or approved by engineers. It is just proposed for software that is life-endangering.

    For more information:

    P.S. Education alone does not an engineer make! It is the combination of education and engineering.

    P.P.S It is also possible to become an Professional Engineer without attending an accredited program. Several requierments must be met but it is possible.

  54. Proj Management Body of Knowledege - for SE by daveb · · Score: 2, Informative
    There's a lot of worry about all kinds of irrational things here - some people even seem to be saying that programmers won't be able to programme without having some kind of cert - absolute FUD!

    All the IEEE seem to be doing is codifying current 'best practices' in software engineering in a similar manner to the Project Management Institutes (ANSI std) "Guide to the Project Management Body of Knowledge"

    SE *is* project management as far as I've experienced it, or a subset. No-one with any sense would ever suggest that stds will prevent cockups in projects - but being totally ignorant of what many considers best practices will make you more likely to stuff things up.

    I really can't see why developers get so upset about groups trying to put up hand-rails and guidelines for managing large projects.

    If you're sitting coding up a wee access database for a mate or writing a little bash script to check your logs then you don't need them - but projects of a larger scale, involving many organisations and multiple teams DO benefit from guidelines.

    Dave

  55. No more licensing! by omnirealm · · Score: 3, Insightful

    That could then mean that licenses could be required to practice software development and that this could to regulation and other legal ramifications.

    No, no, no, no, NO, NO, NO!!! Keep the government AWAY from it all, for pity's sake! We don't want legislation to dictate who can and cannot write software. In my county, my wife and I are not allowed to cut each others' hair in the privacy of our own home. Because beauticians got together some time ago and petitioned the government to make it illegal to cut hair without a "license." To get a license, you have to go to a qualified beauty school and then spend so many hours cutting hair in professional, and authorized, salons.

    Of course, they then artificially limit the number of beauty schools that they allow to train for such licenses. The same thing happened in the medical profession. This sort of thing is routinely done by factional groups to pressure the government to create a stranglehold on the market, reducing supply and thus letting them charge more for their services.

    In the long run, it only winds up hurting us all by driving the price up while not increasing the quality of the services we receive. Do you really think that having an "official license" makes doctors better than they would be otherwise? Are "certified" Microsoft Engineers any more qualified to work with Microsoft products than the rest of us?

    Bad and good beauticians and doctors can be singled out by this little phenomenon called reputation. We don't need a piece of "official" government legislation to be mandated on all who want to enter the market in some lame attempt to make things better than they would be without the artificial intervention (do a search for "Adam Smith and invisible hand").

    Let anyone who wants to write software professionally, whether or not they have a degree, license, or whatever, and let the buyer beware. Let each entity build a reputation, and the market will pick the best man for the job.

    --
    An unjust law is no law at all. - St. Augustine
    1. Re:No more licensing! by Pig+Hogger · · Score: 2
      In my county, my wife and I are not allowed to cut each others' hair in the privacy of our own home.
      (Just curious. Which country is that?)

      A study revealed that electrocutions are higher where electricians need to be licensed. Why? because cheapskates who can't afford an expensive licensed electrician.

      And that story reminds me that in my hometown, restaurants are not allowed to buy bread on mondays. Why? so the bakers won't be forced to work on sundays...

  56. Needing a licence to develop software... by Dwonis · · Score: 2, Offtopic
    That's what's going to happen. And it will be because of all of you lazy programmers out there. You know who you are.

    You're the ones who think that bug-free code comes from testing and debugging, rather from design.
    You're the ones who say "with today's processors, I can afford to waste resources here," not realizing that inefficiency accumulates.
    You're the ones who don't bother to make sure you're checking return codes properly, or checking them at all.
    You're the ones who spend more time programming and less time planning a large project.
    You're the ones who think there is such as thing as a "releasable hack", a "production-quality kludge."
    You're the ones who think open-source is immune to all this.

    You're the ones who will quickly dismiss what I'm saying, or nitpick me to death.
    I don't know why I bother.

  57. Mutual Exclusion Syndrome isn't good for anyone!!! by Zero__Kelvin · · Score: 5, Insightful


    "On the surface this looks like a fairly boring document/process, but this is a major step forward - turning software engineering from an art into a science."

    On the surface viewing Software Engineering as all science and no art makes for boring documents and processes. When people are bored, they naturally don't do nearly as good a job. Indeed, the best Software Engineers have the science part down cold, but also have a natural instinct that is the direct manifestation of their artistic inclination. Art and Science are the Yin and Yang of Software Engineering, and to remove or diminish the role of either is to diminish the effectiveness of the software developer(s), regardless of which one you mistakenly choose to emphasize.

    If one wants to improve the overall quality of their software they must develop both their left and right brain. To shun one in favour of the other is folly. It is no different than strengthening one leg and cutting of the other in an attempt to be more mobile. Hopping around on that one remaining leg will certainly make it big and strong, but mobility will suffer almost detrimentally. I guess that makes it a major unbalanced hop toward the different, and less effective, not a major step toward anything.

    Perhaps these people have never heard of the Software Engineering Institute and the Capability Maturity Model? Then again, what do I know? I'm too artistic to be any good at Software Engineering ;^)

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  58. Too much process, not enough content by Animats · · Score: 4, Insightful
    Those documents are about process, not engineering content. There's a strong bias towards a waterfall approach (first the requirements, then the design, then the code). They're really documents on how to manage.

    The Association for Computing Machinery withdrew its support for this SWEBOK effort, after deciding that their approach to licensing practioners was inappropriate. So this probably isn't going anywhere.

    In comparison with other engineering disciplines, the real problem is that we don't have a good handle on how to build software with huge safety margins so that it doesn't need to be engineered.

    This seems confusing, until you look at, say, structural engineering. If you want to build something, there are standard handbooks that will tell you how to build something that's much stronger than it really needs to be, but won't fall down. That's how most houses are designed. Only when you get into more complex construction (steelwork, arches, laminated wood beams, etc.) do you need a licensed professional engineer to sign off (literally) on the blueprints.

    We don't explicitly make that distinction for software. With fifty years of computing behind us, it may be time to do that.

    A good place to start would be control software for anything with more than some minimal amount of energy. (For example, programming a VCR control CPU wouldn't require certification, but a garage door opener control would.) We could then go on to, say, software that handles the money of others, and perhaps to networking software that can affect more than 100 users at a time.

    A formal distinction of which software matters and which doesn't is the first step. The industry needs to take that step.

  59. Re:Passing a test doesnt make you a good programme by ergo98 · · Score: 2

    Being trained as an Engineer makes you a good designer of systems, no matter what type of system you're designing.

    Hooah! This is one of the funniest things I've read in a long time. I have worked with a lot of extremely talented Professional Engineers, and a lot of them I have great respect for. I have also worked for horribly incompetent PEs that have IQs teetering on 100, and have a complete lack of attention for details or what's important. This idea that Engineers are some super discipline is absolutely proposterous: They're just students who took the 5-6 year option rather than the 4 year option, sometimes because they want to parade around going "I'm an Engineer and my title is legally protected".

    Software quality is dictated by the process, not by the person. Tell me that your system is a CMM5 system using the IEEE 12207 standard in a 9002 (or whichever one applies) setting, and that you have code review, proper test cases, etc., and THAT tells me whether you have quality code. Telling me that the guy who typed in the initial lines is an Engineer is an absolutely racket and is absurd.

    The whole "engineer" designation is nothing more than a protection racket (I'm saying this as a member of two of the groups that have come up during this discussions): It's a way to raise the barriers to entry to say "Oh that guy who has designed 4 fantastic, robust systems in less time than we sat around and scratched our asses sure can produce, but it's not engineering production!". It's job security for those who have gotten an engineering designation. It's absolutely, positively absurd. An individuals knowledge in software development, no matter what their designation, will always be a tiny iota of the industry whole knowledge, making this field totally unlike any other that has come before.

    The IEEE rocks, but they should give up on personal certifications (unless they are "no barrier to entry" certifications. I want to know what someone can do, not how much they have martyred themselves) and stick to making standards that make better software quality through better processes and systems.

  60. Engineering is not science by richieb · · Score: 2
    Engineering is not science. Engineering uses science, if it is available, to accomplish it's goals. Here are some relevant quotes. First from To Engineer is Human:
    Structural engineering is the science and art of designing and making, with economy and elegance, buildings, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected.

    And the second from the current (Nov 19) issue of The New Yorker from an article about the chief structural engineer of the World Trade Center:

    "It is a tremendous responsibility, being an engineer," he said, his voice breaking. "It's a very imperfect process. It's not so beatiful as science."

    But my favorite quote about engineering and science is the one that says:

    A scientists discovers what is, an engineer builds what never was.

    ...richie

    --
    ...richie - It is a good day to code.
    1. Re:Engineering is not science by sys-eng · · Score: 2, Informative

      Engineering -- the application of science for the benefit of man.

  61. Too Many Vested Interests, Too Many Uncertainties by carlfish · · Score: 4, Insightful

    What worries me most is what you see on the front page of the site, namely the logos of a bunch of companies like Rational, Construx and SAP, who have vested interests in software engineering processes. If the committee goes away for a couple of years, comes back with a carbon copy of the Rational Unified Process and tells everyone they need to buy Rational Rose to get a certification, I'm going to be more than a little annoyed.

    The basic problem is that there is simply no consensus in the industry as to what constitutes "good engineering" in software, beyond a certain very basic level. We're a very, very young discipline, and unlike structural or electronic engineering the mathematics does not exist to prove what we are doing is right.

    In the absence of any real proveability in our craft, all you can do is make broad pronounciations, and then quibble about their interpretations. You can say "testing is good", but you'd never get a room full of programmers to agree whether test-first programming is better than testing completed code, and nobody's yet been able to determine which is more efficient under which circumstances. Similarly, you can say "well-designed code is good", but who's going to moderate the dispute between the CMM waterfall three month design phase group, the moderate Agile "design the module just before you code it" group, and the eXtreme "design is something you achieve as a by-product of merciless refactoring" party.

    I have little faith in the mission of this group, as I can't ever see it coming up with a satisfactory document. Either the qualification for being a software engineer will be so broad as to be useless, or (more likely) it will mean that the industry will continue on as it always has, we'll just go back to being called programmers, and spend our time scoffing at certified "software engineers" as followers of an arcane, broken methodology.

    Charles Miller

    --
    The more I learn about the Internet, the more amazed I am that it works at all.
  62. Mod this up by ergo98 · · Score: 2

    I have never before written a lame "mod this up" message but this message is one of the most truthful, profound posts I've read on Slashdot in a long, long time.

    The philosophy behind governing and certifications boards is a noble and reasonable approach presuming it was done right, but exactly as this message and the followup mentioned: How many times do you hear about an engineer being discredited, or a lawyer losing their license to practice law? How about doctors losing their license to practice medicine? The reality is that it is almost never (and only in the case of extreme negligence that is publicly known. For all of the talk of Engineers losing their certification I would love to see the numbers who actually have). These organizations exist to protect their members, not this absurdly ridiculous "protect the public" bullshit that hopeful PEOs are spouting on here.

  63. Programming in Practice by richieb · · Score: 2
    This article by Robert Glass is relevant to this discussion: Programming in Practice.

    ...richie

    --
    ...richie - It is a good day to code.
  64. no by Ender+Ryan · · Score: 2
    It will be because of legislators who don't know what the fuck they're doing.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  65. Re:Software Engineer != Coder by elflord · · Score: 2
    Maybe. I thought I was also describing a coder with better than average analysis, design, testing, and people skills. (Note that "coding" becomes maybe 1/5th of the total skill set.)

    Design, testing and analysis is part of programming. There really isn't much of a role for people who don't understand and can't learn design, analysis and testing ( I suppose they can design web pages or something, but that's about it).

    OTOH, management is a different issue. A programmer needn't be a good manager. An engineer needn't be a good manager either. Engineering and management are not the same thing.

  66. Wrong, as usual. by pixel_bc · · Score: 3, Insightful

    That could then mean that licenses could be required to practice software development

    Sigh. No.

    It would mean you couldn't go calling yourself a Software Engineer if you're NOT, but nobody is going to card you trying to buy a copy of VC++.

  67. software engineering -- tried and failed already by sys-eng · · Score: 2, Interesting

    Several years ago, many states attempted to enforce the laws on their books to require anyone acting as a professional engineer to be licensed as such by the state. As anyone who has ever achieved a Professional Engineering (PE) license can attest, there is no comparison between a PE and a MCSE. Comparing the exams would be like comparing middle school to college. The PE exams in most states are brutal. As far as I know, Texas is the last state to enforce the law as it applies to software. Many of the companies in "Silicon Valley" threatened to relocate of California enforced the law there. So, California (like many other states) changed the law to apply to structural and electrical engineering disciplines.

  68. Re:Software is not an engineering discipline. by sys-eng · · Score: 2

    And what about the software that causes the death and harm?? The hardware can generally do no harm without faulty software. What about faulty SW that allows a defective part to pass inspection and then fails -- causing death or harm? sys-eng

  69. Soft Eng already being accepted in Canada by Tester · · Score: 2, Interesting

    I'm studying software engineering right now in Quebec and when my group finishes, if I dont fail too many courses, I should be among the first software engineers in Quebec. I think Ontario and other other provine are 1 or 2 years ahead. That menas that by 2002 there should be Software Engineers(tm) in Canada.. Btw, at least in my province, you cannot state that you are an eng. if you are not official eng. so MCSE's have to have a different name and everything. They are definetely not engineers.

    But right now, the only privilige that software engineers will have here is to be able to sign with a eng. at the end of their name.. Our names ;)

    Good luck to my American coleagues!

    Tester
    Student in Software Engineering at Polytechnical School of Montreal

  70. Re:Passing a test doesnt make you a good programme by Grab · · Score: 2

    No, it's an attempt to make it non-esoteric. Scientific fields can be esoteric, concerned with things that don't affect normal ppl. But engineering is never esoteric! Engineering is concerned with taking all the rules the scientists and mathematicians have come up with, and using them as tools (or simplifying them where required) to solve a real world problem, like building a bridge, or making a chemical compound - or writing the software which controls the engine in your car.

    What's esoteric is art, and treating software as a pure artform rather than bringing in any scientific basis for it is a dead-end. In the past, scientific theories were judged not on whether they worked but whether they "looked" good or neat or felt "right" to ppl. This is the way software is today. What's needed is the software equivalent of Faraday, Darwin, etc - currently software is still at the alchemy stage where you can impress someone with something that looks flashy but is actually not doing anything at all.

    We absolutely don't need more programmers. What we need are more good designers. And the idea is to establish that good software design can be taught.

    Grab.

  71. Re:You cannot think unless taught to. by Grab · · Score: 2

    Maybe so, but you need to be able to devote the same amount of time to your studies as a full-time software engineer would.

    And who says that open-source projects are any good anyway? They may have good publicity, they may even work 100% of the time, but that doesn't make them good examples of software design. Nor is everyone who calls themselves a good software engineer actually worth listening to.

    To learn on your own, you'll need many, many good books. A lecture course is distilled from many books about recent advances, from history of the subject, and from the the lecturer's experience. How can you be sure, as a beginner, that there isn't some essential area you've missed?

    A doctor only requires a good mind as well, and an in-depth knowledge of illnesses and biology which can all be acquired from books. Your opinions on me offering medical advice without an MD after my name?

    Grab.

  72. This is pointless... by fleeb_fantastique · · Score: 2

    While I appreciate the need to identify competent engineers, most programming projects fail due to poor management, not bad engineering.

    If you really want to improve software, focus on better management, not on better engineers. With better management, you will eventually have better engineers without worrying about certification.

    Perhaps the IEEE should focus on a certification process for managing projects.

    --
    And so it goes.
  73. My point exactly by Anonymous+Brave+Guy · · Score: 2

    You make my point for me, I think. As you say, a language is just one tool, and there is much more to software engineering than just that. So, if we can't even sort out a meaningful accreditation system for that one language, how can we possibly consider trying to do it for software engineering as a whole, and put any faith in the result?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  74. The problem, and maybe a solution by Anonymous+Brave+Guy · · Score: 2
    The problem is when most "expert" groups discuss this topic, they typically look for a test they could get perfect in, based on the fault assumption that their perfect mastery of C++ must result in a perfect score.

    Not really. (You can go and look at the threads concerned using Google Groups if you want to see the real attitudes exhibited.) The problem is that certification programs produced thus far have been laughable. Take Brainbench, for example. I went along and got a top-in-my-country score in C++ the first time I tried. OK, I'm a better than average C++ programmer, but there were people on the standards committee who define the language further down than me. That might be because at least four or five of the questions they asked had no correct answer available, and that was a multiple choice test! If testing specialists can't get that right, what hope do they have of meaningfully assessing any testee-produced code?

    It's not just Brainbench, though. Take a look at an average Software Engineering course at universities these days. American ones seem to be particularly bad right now, with many uni's following fashionable languages and techniques regardless of any technical merit. My own university, a well-regarded one in the UK, still seems to think that software engineering should be based on the waterfall model, if you listened ot their lecturer. (It wasn't quite that bad -- alternatives were at least discussed -- but you get the point.)

    By the way, as for just taking true/false or multi-guess questions based on the contents of The C++ Programming Language, you won't get much meaningful information out of that. Like many old exams, all it tests if memory ability, with no real gauge of understanding. A few simple questions at the start of an interview might set the broad level of discussion for the remainder, but nobody smart recruits based on them alone, and it's notoriously difficult to set useful questions even then.

    I don't see any real progress being made in the area of software engineering accreditation until there is an independent body, run by software engineers for software engineers, wherein the body of experience and expertise is sufficient to give any assessments they make some reasonable credibility. Right now, most software engineers don't even belong to any sort of union, and only a few belong to any other professional body, in my experience. Compare that with most other engineering disciplines, and you see both how far we have to go, and perhaps the direction for the first few steps.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:The problem, and maybe a solution by Ars-Fartsica · · Score: 2
      Like many old exams, all it tests if memory ability, with no real gauge of understanding.

      Duh!!

      All any test teaches you is how to take a test!

      Please tell me you haven't gone through life being this naive!

    2. Re:The problem, and maybe a solution by Anonymous+Brave+Guy · · Score: 2
      Duh!!

      All any test teaches you is how to take a test!

      Please tell me you haven't gone through life being this naive!

      There's really no need to be insulting, particularly when you're so obviously wrong. For a start, tests don't generally teach you anything very much.

      There are many different types of test, and there is a vast difference between tests that emphasize factual knowledge, tests that examine ability to apply factual knowledge, and others. There is a whole branch of education studies whose sole purpose is to further the understanding of what you can genuinely learn from different types of test, and how to test to discover different things about someone.

      You sound like one of those old-school parents in the UK who tries to argue that exam standards are falling because they don't test as much factual knowledge these days. Whether or not exam standards, and more importantly, the relevance of achieving a particular grade, are falling, comparing apples with oranges is not the way to prove anything. And yet, here you are making sweeping generalisations about "any test". <sigh>

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  75. Indeed it is... by cnelzie · · Score: 2


    Having an MCSE, is indeed a method to become hired into corporate wherever, the other way is to know someone, at least in the USA.

    Anyway, I sometimes get to work with some of those MCSE-to-get-a-corporate-job people and to be honest, they are practically useless. The simple technical knowledge they lack is absolutely scary. I correct them, answer the same questions all the time. It is frightening to know that they are the people that are running the corporate network.

    So, I am working on getting my MCSE in order to "join" their ranks and fix all the crap that they are doing. It shouldn't take but a few months of self study. If they can pass the tests with their level of knowledge, I should have no problem at all.

    So, to recap, getting an MCSE is indeed a way for some people to get in the corporate hiring door. It sucks, but that is how it happens.

    Of course, I am just a help desk guy that got in through family connections. I am also a computer hobbiest, which probably helped a bit.

    --
    .sig seperator
    --

    --
    If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
  76. Re:Fight this or we will all become accountants by duffbeer703 · · Score: 2

    It's much better for software developers, and worse for software organizations.

    Licensing for software engineers will force quality design & coding standards, or at least require that legitimate software engineers stamp certain products with a seal of approval.

    Right now, if I say that I'm a software engineer, I am a software engineer. Mechanical Engineers and Civil Engineers cannot do that, because they are required to be licensed and in some cases bonded. Getting a PE is no joke MCSE either; it is a tough test that most takers fail.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  77. From reading these threads, it seems... by cnelzie · · Score: 2


    ...like it is important to have certified software engineers for mission critical commercial applications. Things like nuclear plant control software, sewage treatment plant software and other life-threatening upon failure type work.

    However, it makes absolutely no sense whatsoever to make all software developers require that type of certification and title. For instance, a failure in the code of a game is never a life-threatening issue (unless someone has a bizarre example...) and most desktop applications also would not cause death if they fail (again, so me a bizarre example.)

    So, it seems to me that developing a true Software Engineer title would do nothing more than possibly benefit mankind. As long as they don't attempt to force this upon all software developers.

    If it does become something that all software developers will need, I can see the development of new games and other applications stagnate as the development houses could be forced to charge a larger sum for their software. While this could potentially defray the cost of the new licenses that their developers would need. It just wouldn't make any sense for non-life-critical software to require that Certified Software Engineers be involved in the making of the product.

    While this could potentially increase the quality of games and other non-mission critical software, is that really necessary?

    --
    .sig seperator

    --
    If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
  78. Engineers vs. Software engineers by BluedemonX · · Score: 2

    As I see it, standard engineering disciplines (mechanical, civil, etc) deal with open standards type of stuff - I can buy a book detailing all the shear and stress factors of given alloys of metal, the load that a pylon of material X can support, etc.

    If as a civil engineer I engineer a bridge and it collapses, it's possible for a third party to forensically determine either the beam was improperly constructed, improperly riveted in place, or it was a case of me not carrying the double integral of 2 pi cos 3 delta theta in my design calculations, and as a result the beam was carrying lambda delta 3 cos pi two g Bilbo's constant, an insane amount of stress for that loadbearing item to carry.

    If I develop for Microsoft (in doing so, my body of knowledge pertains MOSTLY to that platform, as opposed to portable things like physical constants, etc) software, I have NO IDEA what I'm grafting my code onto. Not even a third party is allowed to wade through MS's code and mine and determine what went wrong. I can't legally reverse engineer the DLL to see what the hell is going on.

    Whereas a civil engineer's license is likely to hold cause neither PI nor the load-bearing properties of concrete nor the inherent properties of steel are likely to change any time soon, we're looking in the computer field anyway at things being in a state of constant change.

    --

    --- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
  79. Re:Why equate inexperience with 'Laziness'? by Dwonis · · Score: 2
    My problem is with the whole lack of self-discipline in the field, both with inexperienced and experienced programmers. Too often, people see programming as a pastime, rather than serious work that must be done carefully.

    As a side note, in Saskatchewan, MCSEs are not allowed to expand their title, because it's illegal to use the title "Engineer" without being certified by the Association of Professional Engineers and Geoscientists of Saskatchewan (APEGS).

  80. Re:Very strange by andr0meda · · Score: 2

    "The creation of genuinly new software has far more in common with developing a new theory of physics than it does with producing cars or watches on an assembly line" - Bollinger

    http://www.idiom.com/~zilla/Work/Softestim/kcses t. pdf

    --
    With great power comes great electricity bills.
  81. Insightful??? by Ars-Fartsica · · Score: 2
    We're a very, very young discipline, and unlike structural or electronic engineering the mathematics does not exist to prove what we are doing is right.

    Do you program for a living? How could you say something so absurd? When was the last time an algorithmic error made your program crash?? Its all about where the rubber hits the road. Memory management. Device support. Library integration. How the %$#@ will the lambda calculus, Z logic, or VDM proofs help you?

    Stop waiting for the math because the math that tells you to use a debugger and a profiler is called experience.

  82. Re:Psuedo Software Engineering vs. genuine SE by 3seas · · Score: 2

    Doesn't this pretty much describe the entire Linux operating system?

    Yes and that is why Linux is ideal for automation.

    .