Slashdot Mirror


Should Programmers Be Certified?

An anonymous reader wrote in to send us For Coders, a Code of Conduct (from the NYT so free registration is required). It says that an engineer needs a license to work on a bridge, but programmers work unlicensed all the time. What do you think?

427 comments

  1. bullshit by Anonymous Coward · · Score: 0

    Should teenagers be required to have a license to work at the mall or at McDonalds? Should a writer have certification to write a book or to give a speech? Do all the little kids in Asia that work in sweatshops need to have a license to make Nike's? No.. so what's their damn point? Isn't it about wether or not you can do the job to the company's satisfaction (and beyond)?

    Crypt242

    1. Re:bullshit by Anonymous Coward · · Score: 0

      Certification doesn't always mean that you are necessarily good at a certain something. If it's life and death, then you don't put absolute idiots in charge of interviewing people. I would imagine that a company would fix numerous errors and fire many coders before releasing a product of that nature.

    2. Re:bullshit by Anonymous Coward · · Score: 0

      Certification? Why? Because my immediate supervisor may be incapable of ascertaining my competency? If so, why then would I even continue working for him?

      Because a potential employer has to filter through tons of incoming resumes and needs some sort of "filter" to get the wheat from the chaff?? Bwaahahahahaahh!

      I don't even bother applying at such places. I have no four year degree. Though I do have well over 4 years worth of undergrad credits, and have even managed to take a few master-level courses. I write software for life-critical medical electronics instrumentation systems. I have been doing so for well over ten years.

      When I switch jobs I rely on the products I have gotten out the door and solid references. THAT ALONE is all the "certification" I need.

    3. Re:bullshit by Anonymous Coward · · Score: 1

      The point is that some computer programmers are in a position where their code may decide life and death. The people who code for the radar systems in airports, for example, do you want these people to walk in with bare minimum of knowledge and write faulty code? Read the point the official from Texas made when an engineer made a mistake that led to kid's deaths. This, in the future, could be caused by faulty code.

  2. Re:Blueprints by Anonymous Coward · · Score: 0

    Ever heard of a Project Manager? Usually in a normal healthy working environment there is heavy interaction with upper management, to reach their goals and your own. I find "we hope this is what you wanted" to be a rather inaccurate example.

  3. Consequences of Poor Design by Anonymous Coward · · Score: 0

    In the case of bridges, if the engineer screws up people could die. In the case of software, programmers can release it anyway (it's a feature, not a bug).

    1. Re:Consequences of Poor Design by Anonymous Coward · · Score: 0

      I was generalizing - I meant general software, such as OS's, word processors, internet browsers, and the like, not life support software.

      Point taken though. But - would that mean if you were working on such an important project, would you need to be licensed to ensure quality?

    2. Re:Consequences of Poor Design by Anonymous Coward · · Score: 0

      Yea been there done that, for perscribing exercise software based on medical data.

      Unfortunately, some idiot gym boy decided to fudge the data, ignored blood pressure warnings, and the poor client collasped and died after a heart attack.

      I felt shit for weeks until the gym boy admitted to it after I checked the data and discovered the excerise regime the client had was very different to the one my software recommended. The family and gym stopped their lawsuit against us, and the family sued the gym instead.

    3. Re:Consequences of Poor Design by Rene+S.+Hollan · · Score: 1

      Er, I have worked on software where peoples lives depended on it not being buggy. It's one hell of a responsibility and about the only time you can justifiably tell a PHB to "fsck off, it isn't ready yet - or do you want people to die?"


      --
      In Liberty, Rene
    4. Re:Consequences of Poor Design by Rene+S.+Hollan · · Score: 1

      ...But - would that mean if you were working on such an important project, would you need to be licensed to ensure quality?

      No, though if the client did not seek to take care (either by checking the code quality himself, or relying on a reputable certification company), he might be setting himself up for a big negligence lawsuit.

      Now, when I know that people's lives depend on the code I write, I make damn sure that if it is going to fail, it fails gracefully, or I don't release the code at all. IOW, I WILL NOT compromise quality in exchange for delivery time to satisfy an employer or client if I know lives might hang in the balance.

      I just don't think that forcing that ethic on others is right, nor do I think that licensing ensures it anyway.

      --
      In Liberty, Rene
    5. Re:Consequences of Poor Design by SlashDread · · Score: 1

      So the life support system needs a reboot day... The guys on it just have to not breath for 6 minutes...

  4. Re:so what by Anonymous Coward · · Score: 0

    your too late, the programming world is already full of morons and has been for years.

  5. What a ridiculous thought by Anonymous Coward · · Score: 0

    How in hell do they expect that to work...let's see, I have Linux, it comes with GCC (or egcs now), I can sit down and code away to my hearts content. Then I can fire up my internet connection and release that code to any people who find the web page I put it on. Would this get me arrested, or fined for coding without a license? Or am I just going to need a license to get hired at a company. Because companies are just hiring people at random. I know so many people who just get grabbed off the street by software companies, loaded into trucks and dumped in front of computers. Happens everyday.

    Strikes me that some nut has just got his knickers in a twist again over the Y2K bug, and not bothered to research his facts.

    (Note for the stupid: When it was first used, the code that has now given us Y2K was a good idea, more or less. If you have less than a meg of memory, and you want to set up a database or spreadsheet, you have to save memeory where you can, or you'll end up with a database with a fifty record limit. those 4 bits start to add up, you know.)

    1. Re:What a ridiculous thought by Shafik · · Score: 1

      Would this get me arrested, or fined for coding
      without a license?


      No, a mechanical engineer can design anything he/she wants on their own time but to do any real work they need a PE licence. Computers are or are becoming an integral part of critical systems such as air control, power facilities, medical equipment, etc... There are many ethical issues when designing systems like these, is it okay to take this shortcut even though it may increase the risk of death? The Industry is very immature, people are right that programmers are being hired out of nowhere and looks at the garbage that is getting put out there. Hacking code and building real-time critical and scalable systems are very different things and the latter of these is not an art but a process and a skill that takes many years to learn.

      When it was first used, the code that has now given us Y2K was a good idea, more
      or less.


      Yes you are right it was a good idea, but since there was no Engineering process involved the problem ended up getting ignored until it has become this scary monster it is now. When you have a process, it allows a company to catch these problem before they become an issue. Most people coding out there have no clue what a engineering process is none the less what a good solid process that results in an at least decent piece of software is. Sure there are plenty of hacks that can make code work and get it working fast but what about when they leave, what if they die, you know what in most cases the company is screwed, that dosen't happen (well in general) in fields like mechanical or aerospace engineering.

      All work can be made an art, but doing it right and ethical comes first, then you can be as creative as you like. There is only magic to programming because it is such an immature field, once it matures out it will be no more magical then any other engineering field. I mean magic is great, beautiful and ideal but I don't want magic running the plane I fly in I want a well engineered piece of software that I can count my life on!

  6. we need product reviews, not code reviews by Anonymous Coward · · Score: 0

    Certifying programmers is useless when managers
    and marketing decide what ships. What is really
    needed is independent quality inspections prior
    to release. Before a software product can be
    used in any critical situation it should be
    inpspected by an independent agency and certified
    as reliable. Certified programmers can produce
    junk just as easily as uncertified people but the
    end result is what is truly important.

    1. Re:we need product reviews, not code reviews by Altus · · Score: 1

      well, in the cases im talking about marketing shouldnt apply (radar, weapons, life support systems... ect...) and a certified progect leader (whoes ass is on the line) wouldnt allow that to be the case

      (I wouldnt even try this with commercial software, too many market pressures, not enought need)

      with regards to outside agencys, that might be a good idea... although internal code reviews and testing are essential... its all a matter of process, not of programming style.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  7. Isn't it enough to certify the boss? by Anonymous Coward · · Score: 0

    And what does software development have to do with bridgebuilding?
    I can understand that people may want some proof of quality but certifying the programmers?

    When is people going to understand that poor quality always comes from the top, not from the bottom. The proof that a project isn't managed by an idiot is all the quality assurance one should need.

    Isn't linux where a lot of the work is done by people without cs degrees a proof of that.

  8. Anyone who hasn't.... by Anonymous Coward · · Score: 0

    worked in the corporate arena and doesn't see a need for some kind of license is blind or incompetent. Most of the lamers who get degrees couldn't code their way out of a wet paper bag, much less anything with any degree of sophistication. Look at MS for example. You've got lots of people with good degrees but maybe one in 50 has any real skill or talent! Let's face it: the real reason Linux is better than any of MS's crap is the fact that everyone working on Linux believes in it and has proven they've got the skills. The ACM should just offer some certification test proving that you at least know what good form is....doesn't have to cost a lot(just enough to print the test IMHO).

    1. Re:Anyone who hasn't.... by Anonymous Coward · · Score: 0

      1 in 50 is personal experience. And I'm just talking about the dev teams....

      ACM already has a code of ethics....

    2. Re:Anyone who hasn't.... by CrosseyedPainless · · Score: 1

      I have to wonder where you get your numbers (1 in 50). Are you sure that MS's product quality isn't more a result of the fact that MS's goal is making lots of money for stockholders, which is only coincidentally congruent with making good products? I do like the ACM cert idea, though. Maybe a nice code of ethics, too. I'd sure prefer a corporation-neutral, non-governmental body like ACM dishing out the certs to legal licensing.

  9. ppl do get killed from bugs in software! by Anonymous Coward · · Score: 0

    there have been few cases where somebody has died from bugs in software and as more things become controled by software more ppl will die from bugs in it. look how much medical equipment is being controled by computers, air traffic systems, traffic lights, subway systems, etc... if there are bugs in the software that controls these things it can become very possible for somebody to die.

    comparing building a bridge to creating software is not correct in most places. software is more similar to manufacturing in general. being certified is not needed for the bulk of programming that is being done but for those few things that are comparable in scale to building a bridge i think certification should be necessary.

  10. Re:License != Certification by Anonymous Coward · · Score: 0

    I for one, do not look forward to the day every program must be written by a licenced programmer and cost about as much as that bridge. You think M$ programs are expensive now, wait till they are the only company allowed to write them by law!

  11. Re:Degree = Certification by Anonymous Coward · · Score: 0

    What do you think......

    I was coding Clists for the mainframes, scripts on the UNIX boxes and some Visual Basic - I know its crap, but it was all they had for the Wintel platform.

    Is that enough for you guys????

    Oh and this was full production systems for a major UK company.

    Cheers

  12. Re:Blueprints by Anonymous Coward · · Score: 0

    I think he is refering more to 3rd party closed source software. You never get to see the blueprints (source code) of the bridge (program). As the end user you may or may not care about this. If it works and works well you might not care (at least until something unexpected goes wrong). But if you want to see the underlying source code then you are going to want to use open source software. I dont think the y2k issue is as much about liscensing programmers as it is about the responsibility of the software industry in general (respinsibility of how well the program works, how open they are, etc). Overall though, this article showed the author's ignorance of both the problem itself and the probable effects. Would liscensing programmers really take care of the stupid PHBs who would still refuse to pay attemtion to them because they are talking about needing more money to resolve whatever potential software problem is in question.

  13. Re:so what by Anonymous Coward · · Score: 0

    Yeah, but why go around giving morons certificates claiming they know how to code?

    Maybe we need a different kind of "certification" for programmers...

    I know plenty of people who are good students, would pass any likely certification test, and I sure as hell don't want anywhere near my dialysis machine.

  14. Re:Degree = Beginner by Anonymous Coward · · Score: 0

    Take off the shades and see the light.

    Who would you rather fixed the brakes on your car, somebody with 3 years of classes or someone with ten years of fixing cars.

    SGL
    If I have seen further, it is because I have stood on the shoulders of giants.
    Sir Isaac Newton


  15. We're not ready for certification by Anonymous Coward · · Score: 0

    The tools of the trade (languages, platforms, tools) aren't standardized enough yet. Microsoft is largely to blame for this IMO. 5 years from now when Microsoft is irrelevant, certification will seem a lot more reasonable.

    1. Re:We're not ready for certification by MaggieL · · Score: 2
      I took and passed the ICCP CCP programming certification test many years ago, back before Billy Gates had anything to sell besides a BASIC interpreter. I thought it did an excellent job of being vendor-independent then, and I would hope that the same is true today. I'm grandmothered into the cert today, so I'm entitled to hang CCP on my name without periodic recertification.

      But I have to admit I neverer found an employer (or truthfully anybody else) who really gave a squat about the certificate, or, at my experience level (>30 years), a college degree.

      Vendor-based certifications like the CNE and MCSE are just a way to bind someone to a vendor's products; after all the time and effort required to obtain and maintain such a credential, a certain unearned product loyalty emerges. Kind of like the folks who joined the WordPerfect cult back in the DOS days of PCs, or the Morse Code cult in ham radio; once you go though hell to get on the inside you develop a vested interest in it and a distorted notion of its usefulness and importance.

      --
      -=Maggie Leber=-
  16. And immediately unemploy 60% of the programmers? by Anonymous Coward · · Score: 0

    I've seen the quality of programming from a lot of programmers and requiring a license or certification for programmers would immediately cost about 60% of them their jobs. And it would utterly decimate Microsoft.

    Though I expect that this would mean those of us who are left will be able to triple our salary demands. And it would put a stop to the wholesale importing of minimum wage programmers from Bangledesh. So huh. I guess I'm for it.

  17. Re:certification, degrees, and economic class by Anonymous Coward · · Score: 0

    Well another thing.. most programs don't consern human life,
    whereas a bridge does. If someone who wasn't trained well enough to get a lisence built a bridge,
    there's more of a chance of the bridge collapsing, killing people.
    But for someone coding a game or such.. it can crash
    all it wants.. no humans will be killed. (Though if they got really far
    and didnt' save it.. they may kill themselves ;) )

  18. Re:Degree = Certification by Anonymous Coward · · Score: 0

    What an ignorant thing to say.

    You've been duped into thinking that
    paying money, listening to someone talk, reading a textbook, working in a lab, and taking tests will somehow bring you a level of enlightenment that is beyond the grasp of someone who doesn't have access to one these "churches" of knowledge.

    I have proof that I can keep up with new technology- I have never had a formal education in it yet I'm working with it now. Thats my degree. Your degree, however, proves nothing.

  19. Re:Someone doesn't want to work for a living... by Anonymous Coward · · Score: 0

    Check out the Oceania Project: http://www.oceania.org

    The OP as put forth on the website will probably never come to pass (how long has it been since they updated that site anyway?) but the general idea is still a good one. (The Pacific might not be a great idea, depending on where you are...wherever there's "a lot of room", you're awfully far from anyplace that matters.)

  20. Define "Programmer" and "Programming" First by Anonymous Coward · · Score: 0

    Before we even consider licensing programmers we should figure out where we draw the line between programming and something else. Is someone who writes HTML using a WYSIWYG tool a programmer? What if he uses EMACS instead? What if he writes in XML? What if he rolls in a few javascripts?

  21. Re:Degree = Certification by Anonymous Coward · · Score: 0

    There are a lot of programming concepts more complex than scripts...

    DD*
    You've obviously never seen a clist :-)

  22. Hah! by Anonymous Coward · · Score: 0

    I don't have a degree and I can program circles around most of the degreed programmers I know. I worked with one woman in two different jobs in two different states who (apparently) had a degree but absolutely no aptitude for computers. I have to wonder how the hell she got it...

    And then, even if you ARE able to tell your ass-end from your elbows (In a purely binary sense) chances are you get saddled with some dumb-ass manager with no concept of what's capable with current technology.

    And every once in a while you get an interviewer who is going for buzzwords "Ohh! Yes! C! We want C! And UNIX! Yes! And OS/2. And Windows NT. And we pay $30,000 a year, and... hey... where are you going?"

  23. If it's quick and cheap, then YES by Anonymous Coward · · Score: 0

    I'm okay with paying a small fee and taking a test to certify that I have a certain degree of competency in a particular skill.

    The fee must be small because of the rate if change in this industry. We'd have to get lots of these little certifications for specific skillsets.

  24. Re:This won't be a popular view here... by Anonymous Coward · · Score: 0

    You seem to be using two very different terms to describe one thing. I may be reading you wrong, but to clarify the below is offered as an explanation.

    Certification: Used to show that you know SOMETHING and won't blow up the equipment. Usually handled solely in the private sector, no government intervention. Examples: CNE, MCSE, MCP, CCIE, etc.. Usually it's a test or series of tests.

    Licensing: This is handled partly by the government. You are NOT ALLOWED TO WORK without a license. They are usually quite costly to obtain either in terms of money or time. This has a proven history of preventing people from using thier talents even if the customer agrees to the risk in not having a licensed person doing the job. The only real purpose of licensing is to shut out those who can't afford a license for one reason or another. This is commonly seen for doctors, lawyers, taxi drivers, and engineers.

    Now, that said, I would like to mention that I know MANY people who are excellent programmers who don't have degrees, much less the money to get a license. I also have worked with programmers with degrees and certifications who don't know jack about programming. Programming is more like art then science. There are many, many ways of doing the same thing. New ways are found all the time. There are advances in, say, engineering as well. They just aren't as rapid, or as easy to test out (do you REALLY want to build a "test-bridge"?) as programs are. Where we can compile, hit it with tests and decide what we want to do.

    There are very few hard, fast rules to programming. There are a ton of them in all the licensed professions I know about, and with good reason. I wouldn't want an engineer building a test bridge, or a doctor testing a new procedure on ME without a LOT of evidence that it works and is safe. There are very important differences and they need to be recognized.

    As for certification, I have to echo the others here. An advanced degree should be certification enough. If it's not, there is something wrong with the degree program and it needs to be reworked. This leaves open the potential of a child prodigy or some other talent comming out of the woodworks and still being alowed to work based on skill. I'd even be willing to support an apprentiship type program as long as it was to be based on skill alone rather then years.

    A GOOD programmer with an advanced degree and some experience should be able to get a job anywhere very quickly. There is a huge demand everywhere I look. If you really want to stand up to stupid managers, then do. Your skills are valuable on the job market, take them elsewhere if your ethics don't allow you to do what they demand. Nobody is holding a gun to your head, it's still a choice.

    I feel licensing, and all that it brings with it, would be horrible for computing. It would stiffle innovation, and lock out real tallent from our field. Companies should decide if they want to accept certification as a barrier to entry or not based on thier needs and experiences. But the option should be there.

  25. Re:How do you certify for this industry? by Anonymous Coward · · Score: 0

    I think a certification with much the same criteria as the PE certification would not be excessive- if I recall, it's like 2 years and a degree, or like 5-6 years without a degree, and a test either way.

    As for obsolete certification, why not use a language everybody should know or pick up easily like Pascal? It's obsolete, and it's a good learning language.

    And I think that whoever said "There are no dangerous weapons, only dangerous men" could have been talking about programming languages and programmers instead of weapons and soldiers. A language is just a vehicle for solving the problem, nothing more. A good programmer should be able to pick up any language pretty quick, and the fundamentals are the same regardless of language.

    That's why I think a certification wouldn't be a bad thing- it'd weed out the "not-so-dangerous men", if the certification was done right.

  26. Re:Software inevitably fails all the time by Anonymous Coward · · Score: 0

    Just great. It almost seems that they want to create another social class

  27. Licensing is about legal responsibility by Anonymous Coward · · Score: 0

    Licensing is about legal responsibility, not competence. Before licensing of engineers, anyone could call themselves an engineer, and build bridges, roads, and other structures.

    Many of those bridges stand today, a testimonial to the competence of the designers. Many failed, however, causing loss of life. The failures had many causes: incompetent designers, poor materials, poor understanding of how materials behaved, and so on. Read "To Engineer Is Human : The Role of Failure in Successful Design", available at amazon.com, for many examples of how engineering design evolves.

    State laws for licensing of engineers do not require that all people involved in bridge design and construction have an engineering license. However, when the licensed engineer puts his stamp on the work, he is taking responsibility for it. He certifies that it meets the requirements of state and local laws, building codes, etc. If the work does not meet those requirements, then the licensed engineer and his employer are held legally responsible.

  28. No, but... by Anonymous Coward · · Score: 0

    The way that usually works, neither the government nor the government's contractors (Which is to say every major corproation in the country) would not be allowed to use your code because you were not licensed.

  29. Certification by Anonymous Coward · · Score: 0

    You want me to certify my skillz?
    1) according to a recent /. article, the number of new programmers declined from '90 to '95.. Employers can't afford to be too picky.
    2) My GPA is in a sense my certification.. Yet it says nothing about how well I code, so certifications can't possibly test enough areas. Should I get certified in Basic C coding? Maybe Direct Draw, or OpenGL, or maybe they need someone to make some AI..should I get certified in that?
    3) Starting sallary for someone that is competent is about $45K, if you try for more, I'm sure you can get it. I swear, if someone puts me through "certification" I'll tack on another 15K for my trouble.
    4) Employers hire interns all the time, these are usually untested Jr-Sr in college, pay them less money, and get code that works just fine. Again, employers don't seem to interested in certification.
    5) If you are really worried about quality, there are ISO specs coders can follow. Personally they seriousl hamper getting real work done but if you are that anal, so be it.

    Bottom line for me is I don't think you could "certify" someone beyond a minimum set of skills. Something you would pick up in a "Learn C++ in 21 days book." If you don't poses those skills, any competent recruiter would be able to tell.

    Finally.. I bet you money whoever suggested this isn't a coder.

  30. Licensed reporters? Not quite... by Anonymous Coward · · Score: 0

    Rather, lets force anyone who reports news to be a licensed journalist. A slight difference. It'd probably put every news anchor (Read: Face that reads the news) out of business.

    How would this affect Jerry Springer?

  31. No one is going to regulate your hobby by Anonymous Coward · · Score: 0


    So calm down people.

    But if you design embedded microcontroller code to deliver doses of directed X-Ray radiation for a cancer machine, or you are designing code to run on a new heart lung machine, or to control an air traffic control system, do you think this should be a "fun" and "interesting" project that you can just HACK AROUND on?

    This is serious stuff people and play time is over. It is not innovation time, and it is not hobby time.

    If you're not interesting in doing commercial work, and only interested in doing GPL/OSS based stuff, what are you complaining about?

    The way I see it, all of the hacks doing GPL stuff can stick to their hobby and try to eek out a living on their chosen philosophy and lifestyle, and the real software engineers, meaning the people who take time to design specifications, implementation plans, work with management, through to implementation, can do the real nasty work that needs to get done in the world, and get paid for it.

    Building the 10,000 bridge, skyscaper, or road may not be fun or interesting, but it's something that has to be done.

    Building yet another GPL VI clone can be left to the hobbyist bottom up coders.

    1. Re:No one is going to regulate your hobby by Erik+Hollensbe · · Score: 1

      The way I see it, all of the hacks doing GPL stuff can stick to their hobby and try to eek out a living on their chosen philosophy and lifestyle, and the real software engineers, meaning the people who take time to design specifications, implementation plans, work with management, through to implementation, can do the real nasty work that needs to get done in the world, and get paid for it.

      Err, I can't decipher if this is a flame or if you're actually serious. There is a quite a bit of scientific software out there under GPL, by very real software engineers. Just look at the debian package listing for an example. I don't think that I need to cite the fact that a good deal of specifications are at least influenced by free code, if not completely designed under it.

      I don't think certification has anything to do with hobby programming, or programming on a free basis. No one requires that a doctor or lawyer practices for money, just that they do it to a certification that is deemed CORRECT.

      -Erik-

  32. Re:Degree = Certification by Anonymous Coward · · Score: 0

    I'm not a VB programmer but i think you're being unfair to those that are. There isn't much you can't do with it that everyday programming would require.


  33. Re:Degree = Certification by Anonymous Coward · · Score: 0


    From the point of view of having a degree, the only thing I can find in its favour is that the paper is very absorbent...

    Acadmeia is all very well if you have a burning urge to shell sort your laundry list or see if the length of your knob is a prime number, but give a university education any reasonably sized real world application and its limitations show themselves pretty quick. Sure you get the concepts, but you don't get the discipline. You're not likely to learn much real world responsibility if the worst consequence of your program fucking up is missing Cheap Drink Night at the Students' Union.

    No substitute for experience, basically. Why talk to the monkey when you can talk to the organ grinder?

  34. Re:Great for commercial software, not for OSS? by Anonymous Coward · · Score: 0


    Another difference between commercial and OSS programmers and that OSS programmers are not accountable to anyone.

    OSS programmers don't have a contract. They don't have a customer to report to. They don't have management. They don't have shareholders. They don't have an obligation.

    In theory, a commercial programmer as part of a company, must deal with customer requirements and desires. These may not be fun, interesting, or may even go against HOW YOU'D LIKE TO DO IT.

    The commercial programmer is held accountable when his project doesn't mean expectations or IF IT KILLS SOMEONE. (company gets sued)


    The OSS programmer sits in the comfort of his parent's basement merrily hacking away, adding only the features he cares about on his whim. No real obligation to fix anything that breaks since if someone uses his software it's "AS IS" "AT YOUR OWN RISK" "PATCH IT AND FIX THE SOURCE YOURSELF"

    See the difference?

    How many OSS programmers even use software engineering techniques it all? How many have read and used Booch/Rumbaugh/Jacobsen? How many do UML/Cue cards? How many have a team process?

  35. Yes you do have a degree. by Anonymous Coward · · Score: 0

    Its a Batchelor of Experience from the University of Beentheredonethat.

  36. Certification degenerates by Anonymous Coward · · Score: 0

    Unless certification is controlled at relatively local level, it inevitably (or at least often) degenerates into a means of competition control. This seems to happen in both free mnarket and command economies, regardless of government structure. Sometimes it is a nessessary evil none the less - as with the civil engineer. Additionally, certificatiom inhibits paradymn shifts, obviously not good for rapidly evolving industries like software. Leave the certification at a higher topological level - the civil engineer needs to be convinced that his engineering software is reliable.

  37. Re:Oh, and a degree also teaches you to spell.... by Anonymous Coward · · Score: 0

    Been there, done that, then did 20 years of development. Maybe, from your ivory tower, I'm crap too, but i produce stuff, people pay me lots of money and they ask me back.

  38. Re:Oh, and a degree also teaches you to spell.... by Anonymous Coward · · Score: 0

    But it doesn't teach you how to write, does it?

    Think about it.

  39. Re:Microsoft by Anonymous Coward · · Score: 0

    Wow... that was a dumb comment. All of Mircosoft's certifacations have to do with using their software, not writing it. If you are going to post something, at least make sure you have half a brain first. I personally find most of Microsoft's products excellent. Office is unbeatable. NT, while it has it's flaws, performs better and is nearly as robust as most Unix flavors. And for a begginer, or just somebody who likes playing games, their consumer OS is good. If you are going to bad mouth MS, bad mouth them for their strong arm business tactics, not their software.

  40. Re:Degree = Certification by Anonymous Coward · · Score: 0

    I am employed as a computer programmer, but my masters degree was in mechanical engineering. I picked up a lot of linux/ unix "sys-admin" stuff, and learned c++ w/out doing that stuff in school.

    But the application of the programming languate is where my degree really helps. For example, my knowledge of numerical methods and automatic control systems has helped me a great deal in designing financial trading packages.

    I think a person can pick up quite a bit without the college degree, but I doubt most people would
    be able to write an operating system or REALLY understand the ins and outs of data structures as well as having some understanding of their applications without having a lot of incentive to learn it on their own, or some formal training from a good school.

  41. Re:"If you don't like it, leave!"? by Anonymous Coward · · Score: 0

    Of course you would use leaving as a last resort. Someone else posted a soultion to the getting the blame side of the problem. Just make sure you get it in writing (yes, on a dead tree) that managment has ordered you to do it. That way if fingers start pointing, you can point back.

    As for the ethics side of things, licensing wouldn't help. If you did that ALL licensed programers become "hard to work with" or "not a team player". The situation is not improved. When it comes to personal ethics, there are no easy answers. If explaining the situation to your employer does not produce results, you have to decide weather you want to leave, and risk the branding or violate your ethical code and do the project, perhaps with proof that you were "following orders". What it comes down to is personal choice.

    As a person, I'd like to keep my choices available.

  42. Historically by Anonymous Coward · · Score: 0

    I can't see this ever being the case. Court cases have generally viewed source code (programming LANGUAGE) as any other language in which you can write. This is the basis for settling early squabbles over copyright (you immediately have copyright over your source code, exactly as if you wrote a book).

    Certification? And then Stephen King will be certified as a novelist, Scott Adams as a cartoonist...

    And let's not even get started on the technical side... How do you test? We'll all study for the MS Visual C++ test? What if I'm a PPC assembly guy? Leave it up to the employers and open-source. If an employer doesn't like how you do it, they won't hire you. If it's open-source, feel free to redo it.

  43. Re:Managers, not programmers, need certifying by Anonymous Coward · · Score: 0

    Actually, that's a lot of hooey.

    I've been designing, writing, and maintaining software for 15 years and I've seen a fair share of incompetant managers who forced bad design decisions -- HOWEVER, I have also seen a large number of programmers who took shortcuts and used too many "Stupid C Tricks". I don't want to count the number of times I've heard a programmer say "well, the user shouldn't DO that".

    In short, don't blame Y2K on the managers. In some cases, it's our own fault.

  44. Managers should be shot, not certified. by Anonymous Coward · · Score: 0

    Just KIDDING!!!
    Good managers don't need to be certified, and they don't really need to know that much technically (although it certainly helps). Managers need to know their limitations, and they need to respect and listen their staff. My manager is great, he views his primary role as 'running interference' between us and certain people at the company who get in the way or our doing our job.

  45. Re:Microsoft by Anonymous Coward · · Score: 0

    What a Luser, take your own advice and check into the MCSD certification. Unless you consider MFC an application?

  46. Okay. by Anonymous Coward · · Score: 0


    It would be just as accurate and effective if every time windows crashed, somebody went into the M$ building and randomly fired the first programmer he saw.

    So what's the problem with that?

    :)


  47. Re:Lemme tell you about the iron ring... by Anonymous Coward · · Score: 0

    you are mistaken

  48. I am a licensed PE in Va and by Anonymous Coward · · Score: 0

    after a long period of disbelief, I finally learned that the issue of licensing for engineers is not one of public safety, but one of economic control of the licensees.

    The concern is that engineers (and doubtless soon to be programmers) can earn income as private individuals which is "outside" the IRS programs for W-4 withholding and I-1099 reporting. This makes non-reporting of income by professionals easy, and makes collection of taxes on significant quantities of income difficult. In a not-so recent but very memorable tax audit, in which I was challenged for deduction of my computer no less, the auditor treated me as though she was my "operator" and I a piece of "economic apparatus" on which she too had to report. She remarked that my income seemed to low according to her data for engineers and that as an engineer I should be making more money! Like I didn't try, the bitch.

    Licensing for public safety is - phooey. This is all about maintaining an economic profile and a taxation profile on an increasingly independent segment of the labor pool.

    BTW, in Virginia, licensing is linked to your SSN, and each year the SSN list is sent to the IRS, which then compares the SSN list to reported economic activities.

    1. Re:I am a licensed PE in Va and by Anonymous Coward · · Score: 0

      Whether or not this is merely a track-and-tax mechanism (and I think this is a gross oversimplification, as there are legitimate reasons for requiring certification for some - not all - cases), it is obvious that this is being pushed by those with direct financial and control interests. The government, obviously, and the professional societies that will be the gatekeepers. (It does make one wonder how "ethical" it is to use FUD to push something few want that directly impacts your bottom line.)

      As a practical matter, this won't be implemented in the near term for one simple reason. Money. Not yours and mine, but the corporate bottom line. To get and maintain any legitimate certification requires time, money, and effort. This will by its very nature limit the number of programmers available, driving the costs up. Therefore, companies will go offshore, as they are already doing. (Don't get me wrong, there is certainly a place for offshore outsourcing and there is some tremendous talent available.) The politicians will then have to choose between requiring certification, forcing their major campaign contributors to cut into their corporate profits, or watch decent-paying jobs (with the corresponding taxes) go away. One of these options costs nothing, while the other two have very significant and very real fiscal costs.

      There is a fourth option of a sham certification that I have not discussed and may be the most likely outcome. This would be little more than an annual fee and a pulse.

  49. Registration by Anonymous Coward · · Score: 0

    As a registered Professional Engineer (P.E.) I can tell you that taking an exam is not the worst part of it. The registration process went pretty much as follows.
    1. 4 year college degree (minimum)
    2. Exam, 8 hours, testing you on your entire college engineering curriculum.
    3. 4 years work experience under the direct supervision of a registered engineer.
    4. Exam, 8 hours, testing your in-depth knowlege of your engineering discipline.

    What this procedure is trying to do is to assure the public safety. The states (and most countries) have set minimum standards of competency to be considered an expert, where experience has shown that not doing things properly will result in serious danger to the general public.

    A bridge designer who doesn't know what he is doing may kill hundreds of people when the thing collapses. A software designer (Like Microsoft) won't kill anybody when his program crashes. The losses are only financial, no loss of life is likely. (Where NT or any other crash prone system is used in a critical life safety application, the Engineer if Record - the guy who stamped the drawings approving such use- is the one responsible, not the programmer.)

    From the above, I don't believe that regristration of programmers is legally required. Certification like MSCE or NCE a convenience to the employer, to gauge competence for someone he doesn't know.

  50. CS required? Not all the time!!!! by Anonymous Coward · · Score: 0

    My PhD is in Astrophysics. I aided in developing
    neural-net based star/galaxy classification for
    a digitized all sky survey. My thesis used a
    genetic algorithm to fit a 19 parameter model to
    a several gigabyte dataset. Currently I work at
    the U of Az designing a GUI-fied real-time
    automated asteroid detection code for a Near-earth
    asteroid survey.

    In eleven years of college and three years as a
    postdoc I have had exactly one formal computer
    science class and that was Pascal (not exactly
    what I use day to day).

    Ninety percent of my work for the last 13 years
    involves programming. I have had four CS
    interns (one a graduate student). They were all
    excellent, but I rarely feel incompetent working
    with them. It is completely experience. No
    amount of coursework can prepare you for your
    first networking problem or your first real-world
    computational problem that can't afford the luxury
    of homework problem simplification.

    You need CS people, but don't diss on those of us
    who got our experience the hard way.

    1. Re:CS required? Not all the time!!!! by porkchop_d_clown · · Score: 1

      Yeah, but could you design or manage a software application that consumes 5 million lines of code? I have. To do it you need the knowledge of data structures and systems engineering that only comes from sitting in school for 4-5 years listening to old men scream at you for your lousy commenting techniques and spaghetti coding style.

      Programming is something that any logical person can do - but why invent all the tools and techniques to manage large systems when you can build upon the tools and techinques created by others? When you were an undergrad, did you design your own spectroscopic tools and techniques or did you learn to use the ones created by others?

      This industry is far to dominated by people who have no idea that they are working on solving problems that were solved thirty years ago on an IBM 360. - And as it often said, if you don't know history, you repeat it.


      --
  51. Some people want an education . . . by Anonymous Coward · · Score: 0


    . . . but you wouldn't know about that.


    People will spend thousands of dollars to attain a degree so that they can make a nice high return on investment.

    People with that mentality belong in marketing or sales. They're tremendously destructive, because they don't give a rat's ass about anything but collecting a paycheck -- hence they write rotten code and devote their time and enthusiasm to office politics.

    I have no use for those parasites.

    1. Re:Some people want an education . . . by Gerund · · Score: 1

      I'd find a use for them, if I were you. You'll be wroking for them soon enough. The same rules apply to working in software as anywhere else, and the premier rule is:

      It's not what you know it's who you know.

      You can ignore the office politics fools as much as you like, but if you don't make connections, you're going to get passed over for promotions over and over again. Managers can't tell a good coder from a bad coder. (That's what certificates are for, hehe). I'm not saying turn out dodgy code so you can spend more time with the guys down in marketing. I'm saying your attitude could buy you a lifetime at the lowest level of the firms you work for.

  52. It won't happen by Anonymous Coward · · Score: 0

    Because management would not then be able to scapegoat techies and would lose an element of control over their little empires...

    And because management will hire cheap talent over over higher paid certified/licensed programmers (even at higher skill levels) as long as there is a pool of the prior from which to draw.

    Licensing will not happen UNLESS it happens in the way that benefits techies least: software
    co's can still use unlicensed progr's at low cost
    and need only one LSE to sign off (but the techies could not sell SW "out of the basement",
    moonlight or GPL without an LSE signoff (if they
    hoped to join the "guild" themselves).

    Is this MS's next big ploy?

    -- TWZ

  53. Re:Degree != Certification != Ability by Anonymous Coward · · Score: 0

    Exactly... I went to school for a while, got tired of the morons and the attitudes, and got a job.
    This year I would have graduated from college and instead I write compilers. If you have the instinct, you know what you have to do. Just because I didn't finish college doesn't mean I didn't work hard to gain the skills I have.

  54. Trade Guild! by Anonymous Coward · · Score: 0

    I think we should operate just like the AMA or any other trade guild -- have arbitrary and capricious requirements which restrict entry to the trade, creating a shortage of labor which allows us to charge exhorbitant fees for our services. Then we could start a campaign to treat Open Source as the only accepted development methodology, and all other methods (such as closed source) as "software quackery".

    You guys with me on this?

  55. Re:Lemme tell you about the iron ring... by Anonymous Coward · · Score: 0

    Re: the "Software Engineering" case.

    You are slightly incorrect. What's happening is that Memorial University's *Computer Science* department is offering a program called "Software Engineering." Memorial University refused to either change the name or move the program to the engineering department and change to contents to meet the Newfoundland Engineers' Association's (the actual name of the body escapes me) requirements.

    So the Newfoundland Engineers' Association is suing Memorial University.

  56. Re:How do you certify for this industry? by Anonymous Coward · · Score: 0

    I think they should give an option of 3 different obscure programming languages for any programming tests. The person pursuing certification must choose which implementation languages is most suited to their own skill sets and the problem at hand. Probably we should have representation for each of these categories:
    functional
    procedural
    declarative
    But make sure the languages are so obscure that most people wouldn't have had any real experience in them. Maybe even make them up. Then maybe supplement this with whatever language is "hot" at the time (e.g. C++).

  57. Ever hear of CIPS? Certification exists & work by Anonymous Coward · · Score: 0

    CIPS or the "Canadain Information Processing Society" has been around for years, and as far as I know works great. You have to be re-certified every 3 years or so (to make sure your skills are still up to snuff).

    I don't get what all the fuss is about, certification works great for both the employer & the employee.

  58. The market says "Sure!" by Anonymous Coward · · Score: 0
    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    The GPL: the original "Here's some bits, do you want them?" license.

    Introduce a software lemon law like the original poster described, you kill most commercial activity based on the GPL. My, what a desirable outcome that would be.

  59. Yes, most programmers are idiots by Anonymous Coward · · Score: 0

    I think we should be certified.

    Most of you are idiots. I am not an idiot. Therefore I should stand out from you, not only in salary (which I do hahahahaha), not only by my resume (hahahhahahaha), but also to show I can pass another test. The test that you are to lazy to study for. Why do I know you will not study for it? Because you are to lazy to learn the features of the language/product/etc that you use now. Instead of picking up the manual you call tech support.

    Yes, we should be certified so I can charge more per hour than I do now.

    1. Re:Yes, most programmers are idiots by Enzo_Falzon · · Score: 1

      You know what! SCREW YOU! ha! I am a programmer that does learn the features of the language and don't give a rat's rear if some dumb overachiever wants to waste his time playing with him/herself to take a test I could pass with my eyes closed. True mastery of the language comes from expirmenting. Smash your product. I don't give a crap so long as you learn something. Spending all your time studying doesn't give allow you to learn those great hacks that brightened our lives.

  60. Re:What is ethical about it? by Anonymous Coward · · Score: 0

    >Its absolutly silly. How do you empirically test
    >programming competance?

    The Java Prorgammer Exam does an OK job at testing programming competance. The developer exam is also an OK measure.

    absolutes are often silly.

  61. Re:Degree != Certification != Ability by Anonymous Coward · · Score: 0

    This is why HR people don't tend to interview programmers. At every commercial software company I've worked at - that's five over the last nine years, in all sorts of positions - the HR weenie is there to get forms filled out, then the actual interview is done by technical people. Tech support interviews tech support, QA interviews QA, and developers interview developers. Occasionally there's a manager thrown in, but the manager's opinion doesn't count nearly as much as the opinion of someone who actually codes, or tests, or answers phones.

    Case in point: I'm currently working for a major printer manufacturer. When I applied, I interviewed with four technical types and one manager. The manager type told me, in the interview, that he didn't think I was right for the job; I didn't have a degree.

    The next day, they called me. The technical types all wanted me and the manager wasn't about to argue with them. :-)

  62. Re:Microsoft by Anonymous Coward · · Score: 0

    Too bad Microsoft doesn't force their programmers to be MSCD certified, therefore your point is moot.

  63. Re:certification, degrees, and economic class by Anonymous Coward · · Score: 0

    What else is supposed to speak for him? (Hint: an answer that does not mention the acronym "NDA" is incomplete.)

  64. Missing the point by Anonymous Coward · · Score: 0

    20 or 30 years ago when Y2K bugs were being coded, I suspect it was often considered the correct thing to do. That is a "certified programmer" would have be trained to make these kind of optimizations. In other words, such practices probably were not seen has "hacks" but the right way to do things.

    Any fossils out there care to reaccount first expereinces in this area?

    So even if a good certification process could be developed and implemented, I suspect problems like this would still come up. It is easy to be far sighted when you're looking behind, but not so easy when you are looking forward.

    The problem with certification is the problem with any standardized test. They are unfair. However, they can ensure at least some level of competency, however that assurance won't be cheap. It might lead to be bunch of average programmers running around with few really good or even fewer really bad ones in attendance. However, for building bridges and other critical production type systems we might want competence over whizbang anyway.

    1. Re:Missing the point by dAzED1 · · Score: 1

      Exactly. No-one is in danger of their house burning down, or the bridge under them collapsing, or any other life-threatening calamity if I write some code. Electricians, engineers, carpenters, etc, can put you in danger if they do a poor job... Not only that, but this is happening strange anyway. Almost -always- an industry making its workers be certified is a result of the Unions of those workers making it so. I.E., they protect themselves by making it harder for new blood (and thus competition) to get in. I highly doubt a "programmer's union" is the driving forse behind this, though. Also, like you hinted at, who exactly is going to judge if a programmer did his job wrong? its a little less obvious than when a bridge collapses...who gets to determine it wasn't user error, or a hardware problem? Can't say "well, the bridge collapsed because this person's car was not y2k compatable, and he was driving incorrectly." If the bridge collapses, its generally the bridge's (and thus those who built the bridge) fault

    2. Re:Missing the point by porkchop_d_clown · · Score: 1
      My experience, and I'm sure a lot of people will agree, is that the entire process is screwed up. The customer doesn't know what they want, the project manager changes the specs w/o telling the user, ambiguity in requirements, and yes, idiotic programmers. The whole process needs to be changed

      Wow. Great that you noticed. But, people have been remarking on this since the late 1960's - starting about a month after someone noticed that good programming is hard to do. The problem is that managers have no incentive nor requirement to change the process, and (good) programmers have no way to force the change. Oh, and don't forget that the industry is full of self-taught people who insist that because they don't need certification, nobody needs it.


      --
  65. Re:Markets, Cerrification, & Licensing by Anonymous Coward · · Score: 0

    The better comparison is software fail = pacemaker stops = patient dies. If Y2K causes enough BIG failures licensing will happen.
    The flow is - Disaster > look for someone to blame > force changes to "fix" and prevent from happening again. The fix usually is forced on the easy target (the programmer coded the problem) not the cause (manager told programmer to not fix the Y2K bug and to code on.)

  66. Cool -- even more money by Anonymous Coward · · Score: 0

    Let's see: programmer salaries right now top out in the low 6 figures -- and that's just driven be market scarcity.

    Throw in certification/licensing and we'll be like doctors and lawyers. With better wardrobes.

    Who's going to complain when Java rates go past $200/hr.

    Not the worst thing in the world. We're smarter than they are anyway.

    1. Re:Cool -- even more money by Anonymous Coward · · Score: 0

      Yeah!

      I've been trying to find a way to break the low 6 figure income...this is the way to do it:-) I'll get certified. Sit at my desk until someone comes around and offers the $100/hr job!

      I'm going to do it!!!

  67. Bridge building material isn't cheap. by Anonymous Coward · · Score: 0

    Perhaps, but comparing civil engineers to software engineers/developers is comparing apples to oranges. In the civil engineering world there are barriers to entry (ie. materials to build a bridge do not come cheap). Where as building an operating system such as linux has relatively few barriers material wise. The priceless asset is the time/work of experienced coders.

    Or...maybe they are very similar, and right now all the software developers have an axe and a forest of trees to cut down, and build stuff with. As with everything, the strong will survive and the rest will go by the wayside.

    vt0asta

  68. Re:Technology? by Anonymous Coward · · Score: 0

    I think that programming has changed in some ways. As the programs have gotten larger, the standards have changed and large programs where there are tens or hundreds of people working on them have often become much more modular. OOP is in, fortran isn't as popular as it used to be, we've discovered the world of event-driven programs,etc. My mom worked with punchcards 20 years ago, but that experience is useless to her. I doubt most programmers would have a problem keeping up with the changes, but if you check out of the computer world for a few years, you might have some culture shock in the transition. for example,the jump from having direct access to everything to being stuck with DirectX has been annoying to a few people I'm sure. The changes not be large, but it's amazing how small of a rock can make some people trip.

  69. Certify products, not people by Anonymous Coward · · Score: 0

    I think it's very difficult to test programmers to see if they have the appropriate skills to write good software. It seems a lot better to build a series and tests to tell if the software is effective, and behaves nicely. The OS vendor or some other appropiate entity could then certify the software (similar to Sun's Java compatibility tests). This won't work for all products, but it seems more effective to me than trying to make a programmer chose between losing certification and losing his job when sales screams "We promised to ship it yesterday!".

  70. IQ? AHAHAHAHAHAHA!! by Anonymous Coward · · Score: 0

    the thought that one number can adequately
    describe a human intellect is fundamentally absurd

  71. related: programmer's insurance by Anonymous Coward · · Score: 0


    On a related note: has anyone ever heard of programmer's "insurance?"

    I knew a programmer who was working for Apple and he had to have insurance to work on their QuickTime code.

    Anyone know where to get such insurance?

  72. Hmm. Difference? Yes. by Anonymous Coward · · Score: 0

    An mechanicle engineer works on a bridge so that society may use it. A software engineer works for a company, or potentially him/herself.

    Yes, their is a BIG goddam difference.

  73. I'm an uncertified engineer by Anonymous Coward · · Score: 0

    There's no certification for electrical engineers. I design analog circuits and my reputation is based on the quality of my work. In any job interview, I get asked what I have worked on in the past and to describe it briefly. It is easy to tell in that situation if someone knows what they are talking about.
    I'm not sure that programmer certification will improve software quality. It seems that the management is more responsible. Even mediocre programmers, given the right management, can produce good code. It will just take longer. When project managers and marketing reps will settle for kludgey code, we see craptacular software in the market.
    I don't really like the idea of certification. It seems like a misguided, beuracratic (so I can't spell, I'm an engineer) burden that becomes a mandatory hoop to jump through. You have to pay for it, but it doesn't mean much. Yeah, I went to an accredited university and that may be seen as certification. Maybe it is, but I learned a heck of a lot at school. Sure there were bozos out there who slipped by, but that will be evident to all but the most boneheaded employers.

    I'm all for standards and codes, but this kind of mandatory seal of approval looks like it does more harm than good.

    Matt (forgot my password)

    1. Re:I'm an uncertified engineer by Anonymous Coward · · Score: 0

      >>There's no certification for electrical engineers.

      yes there is.

      until you get your PE you arent legally an engineer despite what your degree may say.

  74. Re:Other engr. prob complained too, long ago. by Anonymous Coward · · Score: 0

    Bridges collapse most often when loaded (with traffic). Boilers blowup when they're full of steam under pressure. These are the kind of things that licenced professional engineers put their stamp on. There's a lot of engineering that gets done that doesn't need a stamp. There will allways be a lot of programming that gets done with out a stamp - but I could see a PE for software for something like the control program at a nuclear power plant.

  75. i think you mean... by Anonymous Coward · · Score: 0

    I'd rather hire a MIT grad than some State U grad not because the wonderful course work but because he is statistically likely to have higher IQ.

    i think you mean they are statistically more likely to have richer parents. cost is the single most deciding factor as to whether a person goes to an expensive private school or a cheap state school. it has nothing to do with ability.

  76. Re:No Damned Way. by Anonymous Coward · · Score: 0

    Perhaps a lot of theser respondents merely haven't taken a sufficiently interesting, creative test.

    Sure, I can see miserable, horrible tests that check whether you know how to trigger the garbage collector the right number of times to keep your object count low while serializing accurately over OODBC connections (to buzz the right words).

    I'm far more interested in tests of code design ability, code reuse, language adaptability, flexibility. Awareness of robustness principles.

  77. Re:Software inevitably fails all the time by Anonymous Coward · · Score: 0

    Not in fusion.

  78. Point, but.... by Anonymous Coward · · Score: 0

    "...if you don't know history, you repeat it."

    Whether that history comes from one of your old
    men screaming at you or hitting a book or asking
    a coworker I believe the end result is the same
    and that is the point I was trying to make.
    The point is experience. Classrooms attempt to
    give a person a lot of "experience" in a short
    period of time. And I grant you there are few
    more efficient ways than that. In my experience
    part of the failings of classrooms are that some
    of the old men refuse to accept new ideas and will
    not teach them to you.

    But...

    There is another type of experience you overlook.
    That is, most programming does not exist in
    a vacuum. My CS students are all experts at programming.
    However, my programming has a
    purpose (astronomy) and often it is easier to
    code up certain critical routines myself
    (never mind if you would find them inefficient)
    because I can't depend on a pure CS student to
    understand the nuances and I don't want to have
    to constantly look over their shoulders. In
    other words, my assistants handle the sundries
    and I make sure the critical bits work right.

    I can't imagine that this is just my problem.
    Given a choice between a CS major who is
    technically excellent at programming and an
    accountant who is self taught but competent,
    I know whom I would choose to write an
    accounting application. Of course, large projects
    would have room for both so perhaps this point is
    moot.

    But this is why certification *cannot* be tied
    to a degree reading only "Computer Science."

    1. Re:Point, but.... by porkchop_d_clown · · Score: 1
      Whether that history comes from one of your old men screaming at you or hitting a book or asking a coworker I believe the end result is the same and that is the point I was trying to make.

      But when your coworker doesn't know either, you end up doing a lot of work from scratch for no great gain, and repeating lots of old mistakes. Lousy data-searching because the coder doesn't know how to code a hash, let alone a partially ordered heap, code-bloat because the coder doesn't understand the relationship between data structure design and memory consumption, and I could go on forever.

      However, my programming has a purpose (astronomy) and often it is easier to code up certain critical routines myself (never mind if you would find them inefficient) because I can't depend on a pure CS student to understand the nuances and I don't want to have to constantly look over their shoulders. In other words, my assistants handle the sundries and I make sure the critical bits work right.

      That's great - and I've worked with image processing experts in that same mode. They handled the nitty-gritty subroutines and I handled the entire data-collection/presentation/distribution system. But what has that to do with the certification of professional programmers? And in what sense does you mastery of astrophysical math make you qualified to be a professional programmer? I strongly doubt the number-crunching work you need done rises to the complexity of a full text-editor, let alone a major three-tier distributed system.

      I am at least semi-literate astronomically; I scratch-built my own 8" Dobsonian. But I don't think that means I deserve a place at the head table at your next symposium.


      --
  79. Re:Markets, Cerrification, & Licensing by Anonymous Coward · · Score: 0

    As we approach an age in which computers are becoming more powerful each and every day, and the scope in which any given piece of software can have an effect is widening exponentially, perhaps the notion of licensing programers isn't that far fetched. The reason that doctors are licensed is precicely because of the potential damage they can do. Shouldn't programers be judged with increasing scrutiny as the level of influence they have in society increases?

  80. Re:Death to the GPL by Anonymous Coward · · Score: 0

    Yeah, let's all sit around and hold hands and sing together about the "community". What a load of horseshit. People who code for free do so because they're not qualified to get paid to do it.

  81. Re:Every life/death program should be open source by Anonymous Coward · · Score: 0

    Yeah, wonderful. SO if that code kills people, who's at fault, the "community". More OSS fairytale bullshit.

  82. Re:Programming without discipline is more dangerou by Anonymous Coward · · Score: 0
    You are an EE, did you take upper math?
    DiffEQ, linear algebra, calculus of complex variables, vector calculus to name a few courses.
    Mathematics teaches rigorous and analytical thinking in ways that are difficult to pick up independently. The final year of a good CS program takes these concepts and applies them further to solving problems through software.
    Problems like coordination of multiple asynchronous processes? That takes a knack. While the math classes may teach thinking skills which apply well to problems of database design, I haven't seen any sign that it helps do much else. The number of CS grads I've seen who couldn't find any way to relate what was happening inside the computer to events in the real world, and understand how the two interact, would frighten you. And quite a few didn't even know one assembly language or have the concept of a register, let alone a gate.

    Most business programming doesn't require any concept of how the computer system could relate to things outside itself, so there the average CS grad is relatively well-equipped. But with the huge growth of smart devices, the proportion of programming which needs a comprehensive knowledge of the application and its environment is growing. To work in that world, you have to have knowledge not just of formal methods but also basic physics, electronics and sometimes mechanics.

    Software is my living, but I can talk reflected power with the RF engineers, thermal conductivity with the mechanical engineers and current-force relationships with the guys who deal with the magnetomechanical interface gadgets. I can dig through the system to find what's wrong, hardware or software, and often I can fix it. I can understand the system, and that's where I really earn my pay.

    Getting this back to the subject of the thread, I think we could all agree: there is never going to be a test which can measure the ability to do these kinds of things, and these are of far greater importance to an employer than a score on a standard section if they need those skills. This is why the resume', not any "certification" authority's appraisal, is going to be the most important thing for getting a job for a long, long time.

  83. Re:Degree = Beginner by Anonymous Coward · · Score: 0

    >Who would you rather fixed the brakes on your car, somebody with 3 years of classes or someone with ten years of fixing cars

    Humm... Here's a real life answer to this hypothetical that translates directly to the computer programming industry :

    Whichever is cheaper.

    That's why, when you go to Midas to get your breaks fixed, GED cannon fodder is behind the wrench.

    Anyway, the point is quite moot, as it looks like Microsoft has an internal fix waiting in the wings just incase this scenerio plays out...

    The REAL question is what sort of impact would this have on OSS, uncertifed software?

    Maybe Microsoft is quitly pushing this issue?

    y2k should be very telling...

  84. Re:Blueprints by Anonymous Coward · · Score: 0

    You would probably also realise that house plans are not very detailed (compared to a bridge or multistorey building). A lot of the actual detail gets filled in on-site by the builder as they go. And the builder will also be licensed - well the labourers won't but anyone with any responsibilty will be.

    You would also find that engineering drafting has more stringent requirements (in my country at least) than architectural drafting.

  85. Re:How do you certify for this industry? by Anonymous Coward · · Score: 0

    I wouldn't worry about it, 5 years to get the degree, and then +12 years of experience. 12 years, is a LONG LONG time in the IT industry. I for one plan on retiring by the time I'm able to be certified in Texas.

  86. accountable? ha, ha by Anonymous Coward · · Score: 0

    Okay, so something goes wrong with your Microsoft software... who do you sue?

  87. Re:Microsoft by Anonymous Coward · · Score: 0

    Never did I suggest that MS employs sub-standard programmers, in fact I believe quite the opposite. However, I find your assertion suspect as I have a friend who programs at Microsoft and who doesn't have any certification.

  88. Buisiness practices make it all moot by Anonymous Coward · · Score: 0

    lost my password, this is spauldo (formerly da hippie, 'fore the air force cut all my hair off...)

    This type of thing looks good on paper, but if you look at it in practice...

    For example, let's say that our favourite monopoly gets all their programmers certified. Will their products be any better? No. Do you think that the programmers at M$ really want to program bloated code? No again. They're brilliant people for the most part, from what I've heard. But coders don't neccisarily call the shots on what they have to work with.

    For example, let's take the A+ certification (computer repair). I took heathkit practice tests for it, and passed it easily, even though the test includes laser printer repair, and macintosh architecture, neither of which do I have any twinkling of experience with. I can fix a PC with my eyes closed, but I'd be lost on a laser printer. Yet my certification says I can repair them.

    So really, a certification just proves that someone has the minimal knowledge of a particular subject. I have a minimal knowledge of programming, so can I get certified too?

    And as for people writing better code just because their certified, as it seems you were trying to convey in your argument, I would seriously doubt that. I don't repair PC's any better because of my A+ certification. I repair them just like I did before (adding the two additional years experience in the meantime). You either have the ethics to check all your code, and do the best job you can, or you don't. There's no certification in the world that will guarantee that.

    1. Re:Buisiness practices make it all moot by SeanNi · · Score: 1

      Ok, a coupla things.

      1) We're not talking certification, we're talking licensing. I agree 100% on your points about "our favourite monopoly" going around, certifying all their programmers, and not changing a damn thing. Whaddaya think the MSCE is? But a license, that is controlled by an outside entity, is something else completely. Normally, I am in favour of the government keeping its nose out of where it don't belong. In this one case, however, I'm not so sure. If the programmers were accountable to someone outside their organization, they might change the way they do things. Which brings me to point...

      2) But coders don't neccisarily call the shots on what they have to work with. EXACTLY! And this would put that power into their hands. I know it would in my case. I work for another large microsoft-ish corporation, and though being a programmer, I answer directly to my boss, who is a marketroid (works in sales). I leave the resultant tug-of-war as an exercise to the reader. Every single day, I am constantly having to struggle to get things done The Right Way (TM). And I don't have a hell of a lot of ammo. Any leverage I can get would be very welcome. A license, from an outside party (aka: the gov't) which includes a code of ethics or something that I can wave in his face would be very powerful.

      3) So really, a certification just proves that someone has the minimal knowledge of a particular subject. Again, we're talking licensing, not certification. Something that is standardized across-the-board, where people can be satisfied that to get that license, someone has to have more than just "the minimal knowledge."

      4) You either have the ethics to check all your code, and do the best job you can, or you don't. There's no certification in the world that will guarantee that. I agree. There is no certification (or license, for that matter :-) that will guarantee that. BUT. What it will do is make people accountable. It will mean that if they are found to have made a shoddy product, or to have violated the code of ethics in any way, they can have their license revoked, and be unable to program. Just like that. A bit of an incentive... that's how licensing works. The point is not that they have to undergo training to get their license, but that their license can be revoked at any time for "bad behaviour." That's the fundemental difference between a license and a certificate. A certificate is permanent. A license is constantly checked on.

      It's harsh, I agree, but if that makes for better software; software that can be "proven" to be correct, rather than just assumed (to the best of the programmer's knowledge) to be "sufficiently correct," then as far as I'm concerned, it's worth it.
      --
      - Sean

      --
      It's a fine line between trolling and karma-whoring... and I think I just crossed it.
      - Sean
  89. Re:A common misconception by Anonymous Coward · · Score: 0

    The thing is physics are always the same they are laws, but unless you wrote the compiler or are programing in machine code you are never going to be sure how it is really going to work. There is no choice but to test the real thing. Something that is all but imposable for someone who builds a bridge.

    For the person that said that the CEO is resonable is not thinking. The CEO is a buisnessman he makes money when the company makes money he wants to sell updates, service contrats, and new versions a program with out bugs is not in his best intrest.

  90. how about this? by Anonymous Coward · · Score: 0

    On the whole, I agree with this. It is about your being able to do the job.

    Why is it that the only answers ever considered in these sorts of situations are government regulations? I mean, come on, you have to be certified to sell land?

    Why not various (and competing) professional organizations that certify individuals as competent in certain fields? You get all the certificates, plaques, badges, decals, etc. that go with the territory.

    Then, if I, as a customer, want a certified programmer, real estate agent, etc., I can choose one certified by the organization with the best reputation.

    Make it VERY ILLEGAL to claim membership in such organizations falsely. Make the individual and perhaps the organization liable in the event something goes wrong.

    DO NOT PREVENT other competent people from making a living just because they do not buy into the paper = competence game. Do not prevent clients from hiring people they know from history to be capable just because of a lack of a piece of paper...

    where the fizz wazz.

  91. Re:Markets, Cerrification, & Licensing by Anonymous Coward · · Score: 0

    OK, so what is the situation if we have the "LICENSE" but do not make it ILLEGAL to practice without a licence?

    There is no information cost, AND the client still has free choice.

    Why is this not tried? That is, I have a cold. Do I want to go to a state licenced doctor or to a herbalist? Well?

    where the fizz wazz...

  92. Certification by Anonymous Coward · · Score: 0

    I actually teach a certification course at a community college for web developer. Personally, I don't think certification works. Why do I say that? If it were up to me, I would not certify anyone in my class. However, the college wants me to certify all students that attend every class. Come on...give me a break! I wouldn't even hire them. certification these days are a way for colleges and institutions to make a quick buck. It's a joke. A true programmer doesn't need to be certified. Certification is a means of separating one idiot from another of what they think they know. that's my $.02

  93. Re:bullshit not! by Anonymous Coward · · Score: 0

    Computer science != programming. Computer science is about things like neural networks, digital signal processing and applied psychology. Software engineering is another thing, but even in it you don't really succeed without formal education. Everyone can learn to code trivial applications, but in designing very complex systems (such as in medical applications) you need project-management skills, a broad knowledge of different tools (nearly impossible to learn on your own) and basic knowledge about other fields of engineering. So you love to code. I don't, and that's why I'm a student of computer science.

  94. Blueprints by Anonymous Coward · · Score: 1
    Of course, when a company is designing a bridge, the blue prints are freely available for all to see.

    If it were a software company, they would hand you a bridge and say "We hope this is what you wanted."

    1. Re:Blueprints by Touch-of-Grey · · Score: 2

      Having grown up in an architect's home, I have learned first-hand that most plans are NOT drawn by licensed architects. He who holds the license draws the overall concept and interns or other junior draftsmen do the actual drawings. Which might not be a bad model - the programming manager or dept head would have to be licensed, and all the rest stay the way we like - coding.

    2. Re:Blueprints by gonzocanuck · · Score: 1

      How true. A product can go through an amazing development cycle. A company that makes a product to give to the client and says "we hope this is what you wanted" is not going to be in business very long. Communication is the key - and I've never seen a product come into being without being approved on several levels.

      --

    3. Re:Blueprints by gonzocanuck · · Score: 1
      Oh :-)


      From what I understand, a lot of the original programmers didn't expect their stuff to be around this long :-) Like the nuclear utopias back in the thirties. I'm still waiting for my hover car ;-)


      No, that is true too. Until something goes wrong with the program I never worry.


      >Would liscensing programmers really take care of the stupid PHBs

      Nope!

      --

  95. so what by Anonymous Coward · · Score: 1

    certification means nothing. its just a scrap of paper. experience and intelligence are what makes a good programmer. look at how many bozos there are out there with freshly printed mcse certs that don't even know how to turn on a computer. a programming certification will only pave a road for morons to enter the programming world.

    1. Re:so what by Bump · · Score: 1

      Having a certification akin to most States' Professional Engineer(P.E.) would hardly pave a road for morons to enter the programming world. I'll go so far as to claim that it would do the opposite- it'd at the very least make project managers a known quantity, as opposed to some yahoo with "C++ for Dummies" who may have a lot of experience... programming BADLY! Experience is nice, but it only works on what you know. If you learn the right things to begin with, your experience will be that much more valuable than someone who didn't learn the right stuff.

  96. Almost correct, but... by Anonymous Coward · · Score: 1

    Civil Engineers need to be licensed, as do contractors and anyone else who designs public projects (at least in the US, although licensing is an issue for the states themselves). Electrical Engineers are not licensed if they work in the private sector, neither are programmers.

    Nor should they be.

  97. What's the problem? by Anonymous Coward · · Score: 1

    There are plenty of professions that require certification or licenses. Doctors, teachers, engineers, etc. all need licenses or certificates. It's too bad there's nothing like a Programmer's Guild (read: labor union) universally recognized to take this job.

  98. Very interesting by Anonymous Coward · · Score: 1

    I didn't read the article (I didn't want to register, mirror anyone?) but I never thought about licensing programmers. Of course it would be interesting to see an implementation.

    The reason I found it interesting is that I have an electrical engineering major, and I found out that in some places becoming a licensed "Professional Engineer" brings some benefits. Computer programming classes are often offered through engineering departments of schools, but they are also offerred at JCs and in math departments. So, is a programmer an "engineer"? Also, there are issues of liability with the engineer and bridge example, but every piece of software has that big disclaimer on it that denies responsibility (which is why I think y2k lawsuits have no legal grounds), so if there was some licensing scheme, would this lead to programmers being held liable for the stuff they write?

    1. Re:Very interesting by WebDosa · · Score: 1

      Use 'cyberpunk' for username and password

      --
      Later,

      WebDosa

    2. Re:Very interesting by Dilbert_ · · Score: 1

      I've been using 'Slashdot' and 'Slashdot-effect' for months now... Some friendly soul once created that account for those of us too lazy to register, and it still works :-)

      --
      superblog.org: all your favourite blogs on o
  99. Why a degree? by Anonymous Coward · · Score: 1

    The person in Texas proposing certification indicates both a degree and exam. If someone has proven experience and can pass a comprehensive exam, why require a degree?

  100. This is, of course, a subtle call for unions.. by Anonymous Coward · · Score: 1

    Just what we need, eh ?

    Union-controlled programming shops equal:

    - timed bathroom breaks
    - no refreshments except during timed 15 minute
    breaks ( 2 each )
    - pay and raises based on "longevity", etc, not
    skill and quality
    - union mandated tools ( "You WILL provide a
    proper, green-screen terminal for our
    workers!" )
    - hugely overstaffed projects so the union
    bosses can keep their Caddies
    - low quality, low productivity work
    environments ( hey, it's a *union shop* )

    And of course, loss of the cutting-edge to just
    about any other country that cares to take it away.

    By the way, what do you think a certified
    FORTRAN-77 or COBOL programmer on Data General
    minicomputers would be worth today ?

  101. way too narrow minded by Anonymous Coward · · Score: 1

    Software development is a craft (part science and
    part art). As a craft it is best learned from
    craft masters. I don't have a degree but I would
    put my training up against any. I was taught to
    develop software by three seasoned masters during
    a period that was very similar to an apprentiship.
    I still make a point to continue learning about
    both the science and art of programming but the
    fact that I do not have a degree says absolutely
    nothing about my skills.

  102. Re:Certify s/w architects, not programmers by Anonymous Coward · · Score: 1

    Dead On!

    I went to a school with a lot of engineers and I am working toward becoming a System(software) Architect. And I can see a lot more similarities with engineering at this level.

    Within the engineering field you also have the EIT level Eng. In Training. You can happily sit at that level forever. But if you are a fully certified Engineer when you put your stamp on a project you are putting you job/reputation on the line. If the thing fails you could be screwed as far as being an engineer. At least that is my understanding from some friends that work for the state in the bridge division.

    I've always said it is pretty weird how CS people go to school for 4 years to become the blue collar workers of our industry.

  103. Licensing is not warranted by Anonymous Coward · · Score: 1

    I'm a programmer. I don't have a license to program. In past careers, I've been a lawyer and a registered rep of a securities firm. For both of those careers, I had to be licensed (though the securities licensing was a joke).

    What's the difference with programming? Well, for one thing, you aren't generally handling peoples lives or money, or incurruring tremendous liability. Generally, you work for a company and if you screw up, your company is liable. Professionals, such as lawyers, doctors, and accountants are personally liable for their mistakes, even if they are part of a larger firm. There is also a lot of room for those professionals to take advantage of their clients. This is not *generally* the case with programmers. Also, licensing is often used as a barrier to entry into a profession, where people with bad motives can do lots of harm. (Unethical or incompetant doctors and lawyers for instance.) Considering the current derth of good programmers, companies are scrambling just to find folks birght enough to be trained. Licensing would force many of these companies out of business.

    Now, if you happen to be self-employed as a contractor, or own your own company, there are additional issues, which I won't go into, but still no need for licensing.

    To sum it up, licensing amounts to regulation of the industry, and regulations is generally a bad thing but a necessary evil when there are people (read: clients) to be protected. There is simply not a great enough public good to be accomplished by it.

    1. Re:Licensing is not warranted by mcollins · · Score: 1

      I'm not entirely sure that I'd mourn the loss of a company desperate to be the next pointcast. There's an issue of degree here - you pointed out that doctors, lawyers and P.E.'s have to be certified becaus eof ethics and liability issues. I'd imagine that a good chunk of the code out there doesn't really cost lives the way a faulty power generator or a misdiagnosis does.

      Maybe certification would be a form of educated guess - you can hire an uncertified programmer, but you would want to hire a certified programmer to build your weapons systems.

      Why is Wellington Yueh running through my head?

  104. Re:Markets, Cerrification, & Licensing by Anonymous Coward · · Score: 1

    I know who decides if a cost should burden the buyer or the seller: the buyer and the seller.
    The point of the free-market is that I should be allowed to exercise my own judgement when making a trade (be it hiring a programmer, or a doctor). It also means that if I don't like the terms of the deal, then it's my responsibility to walk away.

    You say a person can't rationally decide if a doctor is qualified. Yet, it's a decision I should be allowed to make in principle. However, the law prohibits this (in the form of unlicensed medicine). Are you saying I have no right to choose my doctor on my terms?

    But so many slashdotters think people can't be trusted to choose their own OS (unless they choose you-know-what)... so I guess we know what that means...

  105. Since when does certification equal skill? by Anonymous Coward · · Score: 1

    Hey, I work for a java development firm in Houston. We've got all sorts here, from undegreed, uncertified programmers to degreed, certified programmers.

    Our best, brightest folks are those w/ no degree and no certifications. Crazy but true. I guess these sorts of bad-asses didn't have to get a piece of paper to prove their value.


    lin-dze
    (lin_dze@yahoo.com)

  106. A CS degree is often worse than useless. by Anonymous Coward · · Score: 1
    You said:

    The marks of a good programmer are:
    • Solid foundation in programming concepts
    • Knowledge of the processes of software development
    • Curiosity and exploration of new technologies
    • Passion for the work
    • Rigorous and analytical thinking
    But in an amazing display of non-thinking, you followed up with:

    I often find that a CS degree makes the difference between a true software engineer and someone who is merely a skilled technician.
    Exactly how is a CS degree going to create rigorous and analytical thinking, or passion, or curiosity and exploration? Those are part of a person's character; they are nearly impossible to teach.

    Take me. I'm a double-E, not a CS. I have taken a mish-mash of half-working code and a requirements document, and fixed it up to satisfy DO-178(b) level certification. This code is running now, landing airplanes for its pay. (Yes, it is safety-critical code.) I have created embedded systems from scratch, and been awarded patents on my work (look at 5,297,063 for an example).

    I have seen CS grads who had absolutely no idea what a port address was, or how to write an interrupt service routine. For all their academic ability, they never had the curiosity to find out what machines were actually like deep in their bowels. This made them almost totally useless for embedded programming work because they lacked the fundamental concepts of the opereration of any kind of hardware; without those concepts they had nothing to build on.

    I had one (1) course in this, and I was already self-taught in most of it when I took it. Don't tell me about CS degrees. I know better.

  107. You're right, but such a move would cripple the in by Anonymous Coward · · Score: 1

    It is wrong to compare software engineering to physical engineering simply because the expectations are so different. Nobody else thinks of software like they think of bridges. There can be many pieces of software to accomplish a particular task, but the "bridge market" isn't an overlapping one. A bridge may take many years to go from planning to built, but even software that is more complicated to design is often expected in months. Bridges seldom get upgrades, yet software sees many versions. Bridges are designed to connect to specific points, but software is often used and reused in bits and pieces for many different projects. When most software crashes, people restart it; when a bridge crashes, people die.

    If you put the same restraints on software development that you did on physical engineering, you would find nothing would change. Clueless managers would come in asking for unreasonable things, and if the certified engineer said they wouldn't do it, they would be replaced by less competent developers, who would pretend to be more competent by claiming *they* could do it. The project still gets behind schedule, over budget, and ultimately fails.

    The difference that makes no difference is of no difference.

  108. Software "Lemon Law" is whats really needed. by Anonymous Coward · · Score: 2

    What we really need in this country (USA) and others, is a software lemon law that provides customers with remedy and legal recourse against software vendors who sell buggy and un-QA'ed software that doesn't function correctly as marketed/advertised. Such a law should simply state one thing: if you sell software or licenses for software for money, then there must be a performance guarantee that the software can perform exactly as it claims to do. If it fails to do so, then full refunds are in order, as well as the possibility for civil litigation recovery of punitive and consequental damages compensation to the jilted customer, just like as with any other product sold for money. If your software is given away for free, only then can you be legally immune from such performance guarantees and the filing of lawsuits against you for non-performance of your software.

    1. Re:Software "Lemon Law" is whats really needed. by dillon_rinker · · Score: 1

      Statements like this one make me want to SCREAM! The US already has sufficient consumer protection laws in place. Software companies are smart enough NOT to specify what their software will do, and consumers are foolish enough to purchase it anyway. Most EULAs that I've seen (and not just MS's) say something like "This product is not warranted for any particular purpose", meaning there's no guarantee that the software will do anything - ie, the word processor may not be able to process words. Software companies say "Here's some bits, they might do something, they might not. Do you want them?" and the market says "Yes!".

    2. Re:Software "Lemon Law" is whats really needed. by brad.hill · · Score: 1
      Absolutely. For software which is "life critical" companies are already held liable for quality by the armies of lawyers roaming the countryside. Systems that are internally business critical are thoroughly tested before being put into production use. Big interests can avoid getting scammed already.

      The real rip-offs being perpetrated by the software industry are on the consumer goods level, not the critical systems level. Often, this is not directly the fault of bad engineering, but is a calculated business decision. Microsoft has become one of the most profitable companies in history by using its monopoly to force customers to pay for a constant stream of bug-fixes^H^H^H^Hupgrades.

      Sadly, the law is moving to favor those practices. Changes to the commercial code are already under consideration to make enforcable shrink-wrap EULAs that effectively say, "Even if this box is filled entirely with real and actual horse shit, you are entitled to no refund." Even if damages are disallowed, the implied warranty of merchantability should be enforced for the refund of the purchase price of software.

    3. Re:Software "Lemon Law" is whats really needed. by brad.hill · · Score: 1
      All industries are "smart" enough to deny everything if they're allowed to. That's why we have laws about implied warranties.

      If a company sells a shovel, everybody knows and expects how a shovel should be used. If it breaks as soon as I push it into the ground, I'm entitled to a refund, no matter if the shovel manufacturer put a little sticker on the handle that said "This is just a random assembly of wood and metal and not fit for any particular purpose." We all know it's a shovel; we all know it's supposed to be able to shovel. By the same token, McDondalds can't just put a warning on their packaging that says, "This is not food." and get away with poisioning everybody. It is implied by the fact of their selling it that it is a product fit for some use.

      Why then, if my word processor breaks when I try to print a file, save a file, indent a paragraph or perform other functions described in the manual, should the law treat it as if it were not a real product?

  109. Re:Software inevitably fails all the time by Anonymous Coward · · Score: 2

    >> What other professional field allows people to
    >> work without licenses?
    >>
    >> Architects? No.
    >> Doctors? No.
    >> Laywers? No.
    >> Accountants? No.
    >> Stock brokers? No.
    >> Real estate agents? No.

    Professional Athletes? Yes.
    Jockeys for Horse Racing? Yes.
    Sales People? Yes.
    CEOs of Companies? Yes.
    Chefs? Yes.

    You get my point. There are just as many
    unlicensed professionals as there are licensed
    (in terms of fields). I believe that licensing
    is a crutch used by many to show that "they
    must be good - they have the license!" attitude.
    They try to use the stigma of using non-licensed
    professional is foolish. Now, can you imagine
    any five-star restaurant having such an attitude?
    Don't eat at the Palm! They're chefs are unlicensed!

    The point of licensing is exclusivity. Period.
    A talented software developer will be known
    whether he has a license or not. If during the
    course of interviewing a potential candidate
    you cannot determine his/her skill level - then
    maybe they need assistance in evaluating talent
    for their hiring purposes.

    Sorry, wandered a
    bit there. Getting back to the exclusivity issue.
    If the license was really based on talent, then
    why do doctors and lawyers need different ones
    for different states? Shouldn't the general one
    (say the degree conferred by the accredited
    university) suffice nation wide? Some may argue
    well, the laws are different in differing states.
    Fine, but then the license is just an exam to see
    if you know the difference in the laws, not whether you're a talented lawyer. Also, this would not hold for a medical practice - I believe the ability to tell the symptoms of a cold are the same for all states... Thus, obtaining a license for a particular state equates to becoming a member of the good-ol boys club - exclusivity...

    I firmly believe that licensing software developers will lead to such a situation - besides giving managers a means to point fingers and threaten jobs... Also, HR will then use it to
    initially weed out candidates without first
    reviewing the resume for relevant work experience.
    If the shortage of talented software professionals is as dire as all the news agencies are reporting, then this seems like a really silly practice to me.

    Finally, I firmly believe that licensing only means (and I lump certification into this category) that you were able to pass the test - it in no way conveys to me that the individual has the ability to write good software.

    peace. JOe...

  110. Program Certification by Anonymous Coward · · Score: 2

    Licensing and certification would not solve these problems. The problem is more fundamental.

    How do you verify a program as "bug-free"? Last I looked, software verification was still charitably called a black art. How do you prove that the nuclear power plant core thermal regulator software you just wrote won't fail because of some obscure overflow condition in a microcontroller you know nothing about? Or guarantee that an operating sytem will never crash?

    Computers and programs are huge state machines, nondeterministic finite automata, with hundreds, thousands, millions+ of states. The larger the program, the more states and error conditions you have to check. First, prove to me that your 1,000 line program is correct. Then prove that the 10,000 lines of libraries it uses are correct. Then prove that the operating system it runs on is correct. Then prove that the underlying hardware is correct.

    Programming is not bridge building. You can take your knowledge of statics, dynamics, strength of materials, etc. to compute that a bridge is sound. Point me to something comparable in computer science to will do the same for a program (at least in O(N) time).

    Since we can't prove that a program is correct, then all we have left is peer review. (A bunch of people standing around and saying "Yep, that's looks right".) I suppose that is in essence what doctors do. ("According to JAMA, this is the accepted way to treat this condition"....)

    I don't think licensing is the answer. While I agree that there are certainly a good number of "local music dropouts" who pass themselves as programmers, licensing/certification hardly seems the tool to seperate the wheat from the chaff. Higher standards amongst ourselves, and with our employers, certainly "feels" like a better approach.

    I personally would never take a coding a assignment where the potential for loss of life was high if the program failed at some crucial time. I feel I'm a good programmer (don't we all :), but I would not be comfortably with that responsibility, and could not in good conscience accept it. At least not without a hundred other programmers whom I respected reviewing my every line.

    But hey, isn't that Open Source?

    Joe
    jacobson@pobox.com

  111. Full Disclosure has to be a part of the solution by sahai · · Score: 1
    Comparing "software" to another specific field like "Civil Engineering" is misleading. It is too broad of a category. However, that being said, it seems to me that in the age of cheap disk space and fast pipes, the following basic ideas should be workable in some form:
    1. If the source code and accompanying documents or tools needed to work on the program are available, then an explicit disclaimer of liability is permissible since the user community can be reasonably expected to be able to fix and identify any issues themselves. Of course, for this condition to hold, users must not be restricted from sharing information with each other.
    2. For anything which does not come with the source code and other documents needed to build the thing from scratch, liability falls directly on the distributor unless someone else explicitly takes it on.
    3. Corporations can explicitly accept liability for the products they produce, if they can post a bond or demonstrate sufficient insurance to do so.
    4. Individuals can explicitly accept liability for the products that they produce or manage. They must do this on a per-finished-product basis and can't simply be forced to accept it in advance as a part of an employment contract.
    5. Anyone accepting liability can specify specific limits on what functional domains they are willing to accept liability for. However, whatever remains will flow to everybody else listed above.
    6. The developers/managers/testers of a product have the right to include comments with the product if they feel ethically responsible to do so. Disclosing true bugs is protected, and this right can not be contracted away by any means.
    Example: If some corporation wants to release a proprietary product, anyone who distributes it (even gratis) would be liable unless the company explicitly takes on that liability itself. However, if the developers feel confident enough about their product to trust that users' will never need the source code, then they are free to explicitly sign off for portions of the product and thereby reduce the liability of the company. They can only sign off on things that they actually were somehow responsible for.
  112. Software inevitably fails all the time by kovacsp · · Score: 1

    When a bridge fails, it's the responsibility of the PE who signed off on it. When a software project fails, should it be the fault of the programmer who wrote it? Yes and no.

    If there was no pressure from a marketing department to get a product out the door, then this plan might have a chance, but sadly, that's not the case, so ultimately I guess it's not the programmers fault at all if something fails because it was released before it was ready.

    Finally, programming is far too much of an art (you don't see licensed artists, do you?) for this kind of thing. Yes engineering is something of an art, but there are a lot of hard and fast rules to go by as well, as well as a huge body of literature. In todays proprietary software climate, programmers are constantly programming the same thing differently, and in non foolproof ways. So no, it's not even feasable.

    1. Re:Software inevitably fails all the time by gavinhall · · Score: 1

      Posted by The Masked Miscreant >:):

      Did you see the requirements for the license that was mentioned in the article?

      An accredited degree and 12 years experience or no degree and 16 years. How many of us could even hope to feed a family for 12 years working as an intern (alot of internships are paid minimum wage, or are unpaid altogether) to get the experience needed to qualify for the certification?

      Even if the certification is only required to lead a development project, do you want to have to wait until you turn 34 (if you go to college) to have a shot at design work?

    2. Re:Software inevitably fails all the time by Oblio · · Score: 1

      I have to dissagree with you on this. The embedded systems that you refer to have a controled set of inputs and can therefore be fully tested to find the complete set of outputs, given failure assumptions about the hardware.

      Application and OS developement are entirely different beasts, and are subject to massive complexities that (I personally believe) cannot be fully solved with "building block" methodologies.

      So do we have different licenses for different programming tasks? I just don't think that we are at a point where licensing can be meaningful since processes aren't fully under control (and at times cannot be).

      --
      Pax -- Ob
    3. Re:Software inevitably fails all the time by sql*kitten · · Score: 1

      that's just excuses.

      software should be just as reliable as a bridge - and you'd know that if you'd any experience of formal methods. look at heart machines, air traffic control, the bank networks, even your microwave oven - how often does it crash?

      when you leave your home pc in your dorm room at your .edu and get out into the real world, then you'll know the score.

    4. Re:Software inevitably fails all the time by sql*kitten · · Score: 1
      Writing a piece of proprietry software, or software to solve as yet unexplored problems is equivalent to designing the bridge from basic principles and cannot be taught.

      you've never used a framework or a class library, have you? what about CASE tools and code generation?

      this debate is meaningless with all these kids posting. let the engineers speak...

    5. Re:Software inevitably fails all the time by Nygard · · Score: 2
      If there was no pressure from a marketing department to get a product out the door, then this plan might have a chance, but sadly, that's not the case, so ultimately I guess it's not the programmers fault at all if something fails because it was released before it was ready.

      If your license were at risk, would you bow to that pressure? Do you think there is no pressure to get a building up and running? Do you think that there is no pressure to get a bridge completed?

      Of course, the inevitable comeback will be: "If I refuse to work the job, they'll just find some unlicensed slob to do the job." That will be true if licenses are not mandatory to work in this field. What other professional field allows people to work without licenses?
      Architects? No.
      Doctors? No.
      Laywers? No.
      Accountants? No.
      Stock brokers? No.
      Real estate agents? No.

      All of these were once unlicensed, unregulated professions. They all banded together and instituted licesning procedures for their own protection and the protection of their chosen fields. Yes, that protection does imply protecting their own exclusivity--a necessary evil.

      --
      "Genius may have its limitations, but stupidity is not thus handicapped." --Elbert Hubbard (1856-1915)
    6. Re:Software inevitably fails all the time by Doctor+Memory · · Score: 1

      what about CASE tools and code generation?

      Heh. Ever had to try to salvage a project designed by someone using a CASE tool and prototyping environment who had no idea how a system should be designed? And who's manifest lack of skills weren't apparent because all his/her work looked so good? Garbage in, gospel out -- and then some.

      --
      Just junk food for thought...
    7. Re:Software inevitably fails all the time by Doctor+Memory · · Score: 1

      I never said that CASE & tools were ineffective. I have personally used several of the low-end CASE tools (Rational's Rose, Powersoft's ProcessAnalyst, Cadre) and found them quite useful. But the comment to which I was replying strongly suggested that no knowledge of software construction was necessary if one had proper tools.

      --
      Just junk food for thought...
    8. Re:Software inevitably fails all the time by Cid+Highwind · · Score: 1

      There's a difference. A bridge is built once, and stays in one place. A piece of software is expected to run, out of the box, on a huge variety of machines, with a variety of OSes, and different programs sharing the system.

      When a bridge falls, they can look at the pieces and see which rivet snapped, or which beam should have been stronger. When a something corrupts a computers system memory and crashes it, there's no way to know which program did it, much less which programmer on which project team to blame.

      It would be just as accurate and effective if every time windows crashed, somebody went into the M$ building and randomly fired the first programmer he saw.

      --
      0 1 - just my two bits
    9. Re:Software inevitably fails all the time by symbolic · · Score: 1

      ook at heart machines, air traffic control, the bank networks, even your microwave oven - how often does it crash?

      This is plain silly. Heart machines in NO WAY compare to a large, complex software project. They are designed with a specific purpose in mind, have only one function, and are used in a very limited environment. Our air traffic control system is WAY obsolete. It's not foolproof by any means, and the very fact that much of it needs replacing suggests that it cannot meet our current needs - in terms of both reliability and functionality. As for the bank networks...come on...are you suggesting that there has never been a bank-related software development project that hasn't failed?

      Reliable software is a good thing, and I'm not attempting to suggest otherwise. But it's a little off the mark to imply that reliability, especially in large, complex systems, is tantamount to that (allegedly) seen in something so mundane as a heart machine. Perhaps a little study in purturbation theory would be in order.

    10. Re:Software inevitably fails all the time by Fvision · · Score: 2

      The bridge analogy is plain daft. An engineer gets out a standard bridge, then alters it so that it is appropriate for the situation, as he was taught. The result? A lot of similar bridges, which on the whole, don't fail.

      With open source, on occasion the programer can start with some standard software and modify it so that it is appropriate to the situation. This is the exception. Writing a piece of proprietry software, or software to solve as yet unexplored problems is equivalent to designing the bridge from basic principles and cannot be taught.

      Teaching schemes may be able to help you get more information about making the program you write more efficient - it may give general guidelines on how to design programs. However they cannot begin to give or replace the inspiration needed to see the best way to solve a problem, to see where the design problems are or where bugs could be. Thus the scheme should fail - it is irrelevant to whether or not you are a good programmer.

    11. Re:Software inevitably fails all the time by mcollins · · Score: 1

      software should be just as reliable as a bridge - and you'd know that if you'd any experience of formal methods. look at
      heart machines, air traffic control, the bank networks, even your microwave oven - how often does it crash?


      I'd be a little bit cautious around formal methods. I don't think any of the all encompassing approaches will really be widely viable in our lifetime. Admittedly, this is largely 'cos I've got a soft spot in my heart for lightweight approaches to formal design.

      But you make a good point - if it's gonna cost a life, you're gonna need caution. There are whole bodies of fault avoidance literature that the Software Engineering profession has largely ignored up until now - largely in favor of a dangerous cowboy approach. It worries me because the other engineering disciplines have learned to work like this because the cost of failure was way too high - and I'd hate to see the accidents repeat. The attitude that software is always going to be fallible just is not acceptable when lives are at stake.

    12. Re:Software inevitably fails all the time by mcollins · · Score: 1

      he bridge analogy is plain daft. An engineer gets out a standard bridge, then alters it so that it is appropriate for the
      situation, as he was taught. The result? A lot of similar bridges, which on the whole, don't fail.


      Snort. Something like 50% of suspension bridges built in the 19th century collapsed with 10 years of construction. Look up Petroski if you want the exact numbers.

      Engineering is nearly always carried out in the dark: we really didn't have good models for suspension bridge mechanics until the 1960's but it didn't stop Roebling from building the Brooklyn Bridge in the 1880's. Airplanes were built before aerodynamics - largely because without airplanes, you can't build aerodynamic theory. Engineering is always ahead of the theory, whether it be software, hardware, mechanical or chemical.

    13. Re:Software inevitably fails all the time by l2b · · Score: 1
      Heh. Ever had to try to salvage a project designed by someone using a CASE tool and prototyping environment who had no idea how a system should be designed? And who's manifest lack of skills weren't apparent because all his/her work looked so good?

      The person using the CASE tool having no clue does not mean that methodologies and CASE tools are not effective.

      Like anything, one must know what one is doing. Would you say that Linux performs badly because some utility may be poorly written by a newbie? I hope not!

      Some methodologies and CASE tools are pure garbage even though they sell well. Popular does not mean right. The disasters do and will continue to speak for themselves.

      Until effective methods and tools become widely accepted and used on large and complex systems, we will continue seeing these expensive disasters.

  113. Yes, but by kovacsp · · Score: 1

    As long as decisions are made by marketers and managers, then the programmer doesn't have the last say as to when the code is released. Is he supposed to keep it in an unusable state until the very moment he believes it's ready? What would stop them from sneaking it out on him.

    Let's look at professions that don't need to be certified:
    Artists
    Carpenters (at least around here)
    etc.
    (it's early, give me a break :)

    Personally I think programming is more like the above two professions than doctors, architects, engineers. The former rely on their reputation for skill and accomplishment for new work (or continued work) and they intend to be especially creative.

    While I agree that licensing would be useful, even helpful, it is not feasible until we pass laws that state software can't be released until it is reviewed by a licensed programmer. I'm sure most people would agree that this would do nothing but harm the entire industry, and put open source software to death almost immediately.

    1. Re:Yes, but by sql*kitten · · Score: 1
      no, not at all maybe that was true in the early days of the web, maybe it's still true on the projects you work but...

      over here, we deal with real money, real commerce. if something breaks, it *costs* and we might get *sued*.

      certification/accreditation means that you are serious and responsible enough to be trusted with applications, not toys. i'm bound by the IAP code of conduct, and this means that so long as we don't break the rules, the job gets done to spec and everyone's happy.

      you get "self taught" cowboys coming in, the whole project gets messed up, these people have no discipline and no experience, and they can't be trusted.

  114. One way licensing would doom us by Tony+Shepps · · Score: 1
    There are problems introduced into the marketplace for doctors and lawyers BY licensing; for example, it directs the market to only work one way, increasing costs and politicizing the entire process.

    And does *anyone* think that licensure of doctors means that you can go to any doctor and expect him/her to be competent and working in your best interest?

    Adding licensure is adding politics to the process, and I should think that adding politics to programming is surely to goo it up, slow it down, confuse the relevant issues, etc. For instance, imagine the confusion when Bill Gates successfully lobbies for the programming equivalent of the bar exam to cover HIS protocols and HIS versions of languages.

    When we want to introduce more government into a process, we like to imagine a perfect government, one where the agents act perfectly. When the agents don't act perfectly, the best intentions go wrong. Interstate highways turn into sprawl-enablers. Law enforcement becomes revenue enhancement. Programs intended to improve conditions actually hurt people.

    The technology industries just happen to be the fastest-growing industries in the world. Lack of impeding regulations and licensing is one reason why. Please don't mess with it until it has had a chance to save the world...

  115. Re:Similar to licensed architects? by David+Greene · · Score: 1
    In order to become a licensed architect, one usually needs an Masters of Architecture degree from an acredited school, and several years of internship, working for a licensed architect.

    Such a system seems reasonable in the field of software engineering. No one is precluded from working just because they don't have a degree. But at the same time, those who are held responsible, are the ones who have completed graduate coursework in the field.

    This seems like a quite reasonable approach to things, if people feel it is necessary to license software developers. I still disagree with the need, however.

    (Note: there is an inherit assumption in all this that writing code is, in fact, an engineering science and not an art form.)

    I don't agree. All engineering is art. All engineering is science. That's why it's engineering!

    Engineering is the art of using science to pick a sub-optimal solution for the sake of politics (to please everyone). ;)

    --

  116. Don't we have this already? by David+Greene · · Score: 2
    It seems to me we already have a certification process: a degree from a University, community college, etc.

    Now some may object that this is isn't good enough. Well, if that's true, I'd have to ask, "Why?" Let's make it good enough. A degree in the field of computer science, computer engineering or electrical engineering should say something. If it doesn't, it needs to be fixed.

    If companies are going to hire "local music dropouts," that's their problem. Don't go blaming the engineers who have an advanced degree in the field.

    Furthermore, the pushing out of the older generation of programmers is only going to make things worse. IMHO, these are the people you need the most since they have the experience of getting products out the door (on time) and have a wealth of practical experience to draw on. This needs to be passed on to the younger crowd.

    I've always found the whole idea of licensed programmers absurd. A combination of advanced education and on-the-job mentoring and experience is much more effective than passing a silly exam. Corporations should be responsible enough to conduct regular reviews of their employees and address any problems that crop up.

    --

  117. Better QA processes by Enry · · Score: 1

    Being a (former) coder and now QA person, I see both sides. However, I don't think that a civee goes to build a bridge without getting opinions from someone else. I know that if I were to design a bridge, I'd want someone to go over every inch of the design and make sure it's sound.

    Enter QA. This is where Y2K should have been caught in the first place. You can't really blame the coders, as they wrote it to the design specs. There should have been a QA person as part of the design, coding, and testing phase as a double-check to watch for potential issues such as these.

    Much of my QA expereince has to do with hardware QA, but I have been part of software QA where I have 5 other coders going over every line of code I wrote to make sure it's right.

    Programmers are not to blame for Y2K. Go look at the QA and design docs to find better answers.

  118. Microsoft by gavinhall · · Score: 0

    Posted by JoeyRamone:

    Well Microsoft has certification, but that doesn't get them better programs now does it.

    1. Re:Microsoft by gavinhall · · Score: 1

      Posted by JoeyRamone:

      Uuuuhhh,

      Ever heard of MSCD (or somethin' like that). I believe it stands for Microsoft Certified Developer. I once took such a course (so you think I must know what I'm talking about)... It realy is about programming and not simply using a product.

      That didn't make me a better programmer.

    2. Re:Microsoft by ldemon · · Score: 1

      Too bad Microsoft doesn't force their programmers to be MSCD certified, therefore your point is moot

      Too bad you don't know what you're talking about. Before you program even a line of code for Microsoft, you have to have taken internal exams or passed a Microsoft certification to the required level.

      An MCSD is a relatively simple certification to obtain. Anyone with a fair knowledge of a computer language can achieve one, you have to be a much higher grade of programmer to code for MS.

      Much as you'd like to think that MS employ sub standard programmers it simply isn't true. There are just too many of them.

      Lil

    3. Re:Microsoft by daviskw · · Score: 1

      It's widely regarded that Microsoft employ's superior programmers. Mostly though, what MS employs is hubris. They have this: "We know better than you" attitude that can drive novice programmers nuts. The truth with MS is that if you encounter a feature in their programs they tell you that it's your fault for not knowing how to use their programs. This is an attitude that stems from the insanity of their corporate king, Mr. Bill.

      Any good programmer can pass certification, but it takes a really good programmer to know that everything he/she writes is not the best solution.

      This is why Linux does so well. The people who put out the code know deep down that if their stuff is really good it will be accepted, and if it isn't it will be rewritten. More importantly, they have the self confidence to let thousands of people step through their code looking for bugs. Show me a Microsoft programmer willing to let somebody he's never met debug his stuff and I will show you a programmer who uses Linux without his bosses knowledge.

      Kelly

      --
      Beware the wood elf!!!
    4. Re:Microsoft by PhoenixRising · · Score: 1

      Given how little MFC code MVC++ actually lets you write when you generate an app, you might as well consider it an application. :)

    5. Re:Microsoft by PhoenixRising · · Score: 1

      Badmouthing M$ for their software is perfectly valid. While you may personally find most of their software excellent, do keep in mind that other people may look for other qualities in software than you do, and that there are plenty of arenas in which non-M$ software absolutely wins out over M$ code.

  119. Too late(at least in Texas) by gavinhall · · Score: 1

    Posted by The Evil Dwarf from Hell:

    Texas already requires person who wish to do program consulting to have a PE (professional engineer license). You don't have to have one if you are employed by the company you do the programming for.
    The requirement (I think) only hold for the team leader (if it is a team). To get a PE you have to have either a certain number of hours from an accredited engineering school or a certain number of years of professional coding. (Unfortunately for me I don't have either being a physicist/mathematician...)

  120. What is ethical about it? by gavinhall · · Score: 1

    Posted by Stephen "The Carp" Carpenter:

    Where does "ETHICS" enter into it?

    Licencing is about regulation. Certifing that
    a person has passed some sort of test (or often
    just paid some money).

    Its absolutly silly. How do you empirically test
    programming competance?

    1. Re:What is ethical about it? by symbolic · · Score: 1

      The Java Prorgammer Exam does an OK job at testing programming competance. The developer exam is also an OK measure.

      This exam may very well test the "technical aptitude" of a Java programmer, but the issues involved in the failure of large projects go FAR beyond mere coding. Management, company politics, market conditions, and unforeseen technical issues are but of a few of the issues that will affect the success of a project. What good is a crack Java programmer if he (or she) is made to do things sloppily, or in a manner that make the results of the overall project ineffective?

  121. FascDot is oppressing me by gavinhall · · Score: 1

    Posted by The Mongolian Barbecue:

    First of all, _I_ submitted that certification thing on the NYtimes (along with a witty quote) over a day ago. Probably rob just stole it and didn't give me credit- that's ok though. What really bothers me is the oil story- I posted a nice flame on the end of it, and now its dissappeared! What has happened

  122. No worries; Industry won't allow it by gavinhall · · Score: 1

    Posted by MurphAndTheMagicTones:

    The number of unfilled software jobs out there is too high. This licensing scheme would serve to only reduce the number of programmers available.

  123. Other engr. prob complained too, long ago. by gavinhall · · Score: 1

    Posted by PasswdIs ScoreOne:

    I'm sure that when every engineering profession stepped over from the occult art practiced by a few to mainstream science in everyone's life, the people cried, "there ought to be regulation". And the engineers said it's not necessary; it's not realistic; it won't prevent bad engineering; etc. Software development has since crossed from being an occult art and so the cries for regulation have started. History shows this is inevitable.

    1. Re:Other engr. prob complained too, long ago. by symbolic · · Score: 1

      And the funniest part about it, is that there's STILL no guarantee it will work, as our defense contractors have aptly demonstrated.

    2. Re:Other engr. prob complained too, long ago. by mcollins · · Score: 1

      Engineers always complain, but it becomes inevitable. Once failure starts to cost lives, you'll start to see a demand for certification.

      There's a story that Robert Stephenson, the bridge engineer, was once asked about what kind of safety factor you needed when building bridges. Traditionally, civil engineers multiply their expected maximum load by anywhere between two to five to determine the minimum strength the bridge should have. Stephenson thought this was a load of bunkum, and never bothered with a multiplicative factor - until his Dee Bridge collapsed and took 11 cars out of a 12 car train with it. After that, he became QUITE fond of multiplicative factors.

      Software engineering is in the cowboy stage that civil engineering was in in the 19th century. Until we've killed enough people, we'll probably remain in that stage. Really, the only question is when we'll reach that stage.

  124. But there is no PE cert for software! by gavinhall · · Score: 1

    Posted by PasswdIs ScoreOne:

    How does my ability to do a free body diagram, find the thevenin equivalent of some circuit, or to calculate necessary thickness of a glass wall for a cubic aquarium to hold 5000 gal of water prove that I can write reliable code? Until there's a PE cert for programming, any other PE cert will be meaningless for ensuring the production of quality code.

  125. No Damned Way. by emil · · Score: 2

    Speaking from an entirely biased viewpoint, I have no desire to see myself become any less mobile in this field because of certification restrictions.

    I also have no desire to fund another bloated, useless bureaucracy.

    While there are a few core skillsets that have remained constant in this field, too much changes too quickly for any of these silly tests to remain relevant.

    No, No, NO!.

    1. Re:No Damned Way. by digitaldaniel · · Score: 1

      While there are a few core skillsets that have remained constant in this field, too much changes too quickly for any of these silly tests to remain relevant.

      I think this may be the most vaild point. While a few things remain constant (say C for example), the programming world at large is a dynamic one.

      The other aspect of certification is that a test would show your knowledge of a programing language but not show your ability to use that language in a creative way. I would see this certification as a way to test grunt level programers (poor guys) in a large corporate atomosphere. In any case certification is not a vaild way to test a programmers worth.
      btw
      if you are hired as a programmer and can't program, isn't your employer going to find out soon enough?

  126. Re:certified vs unionized by Erik+Hollensbe · · Score: 1

    What we need is an IT union.
    How about the Teamsters.
    Certification is garbage. Go to college.


    If I was Italian, I might consider that... :)

    Certification though, is not. I agree with the earlier poster about checking libs, OS, etc., but if coders were certified on their knowledge of the language, and the underlying libraries, (but not the code involving those libraries, just the calls, etc) other API, etc., it wouldn't be too bad of an idea, and protect the programmer in case that nuclear plant blows it's top.

    "I knew what I was doing, Cert. XXX666 shows that, therefore it must hvae been the Operating System....."

    I think you see what I mean.

    -Erik-

  127. Re:Certify the code, not the coders! by Erik+Hollensbe · · Score: 1

    What, do we have to register *EVERYONE* nowadays? Why not register authors, and columnists, and poets? Is there no freedom anymore?

    It's not about freedom, and those other professions that you describe are ARTS. As much as programming can be artistic, I don't think anyone in their right mind can literally call it an ART. Art doesn't have boundaries because there's no one/nothing to protect if art fails, because failure in art is only opinion.

    Get the programmers together and REVIEW THEIR CODE on a weekly basis. You will know who is the best programmer. And you will know who is 'certifiable'.

    I agree, peer review is one of the better ways to handle code discrepancies, but what's to say that any of the reviewers are 'certifiable' either?

    It's not a bad idea. Certification is one of the best grounds for protection in a lawsuit, especially with something like a science, where the plaintiff is more often then not going to be someone that doesn't hail from that field of science, and hence, uneducated about the subject. If someone were to sue you because of your poor code nowadays, the only thing you have is to call another, possibly your senior, programmer, and have them 'vouch' for your prowess. Personally, as much as I hate it too, I would rather have a piece of paper that signifies that THOUSANDS of programmers are vouching for my programming ability, not unlike a bar evaluation for lawyers and (?) doctors.

    -Erik-

  128. Why not offer a licensed software engineer. by [talon] · · Score: 1

    Offer a licensed software engineer position for companies that require engineer quality. That does not mean everyone has to be licensed.

    When i was in school, the term 'engineer' ment you were licensed and had many years of schooling. Now the term is losing meaning. Anyone and everyone is tacking engineer on the end of their title.

    I've read the comments but not the story and most people are saying NO! That is very closed minded. Most gpl authors have full time jobs, usually programming. Just because some companies want licensed engineers does not mean that's the end of gpl software.

    I am all for licensed software engineers and I would love to see the end of the engineer word abuse. Especially from Microsoft!

  129. How does it solve a problem? by bluGill · · Score: 1

    Programming is more art then science. A million line program (I'm working on one now) is about the equivelent of engineering a bridge from Death Valley up to the sapce station It could be done, as any engineer would tell you, but no enginner would attempt it because it is so difficult. Yet NT is between 20-40 million lines (depending on how counts) Solaris is 6 million lines (If I recall correctly, at least 5 anyway) God only knows how big Office is. I could write a bug free 1000 line program in little time. It would take me 20 times as long (This is a very low estimate) to write a 10000 line program, but if you only asked that the 10000 line program rarely encounter a bug, I will have the 10000 line program done faster then the bug free 1000 line program

    When you ask me to write a small bug free program I'll do it, it will cost you in time though. Forget internet years equaling a couple months, cuase there is no way to debug a program in that time.

    When the publics attitude chages, when programing will change too.

    BTW, whats the problem with music school drop outs programing? I happen to know a couple who are good programers.

  130. Maybe? by Suydam · · Score: 1
    It's hard to say. On the one hand, as a programmer, I'd say "screw you" I don't want to spend MORE money to get certified.

    But on the other hand, I'm providing (potentially) a product to someone that has the potential to wipe out vital data if I did it poorly.

    Where do you draw the line? Personally, I think software is more like the Bridge in the NYT article, than a Book in someone's post above ("Do writers need a liscense to read a book").

    However....using my argument that progs can destroy vital data, one might wonder why politicians don't have to have licenses. After all, they do more damage than my programs ever could.

    How's that for a rambling reply?

    --


    Werd.
  131. Re:Certified Engineers' low self esteem complex by Justin+Cave · · Score: 1

    >>>>

    I believe that certified, licensed engineers have every right to get upset when programmers (like myself) try to stick "engineer" on their title. Much like the term "Dr.", "engineer" has a rather specific meaning and requires a good deal of time/money/effort/blood/sweat/tears to achieve. Whether or not we agree with the process they went through, we should respect the result.

    In addition, the term "engineer" gives a weight to comments that programmers don't deserve. When a structural engineer gives an opinion (i.e. "That bridge design is adequate for xx cars over yy years"), I give that comment a great deal of weight because that engineer may be liable if he's wrong. When my doctor says a procedure is safe, I'm willing to trust his judgement because he legally has to stand behind that conclusion. No programmer can match that.

    Personally, I don't think programmers should be licensed. Until we are, however, we should not call ourselves "engineers".

  132. Re:Who would be responsible? by Altus · · Score: 1

    Its not my fault

    theres a bug in the compiler.... or the library... or the os... or in the hardware... or in the microcode

    it was due to radiation screwing with the chip

    computers crash for many reasons... course, if the reasons above were the only ones Id be thrilled... but still, certification is impossible, there are too many places for things to go wrong

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  133. Re:Oh please by Altus · · Score: 1

    the response to my earlier comment said something that is relevent here...

    have code for life and death systems be checked by an outside angency... its the customers job to make sure that the workmanship they get is acceptable.

    Im sure that the people that designed and built the house im going to buy were certified, so I guess there is realy no reason to get it throughly inspected before I sign a $200,000 mortgae...

    if anyone believes that I have a lovely house to sell you :)

    PS josh, im up this weekend, see you then

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  134. Re:This won't be a popular view here... by Altus · · Score: 1

    I see your point, but here is my question

    according to your credentials you are highly qualified, you could easily get a job anywhere you want.

    If an employer asks you to do something that you find objectionable... leave...

    thats all there is too it...

    maby Im being a little nieve here, but thats my phillosophy... I have made solid decisions about what I will and will not do in my carreer (Im sure there are some cases that I havent run accorss yet, cant be prepared for everything) and I feel strongly about them...

    if you feel this strongly you might want to reconsider your employment

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  135. Re:Falling on your sword... by Altus · · Score: 1

    you have to decide where your comprimize point is... obviously supporting ones children is the most important thing you can do, and you should perhaps be willing to put up with more from you job because of youre obligation...

    There is, never the less, a line for everybody... if that line is crossed, and your employer askes you to do something you find unacceptable (and I mean completely unacceptable here, lets be reasonable) then you have to ask yourself some damn tough questions...

    everybodys situation is different... everyperson must make their own decisions... but there are always choices, its just a matter of finding the choice which is best (or rather least bad)

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  136. Re:This won't be a popular view here... by Altus · · Score: 1

    being a contractor puts you in a unique position... im not sure what the best way to handle that situation would be, but if it got bad enought you could concievably leave you firm and perhaps persue a non contracting position... this would be extreem though

    you have a good point. you dont want to go jumping from job to job... that is a bad thing, but staying at a company where you are unhappy is even worse, for instance... I left my last job after only 6 months... why? well, not for any reason like your talking about... I left because they didnt have enough work to go around to the engineers in the group (government contractor anybody)... not enough work make me bored (though I spent more time on slashdot then)

    staying would have made me miserable and hurt my carreer, so I left... if you are in a position where staying at a company will make you miserable (doing the Wrong Thing) and hurt your career (scapegoats often have trouble finding new jobs) then you have to leave... Im not recomending anyone ever take such a decision lightly, but it is an option and must be considered under some circumstances...

    it is unfortuante that all employers are not good employers... hopefully Darwinisim will prevail, my last employer is currently up for sale, hopefully the company that buys them will be better at managing their resources, but im not counting on it :)

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  137. well Im certainly certifiable! by Altus · · Score: 3

    as what Im not sure

    the question here is... who makes the test... who decides what "good programming practices" are.

    I dont know about you, but I realy dont want to see a world where everyone writes code the same way... its unproductive and stifles creativity and innovation. (esp if everyone wrote code like MS:)

    on the otherhand, if I had faith that it could be done right it would not be so bad...

    the most important thing to remember though is that quaility of code does not come from the skill of the programmer, everyone makes mistakes (hey, even Mel had a bug in his code, what make you so special) quality code comes from a good process of design implementation and testing, including CODE REVIEWS!

    I dont know about you, but I certainly wouldnt want to write code for a life support system and not have someone review my work heavily before it was put into use.

    perhaps it would be better to focus on certifying companies (or project leaders) in this way... focusing on process... of course certification is only necessary for "important" progects, ie life and death... cases where liability is a serious issue (much like the engineering profession)

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  138. Writting software is not bridge building by bhurt · · Score: 2

    First off, bridge building doesn't change all that much. The basic structure and design of the highway bridge over the creek on I-80 is more or less the same one the romans knew.

    Second, certification is no measure of competence, it is simply a measure of how well they take a test. For example, simply because you pass the bar or get a license does not automatically make you a good lawyer or doctor. So- how do we know if a lawyer or doctor is qualified to continue practicing? Peer review- which (while welcomed by the open-source community) is against the fundamental principal of proprietary software. Do you really think Microsoft will open it's code simply to allow us to judge the competancy of their programmers?

    Third, and most important, it's trying to solve the wrong problem. At least as many software problems are the fault of the software managers as it is the software writers. Impossible deadlines, being forced to used an unworkable technology, a constantly changing set of requirements, etc. I'd recommend a read of the book "Antipatterns" for a sample of the ways Management can screw up a project (there are also examples of how the writers can screw it up).

    The solution is nowhere near as simple as this- no more than we can stop violence in our highschools by simply banning doom. Instead, a completely different approach to software is needed. One in which quality is prized above all else, in which the code is peer-reviewed and not released before it's ready (and I don't care when the salesperson promised the customer it'll ship- he shouldn't have been promising that anyways!). One like open source software.

    1. Re:Writting software is not bridge building by vr · · Score: 1

      Maybe it wouldn't make us good, but it would force us to obey certain rules. There are strict rules for how a lawyer or doctor must behave and what they can and cannot do.

      I think a license could be very good for us.

      I consider the ACM code of conduct to be a very good "pointer" to how we should behave.

      vr

  139. Someone doesn't want to work for a living... by YuppieScum · · Score: 2

    Public - Software engineers shall act consistently with the public interest.

    What nonsense. Who decides what is the public interest? Does this mean no coders could write a bulk mortgage foreclosure system? No more missile guidance software?

    I've generally found that such "ideas" for professional organisations are reasonably explained by:

    Those who can, do. Those who can't, administrate.

    --
    This sig left unintentionally blank.
    1. Re:Someone doesn't want to work for a living... by cpt+kangarooski · · Score: 1

      Who decides what is in the public interest? ... No more missile guidance software?

      Are you kidding me? If someone had to decide what software could do based upon the 'public interest,' email programs would report people to the authorities if it detected certain words (e.g. bomb, protest, president, ryder, conspiracy). Software that permitted individuals to stand up for themselves, like do-it-yourself law software, would be the first thing to go. But if there's one thing that is firmly in the public interest (or at least, in the interest of the people who tell me what's in my interest, not that I asked) is missile guidance software. And tax software that errs on the side of the government... that sort of thing.

      I'm telling you, it's time to found a new country somewhere, where we don't have to put up with this crap. There's a lot of room for an artificial island in the Pacific... I vote we go there.

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
  140. Re:certification, degrees, and economic class by nathanh · · Score: 1

    While I can sympathize that you lacked resources to get certification in the traditional sense, I don't think this excuses the fact that the vast majority of Information Technology workers I have to deal with are simply INCAPABLE of doing their jobs due either to inexperience, incompetence, or downright stupidity.

    Regulation of the industry is necessary. There are (I believe) more shysters in IT than any other field of "intelligent" work. I've dealt with IT companies that have overquoted on projects by 50 times or more, have sent out network experts who didn't understand basic concepts of TCP/IP routing or subnetting, and damn rotten corporations (most of them have as names 3 letter acronyms) who will take college graduates and palm them off to the client at 11 times the salary the graduate will see, often claiming these graduates have skills that our either exaggerated or downright false (like the firewall expert who didn't actually know what a firewall was, or the C++ programmer who had 2 weeks book experience and had yet to use a C++ compiler).

    I can understand your position, that regulation would have had an adverse affect on your chances, but the alternative is that the customer continues to be ripped off by greedy companies and clueless workers. Perhaps instead of being against the concept of regulation you should be looking for (and even promoting) methods of regulation that are based on real world achievements rather than upfront payments. In this way you would not have been affected, nor would other people in a similar situation to yourself.

  141. Horrible idea by The+Rizz · · Score: 1

    Personally, I think the whole concept of certifying programmers for this sort of thing is ridiculous. Perhaps it's a good idea to certify the PROGRAMS, but why the programmers?

    Many of the best pieces of software I've seen in the last few years were written by someone in their spare time, usually because it's the type of thing they wanted for themselves. Often these pieces of software were written by high school and college students - the very ones who would not yet be certified.
    Why, if they write better programs, should they not be able to distribute them? Simply because they didn't have the time or money to get certified?

    Additionally, the requirement of "X number of years experience" is ridiculous. You must have a degree, plus at least 12 years' experience! The ability of the programmer is absolutely irrelevent unless they've been in the job market for over a decade? At least with other certifications I've heard about the only question is the ability of the person to pass the test - this age requirment is absurd!

    It's possibly even illegal to require this certification for a job, as it is against federal labor laws to discriminate based on age. You'd need to be AT LEAST 28 to get a job requiring certification - you can't start working at a job until you're 16 in most states, and you need to have 12 years' experience for certification. (And this assumes you get your degree either before you're 16, or work all through college.)

    1. Re:Horrible idea by DavidTC · · Score: 1
      It's possibly even illegal to require this certification for a job, as it is against federal laws to discriminate based on age...

      That's a common misconception...actually it's just illegal to discriminate against someone if they are too old (over a certain age...maybe 55). This is why lots of companies fire programmers right before that...it's perfectly legal, under a perfectly stupid law.

      --
      If corporations are people, aren't stockholders guilty of slavery?
  142. Age Discrimination by The+Rizz · · Score: 1
    That's a common misconception...actually it's just illegal to discriminate against someone if they are too old

    No it isn't. (At least not in the statutes I have read.) What is says is that you cannot discriminate when hiring based upon race, religion, age, sex, physical handicap, etc. - it just says "AGE" without specifying any particular age. And it means you cannot discrimiate for being young or old.
    The point of the law is that you must look at all applicants equally, regardless of age, or any other factors. An employer is only allowed to discriminate against people who would not be able to do the job in a reasonable manner. (Not hiring an armless typist for example.) If the person is capable of getting the job done, and is eligible for work in the U.S., Federal law says you must consider them for the position.
    Any practice requiring certification to get a job, when the certification requires applicants to be of a certain age would be viewed as an attempt at circumventing the law. It would most likely be considered illegal.

  143. impossible by joss · · Score: 1

    Not a badly written article, quite balanced etc.
    But...
    some experts
    say it is not clear that
    certification would have
    prevented the year 2000
    problem.

    --
    http://rareformnewmedia.com/
    1. Re:Impossible by Augusto · · Score: 1

      Not a bad article, balanced, researched, etc, but how do you certify a field which changes so quickly ?

      Technology changes quickly, theory and general practice does not.

      By the time anybody has set up a reasonable professional board and exam for a particular skill, the skill would be redundant. Only the lowest common denominator skills (eg write a quicksort routine) could possibly be tested.

      Algorithm analysis could be tested, many people out there can't figure out the complexity of simple algorithms, nor do some know what big O means !!!! But certification could concentrate on general design principles and practices, and most notably testing.

      Professional qualifications have very little to do with protecting the public, and are much more designed to protect the profession. Professions which change slowly (eg medicine, civil engineering etc) can get away with it and justify themselves by pretending to protect the public [snip]

      Last time I checked , NP complete problems have not been solved ;) Our field changes slowly too, it's just the technology that keeps changing all the time. Don't get married to technology.

      find / -name \*.java -print|xargs rm

      Interesting sig, language wars were not part of my CS curriculm, I hope this doesn't imply yours was.

      --

      - sigs are for wimps.
  144. Impossible by joss · · Score: 1

    Not a bad article, balanced, researched, etc, but how do you certify a field which changes so quickly ? By the time anybody has set up a reasonable professional board and exam for a particular skill, the skill would be redundant. Only the lowest common denominator skills (eg write a quicksort routine) could possibly be tested.

    Professional qualifications have very little to do with protecting the public, and are much more designed to protect the profession. Professions which change slowly (eg medicine, civil engineering etc) can get away with it and justify themselves by pretending to protect the public while simply placing a nice bar to entry to maintain nice fat fees. Do you really think the American medical association wants to force you to get a prescription before you buy vitamins in order to "protect the consumer".

    In some ways it sounds wonderful though. Imagine being able to say to a manager - "no, we cannot release this software for another 6 months, your opinion is irrelevent since I am the certified computer professional here". However, its just a fantasy, it flat won't work for IT and if the government tried to legislate it they would do such a crap job that it would be worse than useless. You would be forced to learn redundant skills so less competent people than yourself could judge you according to their standards.

    --
    http://rareformnewmedia.com/
  145. Re:The way I see it.. by sql*kitten · · Score: 1

    *sigh*

    you aren't certifying a *language* you're certifying a *process*

    actual code is trivial if the system analysis and process is good - it's just data entry.

  146. Re:Lousy comparison by sql*kitten · · Score: 1

    ah, you poor naive child.

    people like you are why there's so much legacy code in the world, because back then people knew how to build systems, and now they just don't care.

    say well away from programming anything that isn't a toy. don't even think about air traffic control, the banking system, life support machines....

  147. Engineers are artists too, just like coders by ptomblin · · Score: 3
    I'm a former civil engineer (structural). Now I'm a coder. Most of the comments here are from people who don't have a clue about how engineers work. For starters:
    • Engineering often presents you with many different ways of solving a problem, and the solution you choose will be based on your own aesthetic sense and other unmeasurable things.
    • Engineering technology changes daily too, and engineers have to study constantly to keep up. That doesn't invalidate their certificates, or the need for certification.
    • Engineers are under just as much time and money pressure as programmers, maybe even more so. Your boss might suggest a change that will give you some sleepless nights in order to shave a few weeks off the schedule - but imagine when he has the power over hundreds of thousands of dollars of materials costs, and you have to fight for the difference between good and good-enough!
    • The only engineers who get certification are the ones whose projects have to work right the first time, or people will die. Like structural engineers. Electrical engineers are more like most programmers, in that they can test their stuff in the lab first. I suspect that very few programmers will require certification if certification happens.
    --
    The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
  148. Certification can be misleading by Jerky+McNaughty · · Score: 1

    Certification, a college degree, publications, ... they're all things people put on their resume, but they don't always mean much of anything. I went to an excellent school for my undergraduate degree and I came out knowing a lot. But there were plenty of other people who graduated with me that I wouldn't even consider hiring.

    Certification is the same way, plenty of people come out of a program knowing no more than when they went in.

    Education is important, but you've got to figure out in an interview who can really cut the code and who can't. I've found it's really quite easy to pick out the good from the bad with about twenty questions.

    College degrees, certification, etc. can help you initially take ten resumes and put them into categories (I wouldn't hire someone without at least a BSCS or equivalent experience for the current openings, for example), but beyond categorizing people you don't know, these "qualifications" are somewhat meaningless.

  149. Interesting double-meaning here... by jd · · Score: 1

    It might just be an Englishism, but do you REALLY want programmers going around, claiming they're certifiable? It's hard enough being a geek, as it is. :)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  150. Not a fair comparison by red_dragon · · Score: 1

    Unless the lives of many people depended on the programmer's job performance, there's no need for him/her to get the same level of certification as an engineer. In contrast, an engineer's job often results in products that affect our lives directly. Say, if that construction engineer wasn't certified when (s)he designed that bridge, would you feel safe when crossing said bridge? Now, if I were running some software on my computer and it crashed, I wouldn't lose much, except perhaps for some work. If it were the case of an aircraft's flight control system, though, there's a difference, and I would very much prefer that the software be written by someone who has been certified for that job.

    --
    In Soviet Russia, Jesus asks: "What Would You Do?"
    1. Re:Not a fair comparison by pica · · Score: 1

      Aaaah, but it IS a fair comparison! In the near future, with networked appliances, if some remote control program on your PC crashes, your oven may turn on but not light, and the natural gas detectors may malfunction... imagine your surprise when you walk into your quiet home smoking a (insert item) and cause an explosion that levels the surrounding block. Thats not supposed to happen! That wouldn't have happened if the programmer who wrote the remote control software had been licensed! Augh!

  151. Markets, Cerrification, & Licensing by Rene+S.+Hollan · · Score: 4

    If, in a free market, there is a demand for quality in software development, then surely organizations will arise that offer various certification programs.

    Netware and Microsoft have been doing this for years.

    So, certification would be inevitable: it's just a question of whether it matters to a particular customer.

    Licensing, on the other hand is a beast of a different colour. Licensing means that you can't work without a license. This has no place in a free market, and is usually advocated by those that have a vested interest in controlling the size of the market: unions, doctors, and lawyers do this, with the necessary government 'help'.

    The argument usually goes something like this: "With licensing, we can ensure the level of quality you're gonna get from someone in this profession". Of course, this is bogus, since all it guarantees is that a licensed programmer is, well, licensed. The enticement is that a potential employer or contractor does not have to evaluate skills for themselves. Who controls the licensing board, and what is in its best interest?

    As with all things that depend on government force for enforcement, such a scheme is not likely to work well: good programmers that can't afford to pay the licensing fees won't get licensed, and bad programmers can lobby to keep good ones unlicensed. The production of free software might even be outlawed (much as practicing medicine without a license is).

    With certification, the certifying board has to compete with other certifying boards and remove any possible question of inpropriety, lest it's reputation suffer.

    Traditionally, certification has come from Universities (originally for philosophers and medical doctors), trade schools and apprentice programs, and more recently, equipment manufacturers (the guy who works on my car is "certified" by the auto maker to know what he's doing).

    We have no need for licensing in this business.

    --
    In Liberty, Rene
    1. Re:Markets, Cerrification, & Licensing by jetson123 · · Score: 1
      I'm saying that if you get a completely free choice in doctors by eliminating licensing, that imposes a cost on everybody else, an information cost. That cost is no different than if you decide to, say, pollute the groundwater and other people have to install water filters because of your actions.

      These aren't black or white decisions. In most areas, government doesn't and shouldn't restrict choice. But in some areas, it makes sense for government to do so.

      In the case of licensing of doctors, it does to me, as it does in setting a single standard for household current, and a set of cellular phone standards (something the Europeans have and the US regrettably doesn't, which is why the cellular phone industry is in such a mess over here). As I was saying above, I don't believe programmers need to be licensed, however.

  152. Re:The way I see it.. by Ex-NT-User · · Score: 1

    You're right, the right thing to do is to test on those basic theories. But in coding there are many solutions to the same problem. And on top of that there are many more paths to said solution. The real question is how do you create a test that is broad enough so that it allows for these differences, and yet not broad enough to let any loony with some basic VB knowledge to pass. I also think you'll find it very difficult to create a test that's not biased to one particular language or application.

    I might be overlooking something obvious here, but the only things I've actually found to be universal in programming is logic, data structures and algorithm analysis. So what kind of test would we design? It can't be an "application" test where you have problems to solve because this kind of test would be heavily biased by the person judging them. The only thing I can think of is a knowledge test that is very specific on those basic concepts, but those are the same tests you already took in collage and obviously passed if you got your degree.


    Ex-Nt-User

  153. The way I see it.. by Ex-NT-User · · Score: 2


    Certification for programmers is a bit rediculeous. Is html code or data? What languages will the certification be in? Different certification for each language? What libraries? MFC? OWL? or ANSI? How about OS? What data structures? Will code formating be in it? Who will administer it?

    I can just see this mess now. If certification for coder will become mendatory.. I can just see the OSS movement taking off because of all the people who love to code but may not be able to afford the rediculeous cost of geting certefied.

    Ex-Nt-User


    1. Re:The way I see it.. by Augusto · · Score: 1

      Certification for programmers is a bit rediculeous. Is html code or data? What languages will the certification be in? Different certification for each language? What libraries? MFC? OWL? or ANSI? How about OS? What data structures? Will code formating be in it? Who will administer it?

      Once again, nobody is talking about certifying technologies ! We need to certify theory , practice, design techniques, testing , etc. When you went to school , what was the emphasis, specific languages or theory ?

      In my school, we couldn't get credit for taking classes like "C++" or "Java", our professors expected us to learn these things on our own. This is the right aproach, and it's what separates the people who will always succed in this field (technology independent) to those who will one day be obsolete (married to a certain platform, language, etc).


      --

      - sigs are for wimps.
  154. Bah. by tony@work · · Score: 1

    I have never taken a CS class in which I learned anything. The *only* good I've gotten out of those classes were the projects-- and not because I completed the projects, but because I took the projects and made them into something interesting.

    I had been programming for *years* before I ever took a CS class; I started programming (BASIC, Pascal, and 6502 assembly-- Sweet16, don't'cha know) on the Apple ][ in 6th grade. By the time I started college, I already knew C, and I'd written a few assembly-level TSRs for the IBM PC. The data structures classes, and the algorithms classes, and the methods classes were moronic; the only classes that had something to offer were the math classes.

    Most of the people clogging the CS classes were there because they knew that computers were the paying wave of the future. About 30% had never touched a computer before; about another 60% knew how to process words.

    A lot of great programmers get CS degrees; but they are not great programmers *because* of the CS degree. I learned more from my peers than I ever learned from a class; peers, and good, classic texts.

    There are a *lot* of bad programmers that are degreed. And the good ones tend to be good programmers to start with-- they got into CS because they love computers in the first place. So do not confuse cause and effect here. Just because you've noticed a good correlation between good programmers and CS degrees does not mean the CS degree caused the good programmer.

    -- Tony

  155. That's the point by tony@work · · Score: 1

    I think this is the point. "We don't want hobbyists writing our software!"

    By taking the worst-case scenerio, they can shoe-horn in every kind of software developer.

    Me, I'd like to see politicians certified. Makes more sense to me-- their decisions affect millions, and sometimes billions, of people.

  156. I *still* say, "Bah!" by tony@work · · Score: 1

    Just because someone has a CS degree does not mean that they can program worth a damn, nor does an English degree mean a person is worth their weight in sand as a writer. As was said in another post, and I misquote... "A CS degree teaches you the History of programming, so you don't make the same mistakes" (apologies to author, was a good post!) In order for that CS degree to be of help to you, you need to PAY ATTENTION AND LEARN WHAT THEY ARE TEACHING YOU. Figure out what professors are the ones "in the know". Do more than is required in class.

    I did do more than was required in class-- because it was the only way to learn anything. And I did pay attention-- I just didn't learn anything. (I did very well in those classes, grade-wise; I just didn't learn anything. Other students came to me for asssistance; I just didn't learn anything.)

    The best way to learn about software lifecycles is to get involved in a project. Yes, taking classes teaches you which mistakes to avoid, and that is helpful; and I did learn that there is more to programming than just stringing together lines of code.

    However.

    I've learned a hell of a lot more since I've started working on real projects, with real programmers. And everything taught in college is better learned apprenticing yourself to a project, like KDE or GNOME. And considering the number of worthless CS graduates out there (most of the CS graduates I've worked with, in fact) the degree means nothing.

    Now, I must give one caveat-- I did not go to a great CS school. My computer architecture class covered the war between CISC and RISC better than it covered actual architecture. I reckon if I'd gone to a decent school, my classes would not have been worthless.

    But my central assertion remains-- a good programmer can learn everything from experience and exposure to other programmers, including project and software management, software design, etc.

    Even the best programmer cannot learn in a vacuum. I'm not claiming that a totally-self-taught programmer is better than a CS grad. I'm just saying, a CS degree is no real indicator of capability.

    -Tony

  157. Licensing myths by substrate · · Score: 1

    Not all people working as engineers are licensed nor are they all engineers. For instance I'm working as an electrical engineer, have an electrical engineering degree but am not licensed as an engineer in the state I'm working. At this point in time I choose not to license myself because in my present circumstances there is no benefit for me, my credibility or the people who have hired me.

    Being a licensed engineer in general doesn't mean that you are tested on your engineering proficiency. You're tested on ethics, the law as it relates to contracts and your responsibilities as an engineer. Passing this exam and getting your license then entitles you to call yourself an engineer (your jurisdiction may vary, in Ontario Canada you're not an engineer unless you're licensed, I'm not sure about the jurisdiction where I am)

    Passing the exam also changes the playing field. If you make poor engineering choices or somebody insinuates you have done so then a lawsuit can be brought about. A lawsuit can be brought about even on something said in passing or as a favour. This is the reason doctors and lawyers don't dispense free advice. They can still be sued no matter what caveats they apply. The governing body who granted your license will be on the publics side, not yours.

    In some industries the above is important for your credibility: if I were designing biomedical electronics for instance; if I were a consultant etc. The same possibly goes for programmers as well. Most programmers don't write code that directly effects the public safety. Most programmers shouldn't be licensed. There is a pretty strong case that the programmer who designs the firmware that runs on the microcontroller that operates an insulin pump or EKG machine should be licensed.

    Requiring all people working as programmers or engineers would drive the costs of any programmed or engineered products through the roof. The insurance to protect you against lawsuits is phenomenally expensive (although many large companies have blanket insurance for their engineers)

  158. Chefs & CEO's are held responsible by sphealey · · Score: 1

    "CEOs of Companies? Yes.
    Chefs? Yes.
    ...
    They try to use the stigma of using non-licensed professional is foolish. Now, can you imagine any five-star restaurant having such an attitude? Don't eat at the Palm! They're chefs are unlicensed!"

    Most states in the US have a kitchen hygiene certification. In order to be the manager of a commercial kitchen (and I can't imagine any 5 star chef who wouldn't demand to be the kitchen manager), you must hold that certificate. Is it hard to get that certificate? No. Does it prove you can cook good food? No? Will the state close down your restaurant if you don't have one? In about 60 seconds. Will your competitors let the world know if you have been cited for running an "unhygenic kitchen"? You bet - I have seen it many times.

    Similiarly with CEOs. They must be bonded and carry D&O insurance, and they must be appointed by the Board of Directors or other owners. Does it prove they can run a company? Of course not. Does it show that someone has at least looked at whether they have some of the basics to do the job? Yes.

    I could go on about driver's licenses and similar hurdles proving minimal ability but not quality, but I think you get the point.

    sPh

  159. Another way to look at it... by sphealey · · Score: 1

    "Who would you rather fixed the brakes on your car, somebody with 3 years of classes or someone with ten years of fixing cars."

    Who would you rather have fixing the brakes on your car: a guy who just walked in off the street , with no experience, looking for his first job as a mechanic? Or the guy no with experience but three years in a nationally certified training program?

    The analogy is closer than one might think. Nationally certified mechanics (I forget the acronym at the moment), as well as those certified as dealer mechanics, are now spending 100 hours per year or more in class to try to keep up with technology changes. The generation of cars coming into the market today essentially has the equivalent of a small LAN built-in, so this isn't just brute force technology either. There is a major shortage of mechanics and salaries are rising...

    sPh

  160. Projects of that nature already covered by PE regs by sphealey · · Score: 3

    "The people who code for the radar systems in airports, for example, do you want these people to walk in with bare minimum of knowledge and write faulty code?"

    Software along the lines of an airport radar controller is going to be contracted out as part of a total system design (if the contracting authority has any competence at all). Hardware, software, backup systems, performance specs, acceptance criteria, etc. are all going to be part of a single project, and the ultimate documents for that project are going to be signed off by a registered Professional Engineer (PE).

    The PE can be held individually liable for his work, so he is going to need indemnification by his employer. His employer in turn will lay off that risk to an insurance company, and the insurance company will demand audits, proof of competence, demonstrated capability to carry out similar projects, etc. That's how it goes in the real world of Big Stuff.

    The PE (slash project management team) probably isn't going to be able to examine every line of code, or necessarily _any_ of the code him(them)self. But you can bet he will take steps to make sure that quality and capability are there.

    Even as a person on the PE track (which I am), I acknowledge that there is an element of market control / guild-ism in the process. However, before you squeeze the trigger on the flamethrower, please spend a few minutes in a good engineering library reading back issues of Scientific American from the 1870-1890 time period. Read carefully the accounts of steam boiler explosions and the death and destruction they caused for many years. Then if you have a few extra hours, scan through the "History of the ASME Boiler and Pressure Vessel Code". Those boiler explosions, and the effort that had to be undertaken to get them under control, are the direct ancestors of the PE process. And brutal, heavy-handed government regulation turned out to be the only way to bring the body count down.

    Hmmm, in terms of accepting responsibility for quality of work, does that sound like any industry we know today? I am personally not advocating that the PE regulations be extended to the software world, but after rebooting Windows 95 for the 5th time today I can see why some might.

    sPh

  161. 'tighter provisions about vendor responibility' by Nathaniel · · Score: 1
    "Future contracts are going to have much tighter provisions about vendor responsibility for unforeseen events"

    Is anyone else alarmed by this?

    'unforseen events' could be as bizarre as a cosmic ray causing a bit flip in a jump instruction, reversing the logic in part of a program. How can anyone be help responsible for that?

  162. Geek Republic by richieb · · Score: 1
    I'm telling you, it's time to found a new country somewhere, where we don't have to put up with this crap. There's a lot of room for an artificial island in the Pacific... I vote we go there.

    Does a new country need to have physical territory? Why not start a Geek Republic and we'll all be immigrants....

    ;-)

    ...richie

    --
    ...richie - It is a good day to code.
  163. Re:License != Certification by richieb · · Score: 2
    You don't see very many bridges designed by unlicensed engineers now, do you?

    Actually it is not the qualifications of the designer that are important but the quality of the design. I really doesn't matter who produced the design, as long as it satisfies the safety standards.

    For example, I can do electrical wiring in my house, but for it to be "legal" an electrical inspector has to sign it off.

    Another example is in aircraft design. Many people are designing and building their own airplanes (check out http://www.eaa.org) but before they can obtain an airworthiness certificate they need to show that the airplane was built according to the standard practices, that the design was verified to be airworthy etc.

    So what we need is a way to verify the quality of the code. The best way to do this today is code reviews. So open source is the way to go.

    ...richie

    --
    ...richie - It is a good day to code.
  164. Sounds like a programmer tax to me by Black+Art · · Score: 1

    This is not a new thing. Various taxing authorities have been trying to get into the wallets of programmers for a long time. They come up with various excuses like "public safety" or "reliability", but when it comes right down to it it all equates to MONEY.

    Government certification and licensing of software professionals is a *BAD* idea.

    First of all, do you standardize on one coding methodology or many? How do you keep "fad-ism" from creeping into the tests? What do you test for?

    Coding is not like building a bridge. Bridge building is pretty standardized. There is a small number of ways to build it so it does not fall down. Programming requires a much greater range of knowledge and problem solving capability. It requires that the programmer be able to understand the problem and convert it to something that functions depending on a number of specifications and design parameters. That is something that is difficult to test for.

    I also see this as the start of the effort to control programmers in some rather nasty ways. (Sorry if I have such a distrust of Government, but so far my distrust has been bourne out.)

    "When you have them by the paycheck, their hearts and minds will follow."

    Currently local, state and federal governments are on a jihad to control anything that threatens then or could possibly threaten them. Programmers are viewed from time to time as one of those threats. I would not want to see them have yet another tool to use in the war on creativity and free thought.

    I would hate to see programming become yet another overregulated profession with licensing fees and arbitrary tests and rules.

    --
    "Trademarks are the heraldry of the new feudalism."
  165. It's about engineering and morality. by Dr.+Evil · · Score: 1

    The article is simply bringing up the point that some software systems are mission critical. Software failure can be just as catostrophic as an engineering failure.

    On the other hand...

    "Many have called themselves software engineers," said John R. Speed, executive director of the Texas Board of Professional Engineers. "Wrong. They're the local music dropout who chooses to use that title."

    It is pretty rare that I lose respect for someone after only a sentence -- don't tell me that this could be quoted out of context.

    I suppose this guy could be referring to "uneducated" hacks. Even then, this is just a horrible thing to say about people who study the fine arts. Somebody should write a song about this guy :-)

    Regardless, I have always agreed that without proper acredation, programmers have no right to call themselves "engineers."

    It doesn't mean that everyone needs to be an engineer to write code. It just means that engineers will make gobs of money as project managers for software. Engineers will be soley responsible when hundreds of children are killed by a faulty instruction controlling a safety valve.

    They can have that job, I don't mind.

    1. Re:It's about engineering and morality. by SimJockey · · Score: 1

      faulty instruction controlling a safety valve. ???

      In my experience, safety valves are mechanical devices. Period. The thought of a DCS controlled safety valve sends chills down my spine. I've heard of using automatic (read computer controlled) systems being used to reduce safety valve loads, but even then the redundancy necessary is very high.

      Yes, mechanical safety valves can fail. But they are designed to "fail-safe". As someone who designs a fair number of relief systems, I would only rely on a software solution in this service if it could be proved correct mathematically.

      --
      Laugh while you can, monkey boy!
  166. How do you certify for this industry? by swingkid · · Score: 1

    The computer and information technology industry changes too rapidly to create any useful certification program (Texas suggests 12 years and a degree? How many programmers fit that requirement?). It's like trying to hit a moving target. This sounds more like sour grapes from the "real" engineers, who don't like the fact that we're getting the jobs, money, and attention with what they may see as less effort than them. The last thing the industry needs is another attempt at regulation. Drop the leash.

    1. Re:How do you certify for this industry? by ghjm · · Score: 1

      As for obsolete certification, why not use a language everybody should know or pick up easily like Pascal? It's obsolete, and it's a good learning language.

      Is this a troll? I could point to about a million and a half Delphi programmers who might not agree that Pascal is obsolete quite yet...although they might make a pretty good case that C *should* be.

      -Graham

  167. yes and no by hany · · Score: 2
    while i think i understand what's the meaning of question i think that such certification should be good. BUT it requires certification to be done correct way.

    i agree with AArthur's statements "Really, certifing programmers is a bad thing, certfing software is good.", "Reguluation is serious pain in the ass for programers, who are often free willed and libral.".

    some folks here compared programmers to some other branches (building trade, ...) but i see one big problem here: i do not know what's the official definition of pragrammer but some people say it's like art too. and we can't compare pure technical branches with art. so that's why i do not agree with strict programmer' certification.

    Big Red said it fine: let's certify software (i.e result of the programmer's work) ...
    ... and do not forget to teach little programmers basic principles of software not the latest technology gadgets.
    only after doing so we can receive more good/working/correct/stable/... software.

    --
    hany
  168. one example why yes by hany · · Score: 2
    if there was some certification, this (USS Yorktown dead in the water because of division by zero) wont happen! imagine what could happen in real battle. or in another appliance (hospital, nuclear plant, ...) when same systems used.

    but i say that we have to certify software, not people!

    --
    hany
  169. Oh please by cpt+kangarooski · · Score: 1

    This is nuts.
    If you're going to purchase software from someone (either for preexisting stuff or as a comissioned work) then it's your job to ensure that you feel comfortable with their work. If you don't like it, go somewhere else, or be willing to let them know about design changes you want.
    I work as a designer. If I screw something up, but the customer signed off on it (having not caught the error) then it's not my problem anymore. If someone is willing to accept a program, or whatever, then that's it. Otherwise test stuff out before you have to rely on it.

    --
    -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
    1. Re:Oh please by cpt+kangarooski · · Score: 1

      Exactly. Caveat emptor should be the motto of the software purchaser.
      And even better, this opens the door for a great number of business opportunities, rigorously testing software. Ahem, fair and accurate testing. Mindcraft has ruined their reputation, so let anyone interested in this market take note. Stay honest, and you'll be fine. Fudge your data and if you get caught you're screwed.

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
  170. Re:This won't be a popular view here... by Nygard · · Score: 1
    I am a consultant. Are you suggesting I leave my employer or the client? Regardless, the IT community in this city is surprisingly small, and reputations get around quickly.

    In the world today, that sort of departure does not get you a reputation for uncompromising quality. It would merely get you branded as difficult to work with--a prima donna.

    Besides, the answer to every unpleasantness in the workplace is not to switch jobs. Believe me. I have switched employers three times in as many years. It's one crapshoot after another. Some companies are great, some are miserable. Will overall conditions ever improve? I like the economic darwinism theory. Companies that treat their skilled workers badly soon have only unskilled workers and will therefore be less competitive. I like that idea. But I would also like a more active response. My professional existance is not a token sloshing about from one company to another, looking for a favorable ecological niche.

    I haven't found the answers yet, but I'm still looking for ways to improve the entire ecosystem. Darwinian evolution takes a long time, and I am impatient. Nature, red in tooth and claw, is not kind to the entities who are evolving.

    --
    "Genius may have its limitations, but stupidity is not thus handicapped." --Elbert Hubbard (1856-1915)
  171. This won't be a popular view here... by Nygard · · Score: 2
    Let me start by saying that I starting programming in my early teens. I took my first professional job when I was 16. I now work as a software architect for a consulting firm. I code at home, too. I'd do this even if I didn't get paid for it.

    Having established my credentials, let me say that I have long advocated a certification process for programmers. I support it not for the benefit of employers, but for my own protection.

    I have, in previous engagements, been asked to perform services that would not meet the ACM's code of ethics. From time to time, I have also needed to make project managers and sponsors aware of some unpleasant realities about their systems or proposed systems. Let me tell you, those conversations were not well received. There are still plenty of "shoot-the-messenger" organizations out there. While I felt that I was discharging my obligations as a professional, by making them aware of these potential disasters, the reaction was to ignore the situation. I was directed to continue working the planned course of action. When the inevitable train wreck occurred, the same perpetrators sought scapegoats.

    If we had an accrediting body, or if I had a license, I could have taken the much stronger position: "I will not continue on this path, or I will lose my license." Would the threat of losing your license to work in your chosen field motivate you? I think it would. If you think laywers are sleazy now, imagine what they would be like without the threat of disbarrment!

    I have also had the experience of working with teammates who were grossly underqualified. Unfortunately, the client did not have the capability to detect the BS artists before hiring. Thus, I would be stuck with teammates who provided a net negative to the project. If there were such a licensing program (or better still, tiered licenses: e.g., apprentice, journeyman, master) the client would have been better able to detect those who should not have been hired.

    Of course, any such licensing program is perilous in many ways: technical change, anarchist revolt, enforcement, and many others. There will also be failures of the system--unqualified individuals slipping by, irregularities in the review procedure-- the same as every other professional accreditation system. By and large, however, I think we will ultimately need to adopt such a system for our own protection.

    --
    "Genius may have its limitations, but stupidity is not thus handicapped." --Elbert Hubbard (1856-1915)
    1. Re:This won't be a popular view here... by tyen · · Score: 1

      Certification and licensing do not fix broken project management. When faced with broken management, as a professional you do what other professionals do: bring up the issue with management and get the management's decision, all in writing with a signature. Call it a "memorandum of understanding" or some other bogus suit-friendly name; if you are on something like Lotus Notes where messages are authenticated, a simple email exchange is sufficient. Keep your own copy in your personal project file at home. This applies to both situations you cited.

      When the shit hits the fan, if fingers start pointing at you, you have your ammo. They won't point at you though, because they'll remember the memo from months ago.

      The argument that we "need" certification or licensing "for our own good" is a crock. If clients want quality product, they will pay for the testing necessary to ensure it. The SEI has put out reams of data supporting what it costs to produce good software. Advocating certification or licensing as a substitute for good (but expensive) practice is just what to expect from clueless management that wants a cheap silver bullet and is not willing or able to put up with the realities of quality coding.

  172. A common misconception by Nygard · · Score: 2
    Many of these posters are laboring under the misapprehension that the current style of vendor certification would be extended to the profession as a whole. This is not necessarily accurate.

    True, technical certification is not long-lived. What we need to discuss, however, is certification of technique. You don't get certified as an OO developer or as a device-driver-writer, any more than an architect gets certified to use a cantilevered beam. You get certified as a professional who adheres to a code of ethics. You get certified as one who can judge risks, balance economic and technical concerns.

    The medical profession has a credo: "First, do no harm." Have we any such guiding principles?

    --
    "Genius may have its limitations, but stupidity is not thus handicapped." --Elbert Hubbard (1856-1915)
    1. Re:A common misconception by Ben+Hutchings · · Score: 0

      Doesn't the Hippocratic Oath also mention not carrying out abortions?

  173. Are SW Managers going to be certified too? by Pablonius · · Score: 1

    My experience teaches me that most of the problem isn't at the developer level, but at the manager level. Sure there are some marginal to incompetent programmers out there, but it seems that the bigger problem is management. In fact I've heard from many developers who've been in the industry of a long time that warnings were made in the 70's and 80's about the Y2K issue and management ignored the developers request to avoid the problem. And who is management usually going to blame when projects fail? Rarely will it be themselves...

  174. Re:What exactly is the point by stevew · · Score: 1

    The bridge metaphor does apply! Consider
    folks writting code that has life-or-death
    implications. Things that come to mind are
    pace-makers, nuclear reaction control systems,
    etc.

    It could also be argued that the "guild"
    already exists - it's called ACM.

    --
    Have you compiled your kernel today??
  175. Re:Not quite by stevew · · Score: 3

    Uhm Not quite!

    I'm a practicing electronic engineer in the
    computer industry. I don't have a PE, and
    don't need one to pursue my career.

    The poster states that passing a PE examine
    GUARANTEES that the design will be fail safe.
    This is demonstrably false. I can show you
    any number of structural designs that have
    failed, yet were designed by PE's. They didn't
    fail safe either, people died.

    Passing the PE examine doesn't ensure that I
    am competent to do design of some nature. It
    shows that I am good at taking tests on
    material I only know fresh out of college.

    For that matter, the PE license (and it's a
    license in my state...this varies from
    state to state) was only established as
    a "gate-keeper" mechanism to try to ensure
    some minimum level of competency. It doesn't
    really achieve that either. My basic
    complaint with the system is that they don't
    test engineers on the fields they are going
    to practice in... why does a computer design
    engineer need to have a structural engineers'
    understanding of statics or dynamics?

    The bottom line is that this system operates
    mostly because it already is an established
    bureaucracy. I see no reason to extend this
    system to programmers as well!

    To take a different tack - a professor of
    mine once defined those in the "professions"
    as people who have "dangerous knowledge." I
    think this is a good operating definition.
    Consider - would you want me to use a knife
    on you to take your appendix out - I'd be
    dangerous - I don't have the requisite
    training or experience to accomplish the
    task. So professionals are keepers of
    dangerous knowledge.

    To extend this definition to the programmers'
    world - are there programs that require
    "dangerous knowledge." Well - there ARE
    programs operating in environments that
    are "life critical." There could be a
    case made to extend "professional licensing"
    to just these areas. Writting operating
    systems to handle my game playing requirements
    don't fit the requirement! Writting real-time
    OS's to control a nuclear reaction might!

    Even then, I don't think this is needed
    or desirable because I don't think you can
    test for "minimum competency." I don't think
    this screening mechanism works.

    --
    Have you compiled your kernel today??
  176. It's yet another cash cow thing. by Chas · · Score: 1

    That's all programmer certification would be in this case.

    Set up a host of certifications from everything from A to Z.

    Then charge a couple hundred bucks for some silly little test.

    Then, 2-3 years down the road, charge for a renewal/retest.

    The whole problem is, certification doesn't improve the quality of the code AT ALL.

    Currently I'm a certified Nursing Aide, as well as a Certified Phlebotomist. I'm better than most, but not as good as some. You have no IDEA what kind of dregs can actually qualify for certification!

    All the certification would prove is that you're good at memorizing facts and taking tests.


    Chas - The one, the only.
    THANK GOD!!!

    --


    Chas - The one, the only.
    THANK GOD!!!
  177. How do you test coders? by WebDosa · · Score: 1

    I don't think the best programmers are necessarily the best test takers. How do I know this? I'm good at taking tests but I suck at programming...

    --
    Later,

    WebDosa

  178. silly by Julian+Morrison · · Score: 1

    This is based on the programmer-as-engineer idea which is known to be badly broken. Change the metaphor to programmer-as-artisan, and ask yourself how sane an idea it would be to prevent woodcarvers or potters from working unless they are licensed, stamped, certified and barcoded.

    1. Re:silly by porkchop_d_clown · · Score: 1

      Programmer as woodcarver? No one dies because of a lousy wood-carving. People have died because of buggy software. Programmer as potter? Maybe, but guess what? The USA has a ton of laws restricting the sale of ceramics and defining what constitutes good pottery. You know why? To prevent people from being sick or dying because they ate or drank from a lousy piece of crockery.

      I think people in this discussion need to read comp.risks more.


      --
  179. Agreed by David+Ishee · · Score: 1

    The software industry has gotten away with not being accountable for bugs other than the threat of someone not buying it anymore. I think it is a byproduct of the immaturity of the industry and probably won't last for long for important applications.

    --
    Your password has expired, please login to change it.
  180. Re:Yes, for PUBLIC projects concerning HUMAN SAFET by AArthur · · Score: 2

    > This is akin to verifying the correctness of code > (mathematically proving that it cannot fail), an > incredably extensive and expensive process. But
    > sometimes it needs to be done. An exam such as
    > the Professional Engineer exam is an attempt at > making sure the people who work on these projects > that affect the public know when and how to do
    > this.

    If you read the license to 99% of software out thier, including free and commerical software, their is no-warrenties and guarrenttes. Most software may not be allowed to be used in Nuclear plants, and other mission critical bussiness.

    Most software is licensed to you as is, and containts no warrenty what so ever.

    Registration for mission critcal software is already in place, it requires special licenses between you and the company, a special certification program for any software to be certified.

    Really, certifing programmers is a bad thing, certfing software is good.

    Reguluation is serious pain in the ass for programers, who are often free willed and libral.

    IMHO, Open Source is the only way to go to avoid large technical bugs in the future (peer presure works!)

    Thanks,

    AArthur

  181. Re:Death to the GPL by recursive · · Score: 1

    I spy a troll!

  182. What "license" means. by glens · · Score: 1

    License is (simplified somewhat) "permission granted to do something which would otherwise be illegal".

    You cannot be required to obtain a license for any activity which has not been declared illegal.

    Any other issues such as liability are secondary, or more.

    I'm no lawyer, but I'd bet one would tell you the same.

  183. Engineering Certification by locust · · Score: 1
    There's a big difference between coders and engineers. Anyone can code. An engineer must by definition be certified (or at least thats the way it works up here in Canada). To be allowed to use the title of engineer you must have come out of an accredited (university) engineering program and have passed an ethics exam, or have passed comprehensive tests of your knowledge and have passed the ethics exam. In any case your are required to have several years of experience 'apprenticed' to a certified engineer. You are then legally respnsible for all that you build and rubber stamp.

    You can be prosecuted for using the title without the proper certification.

    All this said, this still doesn't prevent crappy design. Poor coding habits, etc. What is need for that is a decent software engineering process, design and code reviews. People must learn to employ good design habits even in the absence of such a process. The IEEE's tutorial on software engineering management is a good place to start if you want to learn.

  184. Re:NYTimes misses point by Anil · · Score: 1

    I've got to agree with you. As I read the article, I kept feeling like the reporters were asking the wrong people the wrong questions.

    The article states that some large percentage of corportate software projects come in over budget or after thier deadline. Did this survey research the reasons? From my 3 years of professional experience, the majority of the times that I see something come in late and/or over budget is because the project was given unrealistic deadlines by the management team. Or, the project becomes the victim of feature-creeped or redesign due to marketing concers or a rushed design.

    This is very true of recent years, in which the internet has exploded onto the corporate scene and know-little marketers and managers are scrambling to do something. They quickly come up with some rough requirements, get an estimate, then decide to change everything 1/2 through the projects. The programmer, designer, and architect often have to change major segments of functionality because of legal or marketing concerns.

    I don't think certifying managers is the answer either, though. I'm just anti-certification on a whole slew of points, which I guess I won't rant about right now.

  185. Bull sh*t --> not coders, not even one! by pqbon · · Score: 1

    After reading the article all I could do was laugh!

    Not one of the sources was a programmer. They were all Dr. of MIS, or Analyst for XYZ. No actual programers were interviewed as to weather they thought it was a good idea.

    Personally I think it sucks. Requiring coders to be licensed would be like requiring authors to be licensed before they could write a book or artcle. Lets see those author/analysts deal with that!

  186. Re:Lemme tell you about the iron ring... by pqbon · · Score: 1

    Thats fine but if I'm not mistaken that is for civil engineers only. I'm sure the Iron ring doesn't go to chem engineers or bio engineers or computer/electrical engineers.

  187. More to think on... by pqbon · · Score: 2

    What about Hardware? Should EEs and CEs need certification? A large part of the y2k bug is hardware with not enough bits for the date. As a CE (computer engineer) I find this whole Idea a litlle disturbing. Would I have to pass both a hardware and a software test? Many people bounce from lowlevel software to hardware and back again. Do all of those people need two licences?

    Auto engineers arn't required to have a licence. Neither are engineers who design medical equiptment -- however the final products from both fields must pass certain federal standards. Either product could have been designed by the mythical infinate monkey room or some gifted savant.

    Would webdesigners be required to be certified? How about sys-admins? They can be responsable for very inportant data. For example the sysadmins at NSI Inc. or IRS or an Army stratigic planning system. Should they be licensed to setup a system with no holes and disabling al bugs?

    I think licensing programmers 1) opens up a can of worms we don't want open (who else do we require to be licensed). 2) would eliminate free software and savant programers.

  188. "Licensing": anti-competitive by Dictator+For+Life · · Score: 1
    I think you're right. Licensing does nothing but reduce competition for somebody. Who needs licensed barbers, for pete's sake? Answer: the barbers who don't want to be undersold by Ma or Pa putting out a shingle in their spare time, who may not do as good a job of cutting hair but who do a good enough job for some people.

    That same principle holds true in any field: Law, Medicine (who needs to see a doctor and pay doctor's rates when all they need is a little Bactine?), and programming.

    You get what you pay for. It's called capitalism. Bad programmers won't be in business for long as they lose customers/employment. It's that simple. We don't need licensing in any industry.

    --

    DFL

    Never send a human to do a machine's job.

  189. The only ones who benefit... by Dictator+For+Life · · Score: 1
    ...are the programmers who could be certified. No one else does. Thank you for making that wonderfully clear.

    --

    DFL

    Never send a human to do a machine's job.

  190. Re:most customers don't want high-quality software by Dictator+For+Life · · Score: 1
    This is a very good point!

    Certification rips away from these companies the right to hire whomever they choose.

    This same principle applies in all sorts of "licensed" fields, however:

    • Medicine: why can't I choose to see just a nurse at a reduced rate if I don't want or need the expertise of an M.D.?
    • Law: why are people in some states forbidden from using Quicken Family Lawyer or the NoLo Press books?
    • Haircutting: why can't I see an unlicensed barber and get a mediocre haircut if that's what I want (heck, I get mediocre haircuts NOW from "licensed cosmetologists"!!!)
    • Dentistry: Why can't hygienists open up shop for themselves -- at reduced rates?

    Of course, I could go on. But this is precisely the problem. And when we look at it this way we see that somebody's interests are being protected, and it's not mine.

    --

    DFL

    Never send a human to do a machine's job.

  191. certification exists just fine by scrytch · · Score: 1

    Ever heard of ISO? There's this certification called ISO 9000. There are contracts you can't get unless you're ISO 9000 certified -- a de facto license. There are ISO programming language standards, meaning they could easily certify compliance to the standard. Process on the other hand, no one seems to know what's best. Probably the most bulletproof process is the one they follow for the space shuttle guidance software, where every minute change has to go through rigorous specification and proof. But any consumer software company that followed that process would never see their products get to market.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  192. Managers, not programmers, need certifying by ajm · · Score: 2

    The y2k problem was caused mainly by shorted sighted management who wouldn't listen when told of problems to come. Certifying the programmers won't guarantee a better product when management still sets deadlines the programmers know can't be met without skimping on something (and that's generally testing)

  193. Who would be responsible? by Irishman · · Score: 2

    If programmers were licensed and legally responsible for the code they create, what about large scale projects? When you have several people working on an application, there is no way to say that when the pieces come together, side effects will not occur. As well, a program written for one hardware platform may have hardware specific quirks when moved to another platform (this includes moving to the next version of a chip, motherboard, etc)

    I remember from my university days in my computer ethics class a discussion about this. The non-CS people in the course thought we should be licensed, but as they were shown the real uncertainty of programming and ensuring a program does what you want, they tended to back off.

    Who would stake their career on a piece of software working when you cannot guarentee all other aspects of the application working as promised. Besides, can you see a company like MS getting rid of the licenses stating 'We take no responsibility for the product you are using, but we retain all rights over it.'

  194. Similar things already exist... by EnglishTim · · Score: 1

    For instance, in the UK you can join the British Computer Society (BCS) which requires various levels of competence for various levels of membership, and all members have to agreee to a 'Code of Conduct' and a 'Code of Practice'...

  195. some should by FWMiller · · Score: 1

    There are two points I'd like to make.

    First, if certification is valuable at all, it is almost certainly not equally valuable for all types of programming. I would really like to see real-time or embedded programming certification, in the same vein as PE's are certified for more traditional engineering. However, I can't see someone writing VB code for a database application really needing to be certified in any real sense.

    Second, there are other mechanisms that can serve the same purpose. At my current employer, quality in employees is a top priority. We would rather not fill a position that fill it with a "body". We have a strict, rigorous interview process that weeds out many not having the required skills for the job we perform. Certification might make this a little easier, but my point is, if an employer wants to hire someone, its up to them what standards they want to apply.

    Later,
    FM

    --
    Frank W. Miller
  196. Certification? How about open source? ;) by blocked · · Score: 1

    Certification is probably not a great idea, especially as regards open source. Why should someone have to pay money to be certified to write free software? That's what it comes down to.

    If quality control is what you're after, open, peer-reviewed source does the job a lot more efficiently.

  197. Re:Death to the GPL by blocked · · Score: 1

    Assistant Madman wrote:
    Bollocks. I've already spent many thousands of dollars attaining my degree, and have no problem writing free software. It's the prinicipal and spirit of the GPL that matters, in the same vein as volunteer work to benefit the community. Otherwise you may as well work for Microslut.
    You're missing the point I think. People will spend thousands of dollars to attain a degree so that they can make a nice high return on investment. Having done so, will they write free software? Quite possibly. But people who can't afford to spend the money or don't especially want to make the money coding are an extremely valuable source of free software coding talent, and with mandatory certification we can simply write them off.
  198. Certify the code, not the coders! by DrDebug · · Score: 1

    What, do we have to register *EVERYONE* nowadays?
    Why not register authors, and columnists, and
    poets? Is there no freedom anymore?

    Get the programmers together and REVIEW THEIR
    CODE on a weekly basis. You will know who is
    the best programmer. And you will know who is
    'certifiable'.

  199. Re:Programmers without computer science degrees by deeny · · Score: 1

    A degree only shows one thing: commitment. That's
    not a bad thing to show, but saying it shows
    anything else is ludicrous. They learned (maybe)
    just enough to zip through.

    I will agree that the best programmers I've known
    have had degrees; almost NONE of them had degrees
    in Computer Science. Often it was Philosophy or
    Math or Creative Writing.

    Or, as my dad said, get a technical degree in a Master's program; get a liberal arts BA.

    _Deirdre

  200. Re:Certify s/w architects, not programmers by Tim+Randolph · · Score: 2

    The distinction you make between SW architects and coders is valid, but the presumption that the field is mature enough that we can codify and teach good SW engineering is not. Sure there are a lot of best practices that we all agree should be followed, but are those practices highly conguent with the conventional wisdom of say 1989? Linus was flamed for going with a monolithic kernel, because exactly the institutional types who would oversee licensing knew that only micro kernels made any sense.

    Even on more abstract points the pace of change in design methodology has been much faster than any licensing board could keep up with. Actually this is why I like the current cert exams. Nobody expects that a particular ceritification will be worth diddly in five years. They really just work to keep you moving with the field.

  201. NYTimes misses point by Tim+Randolph · · Score: 4

    As a big establishment institution it is not surprising that the Times prefers to talk to officials and not people who do the work. In my experience programmers are much more quality conscious than either management or customers, who for their own good reasons are cost conscious. To certify programmers without having a "building code" to enforce higher standards would not alter the current situation, but it would remove a a lot of talent from the field. Think about it: mediocre programmers with credentials can find jobs. Lacking credentials, you won't be able to find work without some obvious talent.

  202. A Degree is a certification by Trith · · Score: 1

    I do not need anything further.

    I'm sick of all this cert stuff anyway.

    If you can do it; do it. If not, buy a book, read it, then code until you get decent at it.

    Let your skills speak for themselves.

    Romans 10:9-10

  203. Well said by Trith · · Score: 1

    I had 2 semesters of data structures. I had a semester of software engineering and programing language theory. I thought language theory would be a joke but after you can see how they are implemented it really helps in picking the right tool for the right job.

    As the comment above yours that delt with college making good programmers worse, that is completely not true. I went into college programming with GW basic and using gotos in the most reckless code you'll ever see. Looking back, I don't see how I understood it. There wasn't even a single comment.

    My first semester of college got me away from bad habits such as the before mentioned GOTO, GLOBAL variables, lack of comments, etc

    Also, we started with C++ so only our first semester was procedural programming. After that, we went strait into structs(not OO but needed for intro), pointers, classes, encapsulation, polymorphism, overriding inherited functions, overloading opperators, templates, linked lists, binary trees, AVL trees, Red Black Trees, 2-3 trees, B trees, heaps, stacks, queues, circular linked lists, doubley linked lists, recursion,
    big O computations.

    That was just data structures, we then hit software engineering where we went through 3 different paradigms for development. It's amazing how many times you want to change you design. I'm so glad I don't rush in and start writting code the second I want to make something. I used to do that and would spend hours re-writting it after my revelation in the middle of the night.

    Sure, I learn a lot from reading books and practice makes perfect of course....
    But I AGREE totally. I would not trade my B.S.
    in Computer Science for anything. Plus, college was just plain fun. The experience was so well worth it.


    Romans 10:9-10

  204. Certification: What it really means. by afniv · · Score: 1

    I haven't read the article, but I think there is one fine point that needs clarification. IMNAL, but I think a "certified" engineer who passes applicable tests shows competence in engineering and is aware of building codes and other regulations.

    As far as programming goes, what formal codes or regulations are there? I don't think it is regulated. I don't see how it can be regulated. Ideas?
    ~afniv
    "Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"

    --
    ~afniv
    "Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
    Richard von Weizs
  205. That and the entire shareware industry by TrentC · · Score: 1

    What about all of the people out there that bash something cool out for Windows and the Mac OS?

    I tell ya, about 80% of the software I use on my Mac would probably go out the door.

    Of course, open-source advocates might say the shareware industry is irrelevant under the open-source scheme. But the fact is, shareware scratches a lot of itches for those closed-source OSes (the menubar clock that finally made it into the MacOS started life as a shareware project...).

    Jay (=

  206. "Who Can We Sue..." by rnturn · · Score: 1

    This proposal came up a few years ago when the Y2K problem started getting media attention.

    Certification is great if:

    • Employers don't mind paying a lot more programming talent. Certification isn't a one-shot deal. It would require periodic (annual?) renewal and keeping current in a field such as IT would require (IMHO) a lot more class time than, say, your average doctor or CPA requires to keep certified. And those classes aren't free.
    • Consumers don't mind paying a lot more for their software. Again, certification (and keeping current) costs and those costs are going to be passed on to the end-user.

    I wonder: Do the nuts that keep bringing this up have the public's best interest at heart or just the legal community that will end up making the most money out of it?

    I pay for a driver's license every so often and I can accept that since someone needs to keep track of who's licensed, etc. But... I have to buy license plates for my car each year. If I don't, I lose my license. Do those license plates make me a safer or more responsible driver?

    A person goes to college for four years (or two years, hell, does it take four years to learn to use VB :-) ) and spends a ton of money on earning their degree. Let's assume that the University didn't let this person slip by without learning something. Are they going to be a better programmer because the State administers some test and, more importantly (in the State's view), collects their annual fee?

    We don't, at least in the state where I live, have recertification of teachers after they earn their degree. In my mind, an incompentant teacher or one that's let their skills slip have the potential to do more damage than a programmer that hasn't kept up with new technologies. The programmer will eventually get fired, the teacher almost has to murder someone to get fired.

    This is about money. Not creating better software.

    --
    CUR ALLOC 20195.....5804M
  207. Re:Who makes the test by Tool-Man · · Score: 1

    Agreed.

    Unfortunately, it became trendy for companies to start calling all their programmers at a certain level "Software Engineers" even if they had no formal training in Software Engineering.

    Anyone should be allowed to code. But only someone with the training should let themselves be called a Software Engineer.

  208. Degree != Certification != Ability by HappyHead · · Score: 2

    I certainly wouldn't want programmers without degrees working on an important project.

    Bah. A degree is a piece of paper that says 'this person shelled out a bunch of cash and occasionally sat through a class'. Absolutely nothing more. Several of the people I went to University with, (who got their degrees even,) could not program their way out of a wet paper bag that was being held open for them. They've already gone off and been given major programming jobs by people with exactly the attitude you've got, and as a result, one company went bankrupt, and another wound up losing a lot of money for the year, instead of the large profit they would have had if their programs had been done by someone with ability instead of a piece of paper. Also, the absolute best programmer I know of got pissed off with the University (both the politics involved, and the sheer volume of idiots they were churning out) and dropped out to get a job - he was doing quite well the last time I heard from him, and so were the people who hired him, without the piece of paper. What's more, his programming ability did not get improved by going to classes in University in the least. He spent the whole time bored out of his skull, playing tick-tack-toe with the rest of us who already knew the material for the day.

    The ability to program isn't just suddenly aquired by sitting around near other people who have it. You've got to work at it, and actually think about what you're doing, always. Some people just can't do that, and they'll never be good programmers. One of my co-workers is a great example of this, he never bothers to check for errors along the way, he won't think about different ways of solving problems - there's only one way, and mentioning anything else gets him angry. Fortunately, I do almost all of the programming in our company. (And while I don't consider HTML to be programming, he has exactly the same problems with it as he has with C/Java/Javascript/VB/anything... and I frequently have to fix his web pages when they develop little quirks from sloppy construction.)

    1. Re:Degree != Certification != Ability by porkchop_d_clown · · Score: 1
      Just because I didn't finish college doesn't mean I didn't work hard to gain the skills I have.

      No. But it does mean you're going to have a very hard time proving to HR people that you have any skills at all.


      --
    2. Re:Degree != Certification != Ability by porkchop_d_clown · · Score: 1

      And how did your resume get past the HR people that did the pre-screen?
      --

  209. Re:Need for "Lemon Law" -- case in point! by FreeUser · · Score: 1

    A Code Of Ethics(tm) or Professional Certifications requirements do not address the issue you raised. Syncronys Softcorp engaged in fraud, and hid behind the absurd disclaimers common in commercial software licenses to get away with it. Asuming a Code Of Ethics(tm) or Professional Certification requirement would improve actual coding (I suspect it would not, it would simply hamper such Open Source projects as Linux, since much of the talent -- students -- would suddenly be excluded from taking part BY LAW), all you would have would be a better written program which displayed misleading dials.

    --
    The Future of Human Evolution: Autonomy
  210. Re:A Degree is NOT a certification by symbolic · · Score: 1

    A Computer Science degree isn't supposed to teach you to program - that is an implementation detail. It concentrates on high-level things like design, which is what the article suggests could be up for certification. They cite Y2K as a design failure.

    This is why this article is so PATENTLY absurd. Do you honestly believe that no one (especially later on) questioned the wisdom of using a two-digit year in a date? When the practice first started, wasn't the two-digit year an attempt to address several issues, two of the most salient being cost and storage? At the time, it was a GREAT compromise.

    Here's one question I have...how many people who are members of the ACM are or were involved in the practice of using two-digit years in the representation of a date? And, how actively did the ACM, SINCE this practice began, actively campaign against it?

    The point is this, and it's not one that hasn't been made already: Systems designers, in looking at all the issues at the time, decided that a two-digit year would be a good compromise based on the availability of scarce resources. This was NOT a display of ineptitude - it was a collective decision, made and accepted by an INDUSTRY. The failure isn't in the decision itself, it's in the blatant refusal of tight-fisted CEO's and managers, more concerned about short-term profitability, to recognize the problem and make the necessary changes over time. Maybe it's the CEOs and managers that ought to be certified!

  211. Analogy to Engineers by hwestiii · · Score: 1

    The analogy to engineers isn't really appropriate. You don't really need a license to work on a project, but you frequently need a license to certify or sign off on a project. I worked in civil engineering for 10 years and while a large number of the engineers that I worked with were professionally certified, a substantial number were not. The ones who were not were generally new to the job market since it takes about five years work experience to even qualify for a P.E. certification.

    Also, a substantial amount of work in my former field is done by people without any engineering degree at all, although that does not mean they have no engineering experience.

    The cost of using only P.E.s on projects would probably be prohibitive in today's environment and would probably severley tax the available supply. The likely response would be to lower the qualification requirements to increase the supply, thus diluting the pool substantially. Sounds like what is happening in IT now to some degree.

    A better analogy would be to say that project managers should be certified.

  212. Sounds good! by Athos · · Score: 1

    I know many programmers that are certified.





    Or is that certifiable? :)

    --

    --
    The Internet is the Suppository of All Knowledge. You get it in the end.

  213. Good points, please moderate up ++ by Augusto · · Score: 1

    Seems modorators are mainly against certification, please be impartial and moderate these type of intelligent responses/posts too !

    --

    - sigs are for wimps.
  214. Certifiying software "practices" not technology. by Augusto · · Score: 2

    I see a lot of posts about MS Certification being useless, and some saying certification would expire in 5 years or so. This misses the point. When I went to school for my CS degree, most of the courses went beyond specific technology (computer languages, OS, APIs) and concentrated on a lot of theory.

    Theory will not change that much (if ever). NP complete problems, finate state automata, algorithm theory, compiler theory, discrete math, general testing and engineering principles, etc. Some of this stuff could be certifiable.

    But we need some method of certification just like other professional organizations do, specially for code that affects human life (radiation machines, airtraffic control, military). The certification could be based on the theory and practices of our field, not current technology. This of course would be very difficult to do (such a test), but it's worth a try if we want to advance the field.

    BTW ...A lot of people out there are just coders, they live in their little OS or favorite computer language and hang on to it for most of their careers, others are more rounded and understand the principles no matter what the latest technology fad is currently.

    -Flame on ! Johnny Storm, Fanstatic 4.

    --

    - sigs are for wimps.
  215. Bull by FallLine · · Score: 1


    The same can be said for engineering, medicine, law, etc. Only to a greater extent. You can much more easily review a compiler, and the code, than you could the works of other professionals who don't live in a digital world. If an engineer builds a brige and it falls, they might try to argue that it was poor construction, faulty materials, bad maintence, etc. However, even there you have blueprints. If there is a design flaw, it most likely could be spotted by a team of professionals. This is even more true in software. You have the source code, and the binary. These are static things that do not change, and it is far easier to isolate the outside variables.

    On another note, the FDA does require certification for software/hardware for medtech devices. These controls and reviews are very stringent. I think this is mostly a good thing.

    1. Re:Bull by VirtualAdept · · Score: 1

      Actually, its not bull at all. In all the other engineering fields you can take a design and, through the correct application of mathematics, prove that it is correct. In a vast majority of cases, thats simply not possible in computer science.

  216. The same can be done with code. by FallLine · · Score: 1

    If one is to say, the programmer is only responsible for his code, not for the compiler - the machine - administration, it is easily enforcible. How long and how many minds did it take to isolate what caused the Challenger to blow up? A bug in the coding could have been tested and run through its paces in a matter of days. In software you are dealing with matters of definition. A given function or routine is supposed to do exactly so. The coder either applies it wrong, or they apply it right. While it is true there may be other factors which may cause a break down that may have been preventible if the programmer had been wary, lets say a bug in the compiler, or in the machine itself. Engineering exists beyond just that of the text book. It simply is not possible to isolate it just to mathematics. Humans created software and compilers, it follows a well defined set of principles. Engineering follows the laws of nature, which we humans are still trying to grapple with to this day.

  217. Re:A Degree is NOT a certification by Neuroprophet · · Score: 1

    I don't know what college you people went to! I went to SUNY Stony Brook, and if you are not at least a decent coder you never would have made it through their program. The first year of CS is made up of classes that teach problem solving and basic programming skills. They also teach you data structures and how to implement them properly . From there you go on to Analysis of Algorithms which is a whole class on optimizing. There is Operating Systems, in which you write an OS; Compiler Design, where you write a compiler; etc. Other classes teach you low level things, like assembler and what exactly goes on inside a CPU when it executes instructions. In fact, the only classes I had that dealt heavily with design issues was a two semester software engineering class (CSE 308 and 309). In that class you went through the whole process of writing specs, getting approval, budgeting, time allocation, etc.

    My point is that it all depends on the school. A student who couldn't remove white space from a file wouldn't even have been excepted to the comp sci. program (you have to get acceptable grades CSE 113,114,213,214,and 220 before they will even let you into the program) at Stony Brook. People who aren't at least decent coders would never get through those classes.

  218. Programmers without computer science degrees by mbowler · · Score: 2
    ...but I certainly wouldn't want programmers without degrees working on an important project. ... but there are a lot of things you can only get exposure to by being in a class.

    My personal experience is that if you split programmers into three categories of compentance:

    1. The best
    2. Average
    3. Mediocre to bad
    that you will find that #1 is dominated by self taught programmers who have a degree or diploma in something other than computer science, #2 is dominated by programmers with computer science degrees and #3 is a mixture.

    It's important to note that all the really good programmers that I know have a degree or diploma in SOMETHING although that something is rarely computer science. Almost all of the really good ones have taught themselves programming.

    1. Re:Programmers without computer science degrees by MrDeviant · · Score: 1

      One factor that needs to be controlled when
      discussing the value of degrees is IQ!
      I'd rather hire a MIT grad than some State U
      grad not because the wonderful course work
      but because he is statistically likely to have
      higher IQ. However, I'd take the State U grad
      (or high school dropout) if I knew his IQ was
      higher.

  219. Y2K is a failure of requirements, not programming by jetson123 · · Score: 1
    Professional, commercial software development is based on requirements these days. If a large commercial software package isn't Y2K compliant, then it is most likely because "must continue to work in the 21st century" wasn't part of the requirements and hence programmers were free to do what they wanted.

    While a good team might catch that issue, bring it to the attention of management, and do something about it, licensing isn't going to create good teams or good channels of communication.

    But not even management is "responsible", in my opinion. The sources of Y2K are structural. Software development is usually given less money and time than it would actually require for delivering high quality end products. And management, faced with the decision of paying for redoing a payroll system that still seems to be working OK vs., say, investing in a glitzy new advertising campaign, are nearly forced to do the latter.

    Like a lot of infrastructure these days, software is being used far beyond its anticipated lifetime. That's only going to change if the market starts permitting companies to look towards their long term success again, and if employees at those companies have long term job stability (from the CEO on downwards).

  220. Re:Markets, Cerrification, & Licensing by jetson123 · · Score: 3
    Claims that in a free market, licensing doesn't have any place are ignoring basic economic facts about the cost of information. In a market without mandatory licensing, there are additional costs to buyers of services to find a seller that meets their requirements. There is no a priori reason that in a free market we should decide to impose those costs on buyers rather than sellers, just like there is no reason to let companies pollute with impunity in a free market.

    In the case of doctors or lawyers, the buyer doesn't even have the skills to make that evaluation themselves. It makes a lot of sense to license doctors or lawyers to ensure minimal competency. The cost of information in that case could be life or liberty. In other cases, society may determine that the costs of licensing are small compared to the costs of forcing everybody to evaluate professionals for themselves.

    I happen to agree that for programming, we do not need licensing. But the reason is not that licensing in general is a bad idea, but that the details of the market for programming services are different. Unlike a sick person trying to find a good doctor, a manager of a software development team has both the skills and the power to evaluate candidates for programming positions.

  221. Who makes the test by jabber · · Score: 1

    In the engineering field - whence the argument'idea arises, the ASME (I think) is the controlling authority. It is a professional society, not a corp or gov affiliate.

    Sort of like the IEEE or ACM in our field. So, a body of these, and other CS entities, would be a good choice to develop the certification criteria.
    Also, the Software Engineering Institure as CMU would be a worthy representative, as would the CSAB which accredits most CS curricula out there and so could enforce that correct practices are taught from the onset.

    --

    -- What you do today will cost you a day of your life.
    1. Re:Who makes the test by remande · · Score: 1
      I consider myself a software engineer, and have been doing business under that title for years. Not only have I no training in software engineering, I have found no place that offers it. Even inside of Route 128.

      I've seen a lot of programs for computer science, but that is worlds apart from software engineering. Computer science is getting computers to do amazing things--AI, image recognition, ray-tracing--the list changes every two years. Computer scientists boldly go where no code has gone before.

      Software engineering, OTOH, is usually involved in doing something that has already been done--but doing it better. It took computer scientists at Xerox PARC to invent the X console. It took software engineers from Apple and Microsoft to pull it out of the lab and into a shrink-wrapped package.

      Computer science is the science of making a computer do something new; damn the reliability or speed. Engineers are the next wave. They don't do as much, but their job is to make it usable, robust, and on time.

      The only ways I know how to learn that is to get a job at a shop that produces code like that well, or to discipline yourself to do this sort of thing well at a shop that otherwise fails at it. Software engineering is still taught by apprenticeship.

      --

      --The basis of all love is respect

  222. Need for "Lemon Law" -- case in point! by jabber · · Score: 1

    In 1995, Syncronys Softcorp released a product called SoftRAM95. It claimed to double RAM, and sold over 600,000 copies at $79.95 per copy.

    What the software did was to show some dials on the screen, which sowed how much RAM this software made available.

    The point is that the dials SHOWED something, but there was no actual RAM doubling taking place. The dials just REPORTED that there was.

    The average Joe consumer had been slipped a placebo.

    A Professional Certification would introduce a Code Of Ethics (along with a guarantee of competence) that would keep this sort of thing from ever happening again.

    --

    -- What you do today will cost you a day of your life.
    1. Re:Need for "Lemon Law" -- case in point! by jabber · · Score: 1

      I think that a Code of Ethics is very much at issue in this case. An individual developer, bound by a clause stating 'thou shalt not fake functionality or misrepresent the purpose of software' would not have engaged in the development of the product. A developer bound by a clause 'thou shalt make the breech of the above clause publicly known' would have kept the thing from getting to market. IP and NDA's would of course have to take a back seat to the Code of Ethical Software Development - and would that be so bad? If honest common sense outweighed the legal disclaimer, the world would be a better place.

      Also, Professional Certification should not be a requirement to practice the trade. It should only be an additional value - much as it is in engineering. Most engineers are not Professional Engineers, yet they still work in their profession. Hence, everyone would still be able to program, without the Certification, without the degree even. And, as in the case of OSS, much great work would be done by people w/o the Cert.

      --

      -- What you do today will cost you a day of your life.
  223. Formal Software Engineering training by jabber · · Score: 1

    Getting SE training in an academic setting is a contradiction in terms. Academia, by it's own definition, is dedicated to pushing the envelope of knowledge - Computer Science as you define it fits there nicely.

    But, some pretty good institutions are making an effort lately to provide training in SE - and I hope this will improve the quality of production code that comes out of industry.

    CMU, RPI, UCONN are the ones I know about to offer SE programs (grad level) but I'm sure the list is longer, and getting longer still.

    But you are also right in saying that SE is still taught by apprenticeship. No amount of time in a lecture hall compares to hands-on production quality code pounding.

    I hear, I forget; I see, I remember; I do - I understand.

    --

    -- What you do today will cost you a day of your life.
  224. Depending on the scope and responsibility by jabber · · Score: 3

    Not every engineer needs to be a professionally licensed one. Only those whose work affects the safety of people, or is Federally funded, or has HUGE money riding on it; or those who are the final authority on the product, need to bear ultimate responsibility for their work - and these are the ones who need to be certified.

    The engineers who design nuclear power plants, for example, need not be certified - because the process they are bound to follow already is - and the number of redundant checks on their work is exhaustive.

    So it should be with software engineers. People whose scope has a public safety effect, great financial liability, or is tax-payer funded/government contracted, but whose work does not undergo exhaustive and redundant SQA and V&V processes; should certainly be certified.

    Note: Professional engineering certification is not the same as a VBA cert, or even a CNE - though the CNE comes close. Professional certification involves sound design principles, conservative estimation methods... Much more abstract concepts than knowing the version of the tool you use.
    Certification is public assurance that you are competent to bear the responsibility of the task. If the worst outcome of the failure of the task, is not "that bad" (ie no public safety compromise, no property damage, no POed taxpayers not re-electing the people that gave you the contract) than simple insurance or a disclaimer will do.

    This is very hard to achieve in the software context, but I suppose that a simple analogy would be: design methodologies that include - GUARANTEED BOUNDS CHECKING, NO SIDEFFECTS, NO MEMORY LEAKS, FAILSAFE OPERATION, REDUNDANT BUT DIVERSE IMPLEMENTATION OF CRITICAL ALGORITHMS AND SYSTEMS - would qualify one for professional certification (provided these are not language specific and on the core level of the developer's understanding of his/her field).

    --

    -- What you do today will cost you a day of your life.
  225. Not quite by jabber · · Score: 4

    The License of which you speak applies to the medical and legal fields, but not engineering.
    A Certification OTOH is a piece of paper that qualifies one to use a particular tool.

    What we're talking about here (NYT) is a Certification of Professional Competency, not a License to practice or a Certificate of Tool Awareness, if you will.

    The CN{A|E} and MSxx 'certificates' are tool awareness leaflets that mean that an employer doesn't have to worry about you not knowing how to use a particular tool. You take an MSCD and put him in a Linux environment, and you'll see what that paper is worth.

    Now, the Certificate of Professional Competency is something else entirely. Any degreed engineer knows about the decomposition of forces, and can tell that a particular design simply will not stand. But a PE will have passed tests to guarantee that his/her designs will not only stand under designed load, but under a variety of additional conditions. Also, a PE's design will FAIL-SAFE, rather than in a spectaculary disastrous manner (Gallopping Girdy comes to mind).

    In the context of the software industry, a Certificate of Professional Competency has nothing to do with the development tool or language. It has to do with the robustness of the conceptual design. A PSE would know implicitly what designs are suitable solutions to a particular problem. A PSE certification would give an employer the assurance that this person does good work - and is not (pardon the term) a hack.

    The concept of the Professional Certification has been bastardized by companies such as Microsoft, Novel and Sun (Java Cert? PUHLEEZE!) to convince management types that the holders of these leaflets know what they're doing. All these certs mean is that someone paid, sat, and passed.

    A PSE would know, through their education and certification process, why MS-Winders is rickety and why X is a monument to great design. A PSE would not ever produce code that locks the machine, leaves a gaping security hole, or shows you a blue screen of death. A PSE would do this by design, and not by a series of fixes, patches and upgrades.

    A PSE would not necessarily know Java or C++ or Smalltalk, but rather OOP - inside and out. They would not necessarily know x86 or 680x0, but the crux of ASM.

    PSE development, unfortunatelly, does not mesh with OSS. It requires careful review, strong-arm process and centralized development. And for some applications, this is the way to do it.

    Now for the olive branch. Many developers have what it takes to be PSE (as I define it), but all PSE's would be - by definition - great developers.
    Employers whose projects carry enormous responsibility, would seek out staffs of PSE's, or would put PSE's in crucial locations within the organization, as sanity-checks on the work done.
    As for who is in control of the licensing board.. Well, the industry as a whole, as in all others.

    --

    -- What you do today will cost you a day of your life.
    1. Re:Not quite by N3MCB · · Score: 1

      Also the certified professional engineer is considered an expert witness in many courts. I have known engineers who make a side job out of testifing for the whiplash willies about why this fender bender is worth $2,000,000 of pain and suffering damages.

      Not every job would require the certification but for example mabee air traffic control software, or the software in the 2-way trunked radio that I trust will summon backup when I push the little red button should be overseen by someone certfied to design such systems.

      In these cases I think the PE should be approving the design for major flaws and safe failure, not the gory details of code syntax - that's the job of the QA people on the code team, or better yet an open review of the code.

  226. Personally, I don't think of myself as an engineer by Spud+Zeppelin · · Score: 1

    I prefer to think of programming as more art form than engineering practice -- the inner elegance of a design is how code should be judged, not whether it can "still make coffee after withstanding a load of -10 g's"... Licensure would take a lot of the artistry and enjoyability out of the industry, relegating us to little more than glorified plumbers, repairing the infrastructure of the next century.

    Quite frankly, I would say a solid footing in the Liberal Arts contributes significantly more to whether a programmer can understand and meet customer requirements than whether or not he happened to take 2 1/2 years of Scheme as part of his undergraduate CS program at the Punxatawnie Institute of Technology. (I have both a BA and an MS in math, incidentally, and little "formal" training).

    I have yet to see a "real world" problem that this notion of licensure would actually address. It looks as if this wants to be a nearsighted approach to addressing the Y2K mythos, but the reality is that (like so many things) when most of the non-Y2K-compliant software still in use was deployed, it (2 digit years) was "not a bug, but a feature" (lower memory consumption, etc., when memory was at a premium and code was cheap).

    So, like so many others who have posted on this earlier, I'm going to say "let the free market dictate things, not licensure" -- but for arguably different reasons. :)





    This is my opinion and my opinion only. Incidentally, IANAL.

    --

    MOO;IANAL.
    There used to be a picture linked here.

  227. Degree = Certification by Rayban · · Score: 1

    I don't really think that certification is the way to go, but I certainly wouldn't want programmers without degrees working on an important project. You can learn a lot by hacking and playing in high school, but there are a lot of things you can only get exposure to by being in a class.

    I think we'll see the concepts in Computer Science and Software Engineering start to merge. I just wish I could get that degree when it becomes available. ;)



    --
    æeee!
    1. Re:Degree = Certification by Rayban · · Score: 1

      Err... were you administering a network or programming? I was arguing that *programming* should require certification.

      --
      æeee!
    2. Re:Degree = Certification by CrosseyedPainless · · Score: 1

      Doesn't sound like you did any coding. For someone who wants to code, a degree program might well expose them to concepts they'll need.

    3. Re:Degree = Certification by CrosseyedPainless · · Score: 1

      There are a lot of programming concepts more complex than scripts and VB crapplets. So, no, you do not make your point. I'd hire you as a sysadmin, though! :)

    4. Re:Degree = Certification by SingleTracker · · Score: 1

      A degree is not certification, as any engineer can tell you. but for those of you who think there is nothing that school can offer, perhaps your goals are too low.

      I doubt I could have taught myself how to do computational fluid dynamics, finite element analysis, automatic control systems, etc. That's why I went to school...to learn what would be near impossible to teach myself, and to open my mind to different ways of thinking.

      Programming, however, when the basic concepts of data structures, etc, are known, is easily self-taught. Programming is nothing but a simple tool. You'd be hard pressed to find someone who can teach themselves advanced engineering mathematics and physics without some outside help.

  228. Sigh, another vicitm of public education :P by Rahga · · Score: 1

    I have a hard time seing how anyone (except those still in high school :P) could believe that. Programming "the same old stuff for 12 years" just doesn't happen. Unless you do nothing but, say, programming forms in visual basic (which hasn't been around _that_ long), every line of code you write is a stepping stone in experience. Programming on that type of project is, more than anything, an excercise in contruction and improvement. Modern technology is faster, but not much more revolutionary, than the technology of several years ago. Technology doesn't completely change every two or three years, it evolves. Probably the worst place to learn about modern technology is in the classroom, because rare ar the schools that stay ahead of the curve. Programming concepts have not changed much decade to decade :), just evolved and improved.
    Show me a programmer who is better with 3 years of education than one of 12 years experience on "the same old stuff", and I'll show you a burger-flipper at McDonalds who makes more money than the average rocket scientist.....

  229. Civil Engineers are licensed for different reasons by Silver+A · · Score: 1

    I'm a California licensed Civil Engineer. California licenses a variety of different branches of engineering, but only requires a licensed engineer for construction projects. The reasoning behind not requiring, say, a licensed mechanical engineer to design a car, is that the manufacturer takes on the liability. The same is true for software - if it causes harm, the vendor is liable, not the original designer.

    Additionally, each construction project is unique, while manfactured products are identical copies which can be tested before releasing for sale - a failure affecting a few units is more likely a material or manufacturing defect than a design flaw. With a building, you don't get much opportunity to test it before selling it.

    At some level, this may be an artificial distinction, since some software projects resemble construction projects in their diffuse contract structure, and the impossibility of testing all potential failure modes.

    Finally, who would benefit from State-issued licenses for programmers? A programmer who got his license from programming PDP-8 assembler isn't necessarily more qualified than a high-school dropout who never bothered to get a license. State boards will have to be set up, and these will likely be dominated by programmers from the large software houses. One could imagine a Washington State Programmers' License exam which required working knowledge of Microsoft variants of various languages, or a Utah one which required knowledge of creating programs for a NetWare environment.

  230. I take offense at this portrayal. by ethereal · · Score: 1

    "Many have called themselves software engineers," said John R. Speed, executive director of the Texas Board of Professional Engineers. "Wrong. They're the local music dropout who chooses to use that title."

    Those of us who actually have degrees in computer engineering or software engineering have a right to use that title - it represents a substantial investment of time and money. Just because software engineers can't currently use the title "Professional Engineer" doesn't mean that all software engineers are charlatans and dropouts.

    It's fairly amusing to see the Y2K problem portrayed as an ethical problem, as if a bunch of weaselly fly-by-night coders were trying to hoodwink the public back in the 60s and 70s. In hindsight it was a poor design, but it fit the design constraints at the time, which were considerably different. It's not an ethical mistake that bridges from the 1930s can't carry modern tractor-trailer trucks, is it? Of course, anyone building a bridge like that nowadays should be criticized, just like anyone who was still writing Y2K-noncompliant software in the last several years (Windows '98, anyone?)

    Personally, I don't have any problem with Software Engineering being a professional field jsut like Civil Engineering. Four years of engineering school separates the wheat from the chaff pretty effectively in other engineering disciplines, as it did in my major. Requiring software engineers to pass the EIT or similar standard requirement isn't much more of a step. It would certainly cut down on the hordes of people that read one or two books or get their MCSE and immediately jump into the field. Those of us with real skills have nothing to fear from certification.

    --

    Your right to not believe: Americans United for Separation of Church and

  231. it's the principles of design that you learn. by ethereal · · Score: 2

    It depends on what you're hiring for. If someone is hiring a tech or an admin to run your network, then you certainly have impressive qualifications. But if someone is hiring you to design a network, or to create an entirely new networking system, then you want someone that has training and/or experience in engineering and design. There's a difference between running a system that already exists and designing a new system from the ground up without including design flaws such as the Y2K problem. Good design can be learned entirely from experience, but a good education means that you don't have to make mistakes and learn from them; you can learn from others' mistakes and avoid them entirely. Formal education isn't a complete substitute for industry experience, but it does give you a jump-start in the direction you're headed.

    --

    Your right to not believe: Americans United for Separation of Church and

  232. Re:Lemme tell you about the iron ring... by SimJockey · · Score: 1

    Nope. I am a Chem Eng and wear mine every day. All of the accredited engineering disciplines are eligible (Mech, Elec, Civ, etc.)

    The issue of "accredited" engineering disciplines is currently in the spotlight in Canada. You cannot call yourself an engineer in Canada unless you are a registered professional engineer with one of the provincial associations. This is by law and they do prosecute if you are practicing without a license. The main requirements of a P. Eng. is an accredited degree and anywhere from 2-4 years practical experience, depending on the province.

    At least one Canadian university is offering a "Software Engineering" program through it's accredited school of engineering. The provincial association is refusing to recognize software engineering as a professional engineering discipline and is threatening to take away the accreditation of the entire department to re-inforce it's point.

    I have to say I am mostly in favour of such a move. I take my professional responsibility to society very seriously. Of all the the registered professionals (doctors, lawyers), engineers are the only ones not responsible to an individual but to society as a whole. Our mistakes can affect the lives or standard of living of large groups of people. That's why we carry liability insurance, either corporate or individual. Software engineering, even if it could be somehow licensed, just doesn't have this element of liability and accountability for failure. I reject the argument that software is too complex to assign accountability to an individual. I work in the oil refining industry and everywhere I turn, I see a potential failure point.

    --
    Laugh while you can, monkey boy!
  233. SDI by SimJockey · · Score: 1

    The best example of this I've seen is a professor I spoke with back in university, Dr. David Parnas. He was a member of a high profile panel on computing in battle management. He resigned and wrote a number of memos critical of SDI from the perspective that the complex computer systems that would be required to control antimissile systems couldn't be proved to be correct. Since they were essentially single use systems, they wouldn't benefit from day-to-day use to debug them. And of course the consequences of failure were enormous.

    To this day, that story remains with me as the most admirable instance of an engineer upholding his or her responsibility to society.

    --
    Laugh while you can, monkey boy!
  234. Take CPA's for example. by John+Hays · · Score: 1

    To become a Certified Public Accountant you need a BA in acccounting; two years public or four years private accounting experience; and past a four-part, two day exam. Most of the CPA's that I know took the exam four times before passing. It's a real bear of an exam.

    All this rigamarole and we still get bad CPA's.
    Really, really bad CPA's.

    All that certification does is reassure your client's that you're not a complete idiot.

    --
    I'm sure they meant well. So did the makers of Thalidomide.
  235. its not but college should teach something... by Zebulun · · Score: 1

    This is my third year.
    I know many superior programmers and many poor programmers and neither has anything to do with what was taught in school.

    Programming is art.

    Some people have skill and others will struggle with it and never be able to write good code. Writing code is creating, and whenever creativity becomes a requirement, talent prevails over knowledge. Can an artist be certified? True, we can recognize distinctly bad art and good art, but for every task in programming there's a plethora of ways to accomplish it, some quick and dirty, some clean and slow, some rigid, some loose. We can't be "certified" because tests require right answers.

    What i disgree with is the notion that college, for the insane amount we pay for it, shouldn't teach good code design. Learning theory is good, but I really think they aught to have a whole course just on good coding design. It's important and one doesn't realize its importance until they get into the field.

    -Z

    --
    I'm afraid. I'm afraid, Dave. Dave, my mind is going. I can feel it. I can feel it. My mind is going.
  236. Technology? by Sloppy · · Score: 1

    Huh? Do you actually think programming has changed in the last 12 years? Just what do you mean by "modern technology"? I'm getting a sinking feeling that you're talking about specific products that didn't exist 12 years ago...

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  237. Texas is now licensing "Software Engineers" ... by BitMan · · Score: 2
    Texas is now licensing "Software Engineers" ...
    Because of this fact.

    It is a matter of public protection and trust in some cases. The state was getting burned on way too many projects by fly-by-night programmers.

    Although it does not guarantee that licensed software engineers will "be any better," it *DOES* make them MUCH MORE ACCOUNTABLE (e.g. malpractice, etc...)!

    --
    -- Bryan "TheBS" Smith
    Independent Author, Consultant and Trainer
  238. A Degree is NOT a certification by richnut · · Score: 1

    *Laugh*

    Now come on. I cant even name all the idiots I dealt with in college who had no idea how to program. At all. I once had to explain to a grad studnet how to remove white space from a file. In a group project I was working on a person in my group had to explain to others what a hash table is. I dont know ANYONE who learned how to program in college correctly. People I know from college who've gone on to become successful programmers were already good programmers when they got there. People who were not good programmers became worse programmers due to the emphasis on high level design rather than the fundamentals of good programming. In college we spent more time counting the lines in our functions and dealing with the imposed design contraints than we did learning the basics of good programming.

    -Rich

    1. Re:A Degree is NOT a certification by humphrm · · Score: 1

      HAH! Reminds me of stories I had in college. One guy thought "bottom up" programming was a derogetory term applied to a programmer with his head up his arse.

      Another guy I met wanted some help with programming in "DOSE"... he kept saying "DOSE", just like that. Took me a while to figure out he needed help with Basic in DOS.

      Let's see... then there was the Math teacher they shoved into a Basic class (back in the '80's, sorry) that didn't know how arrays worked or why someone would need them. She actually abdicated the class to me for a week because the school told her she had to spend a week on Arrays, but I was the only person in the school (at least taking that lame class) who knew how they were applied.

      --
      -- "In order to have power, I must be taken seriously." -Mojo Jojo
    2. Re:A Degree is NOT a certification by swilly · · Score: 1

      A Computer Science degree isn't supposed to teach you to program - that is an implementation detail. It concentrates on high-level things like design, which is what the article suggests could be up for certification. They cite Y2K as a design failure.

      Certifying a programmer is like certifying an artist. And programming is also like art in that you don't become an artist by taking a few art classes, though that certainly doesn't hurt.

      The article mentions that Texas started to certify engineers because of a building that blew up. That is a design failure. They didn't suggest certifying the construction workers. If a software design failure you don't blame the programmers, but you blame the person responsible for the design (of course, for small programs they may be the same person).

      A Software Engineer concentrates on the design itself, taking into account requirements, maintainability, and considering some of the implementation details. And if a software design has a fundamental flaw, the blame lies in the designer(s), not the programmers who implemented the syste. This is one reason that Software Engineering is a more structured and rigid discipline than programming.

      Ideally, all programmers would be skilled Software Engineers and visa versa, but this isn't the case. Construction workers would be better at what they do if they could also see the big picture. And obviously, Engineers need to understand things from the implementors perspective. People have different abilities and different skills, and few people can be experts in both.

      I do however, agree that a CS degree should qualify you as a Software Engineer. From what you have said, it sounds like you didn't go to a good school. I have never counted lines in a function. And a Software Engineer should have at least two semesters of data structures, and if they did then nobody should have to explain a hash table to them (though perhaps the course that introduces that wasn't a pre-requisite and some students hadn't had it yet?).

      The theory of Computer Science can be taught. Software Engineering can be taught. If you have a college degree, it should be safe to assume that you are qualified at those. But being a good programmer is up to you.

      (Sorry about the rant.)

    3. Re:A Degree is NOT a certification by corinath · · Score: 1

      Thats because a CS degree really doesn't teach programming. A CS degree is meant to teach the fundementals of design and the overall concepts behind the software. I am personally a Computer Engineering studen (which is EE mixed with CS). The CS classes that I have taken are ALL concept classes that assume that you already know how to program. This seems to be the norm all over the country. You can't actually get through the CS program without learning how to write good code, but writing good code isn't actually taught, and really it can't be. One must learn it for themselves.

      --
      Hockey - Canada's gift to the world
  239. Sounds like a good idea! by Nickbot · · Score: 1

    And while we're at it, reporters should have to be liscensed as well. What if some crazy freelance reporter decides to say something bad about the state or government?

    --
    Praise the Force Field! Praise the Laser Project! Slackware Loon #19830573
  240. Re:Yes, for PUBLIC projects concerning HUMAN SAFET by HiThere · · Score: 1

    Does being certified make it safer? Not if the managers don't support it! And if the managers insist on it, then it would be done that way anyway.

    Certification only makes sense if most programmers are operating independantly, and even then it only makes sense if the software license doesn't disclaim responsibility.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  241. Re:A CS degree is a critical element in the recipe by Todd+Knarr · · Score: 1

    I would tend to agree with you that the concepts you mention are important. I would disagree that a CS degree is the only, or even the best, way of getting them.

    -Solid foundation in programming concepts

    The problem with this one is that, from my own experience in a CS/CE program, you don't get a solid foundation. The canonical example is from a class in data structures and algorithms that I was forced to sit through. They spent an entire semester going through the theory behind and analysis of things like sorting algorithms. At the end, you knew everything there was to know about writing and using Quicksort vs. heap sort, and why you'd choose one over the other. Problem is, not once in the entire class did they ever touch on the single most important concept: why you should not be writing either Quicksort or heap sort in a program. In other classes they spent huge amounts of time on the correct ways of doing things to valid data, but not a single class spent any time on how to validate user input or other input data and how to handle invalid data, error conditions and the like. What I found was that, at least at the undergraduate and early post-grad levels, they spent all the time teaching things that were either too exotic to be useful or that you should not be doing yourself, while glossing over the dirty, messy, practical things that keep your code running when it leaves the nice, clean lab where all input is valid and you never run out of memory and enters the real world where input comes from a phone book falling on the keyboard and the disks crater in the middle of a critical database update.

    -Knowledge of the processes of software development

    Again, the degree programs tend to fail here. They teach the theory fine, but they gloss over or ignore completely the practical application of the processes to actual software projects. There's a world of difference between using a process on a 1000-line class project involving only one programmer, and applying the same process to a quarter-million-line point-of-sale system where you have 15 programmers in 3 groups working on it, the requirements change daily and bugfixes and minor enhancements get thrown in without warning.

    -Curiosity and exploration of new technologies
    -Passion for the work
    -Rigorous and analytical thinking

    What I've found most often is that the academic world works to eliminate these rather than teach and strengthen them. Students who embrace these concepts tend to argue with the professor ( and worse yet, prove him to be wrong in the process ), do things that the prof isn't prepared to deal with or doesn't want to deal with, "cheat" by making use of libraries or facilities that they know about but that the prof hasn't mentioned yet, get way ahead of the curriculum and generally be pains because the prof actually has to start thinking instead of just following the lesson plan.

  242. Re:Yes, for...projects concerning HUMAN SAFETY! by TWR · · Score: 1
    It seems they got a service call about a crash in the program. He asked the caller how important the software was to the organization--to determine how soon the problem needed fixing, I guess. The caller responded that he was a surgeon who used this software to keep track of patient information, and he was in the midst of open heart surgery. The moral? Even a spreadsheet can be safety-critical, to the point of human lives depending on it. (Yes, the problem was solved quickly enough. Yes, the surgeon should not have been relying on the spreadsheet for such important data. That matters little when the problem presented itself, however.)

    Bah.

    The surgeon was using the wrong tool for the job. Show me the spreadsheet which comes with a warranty which says that it will always function correctly. He trusted a piece of equipment which came with an explicit warning (its warranty) which said it could fail at any time. It would be like using a dull knife he found on the street to do brain surgery.

    I'm pretty much against licencing of software engineers, but the more I think about it, the more it starts to seem like a good idea. Everyone in this industry _expects_ their products to be crap. That's why there's a Cover Your Ass warranty with every bit of software. Bridge-builders (and heck, toaster builders) can't get away with saying that their product just might not function correctly. Maybe if there was a threat of actual lawsuits or loss of job due to defective products, we could have software packages which are as reliable as a sheet of paper.

    For those who think that the software industry is too immature to handle that sort of responsibility, check out the Code of Hammurabi. If you built a house for someone and it fell down and killed their kid, your kid would be put to death. Home builders have been able to handle responsibility since the dawn of civilization. It's about time that we did the same.

    -jon

    --

    Remember Amalek.

  243. License != Certification by Firewall · · Score: 1

    Did he really mean to use the word license instead of certification? If he meant license, he also meant laws to prevent unlicensed programmers. You don't see very many bridges designed by unlicensed engineers now, do you?

    1. Re:License != Certification by Firewall · · Score: 1

      Heh, anyone want to review some of the quick and dirty Perl code that I've kludged up over the years? (Hint: it's not pretty but it works.) Just kidding! Code review is a good idea.

  244. Re:Yes, for...projects concerning HUMAN SAFETY! by DrewE · · Score: 1

    An excellent point, but...
    I am reminded of a story one of the profs once mentioned during a software engineering class here (at RIT) about a spreadsheet he once worked on.
    It seems they got a service call about a crash in the program. He asked the caller how important the software was to the organization--to determine how soon the problem needed fixing, I guess. The caller responded that he was a surgeon who used this software to keep track of patient information, and he was in the midst of open heart surgery.
    The moral? Even a spreadsheet can be safety-critical, to the point of human lives depending on it.
    (Yes, the problem was solved quickly enough. Yes, the surgeon should not have been relying on the spreadsheet for such important data. That matters little when the problem presented itself, however.)

  245. Re: And 12 yrs. experience could be worse than 3 by landtuna · · Score: 1

    12 years experience!! It seems that someone with 12 years experience who has always worked on the same old stuff is far less experienced than someone who has been educated for three years or so on modern technology.

  246. Verifying programs by Peder · · Score: 1

    You are right that really verifying programs is prohibitively expensive and extensive. Most software projects cannot afford a full-blown verification.

    However, if the engineers on the project know a thing or two about how to write code as if it would be verified, it makes the code much easier to read. In my experience, such code is often easy to look at and say "Oh, that's obviously correct".

    Then one can verify the most critical parts of the program, and leave the rest to intuition.

    I would of course not design a nuclear power plant or missile control system in that way, but for most projects, such an approach would be feasible.

    It all boils down to a bit of structure in your code, really. And certifying engineers who can write proper code is a Good Thing.

    But then, what do I care what you 'merkins do.
    --

    --

    --

    --
    ...Peder...
  247. Which is precisely what we need to change! by SeanNi · · Score: 1

    Actually, its not bull at all. In all the other engineering fields you can take a design and, through the correct application of mathematics, prove that it is correct. In a vast majority of cases, thats simply not possible in computer science.

    ...And this is precisely what we need to change!

    The question we gotta ask ourselves, is why it's not possible to "prove" that a given program is correct. As a sibling comment to this one points out, all programs are built on the foundation and functions of other programs, which themselves are built on top of other programs, and so on... all the way down to the processor firmware (excuse any usage of incorrect terms; I'm strictly a s/w programmer :-).

    If there are any problems, it should be possible to trace them to the exact procedure (or combination of procedures) that caused them.

    If, for example, a call to my_print(), where:

    void my_print( char *my_string[] ) {
    ____printf( "[Output: %s]", my_string );
    }


    doesn't work, then we can check for errors in my_print(). If none exist, then we can check to see if the printf() function is working properly. In this case, it shouldn't be (since there is nothing else to cause the error (unless I've screwed up... I'm extremely tired at the moment, and have been using another language recently)). Likewise, if printf() doesn't work, we (or the person who wrote printf() ) can check for errors in printf() itself. Again, if none exist, then they can check any functions (C/Assembly/whatever) that printf() calls.

    The process iterates down into the operating system, and eventually (as I said) into the processor code. If no errors are found, the process can be repeated, starting with the compiler. Somewhere, eventually, we can (in theory) find the error.

    Now, in the real world, it's not that simple, I agree. But we have to look at why not. Don't give ourselves the cop-out of being able to say, "it's too complex to be able to find the exact problem."

    Finding a problem in a piece of code should be a hell of a lot easier than finding a problem in a law of nature.

    Yet we are intolerant of faults in brick-and-mortar. Structural/electrical/etc design. But if we find one in software, we are far more likely to shrug our shoulders and say, "oh well."

    Ok, I'm exaggerating. A half-decent programmer will do their best to catch all the errors. But that's the crux of the matter. The process is too long, the number of distinct parts (each with a seperate author) too large from the end-user program, down through the language design, the compiler, the shared libraries, the OS API, the OS kernel, the processor API, the microcode (or whatever it's called -- the firmware) that shifts all those little electrical pulses around in the chips.

    And a bug anywhere in that chain can easily cause unforseen problems to crop up at a higher level, in some code-that-relies-on-code-that-relies-on-code-that- relies-on-code that relies on the code that happens to have the bug.

    It's not enough to say or think, "I am a good programmer; I will make sure my code has no bugs," if you can't be sure that every single piece of code that you are depending on is similarly bug-free.

    Which is the problem we need to solve and that licensing has the potential to solve.

    I've seen the argument that a little game or something doesn't need to be fault-tolerant, that a bug there doesn't matter.

    Perhaps not. But what about all the code that it sits on. What about some code that relies on the same low-level function that is essential?

    Or even -- and this is especially an issue in the free software/open source (I'm not getting into that argument! :-) world -- if someone is looking for an algorithm (say, something such as a search algorithm) for use in a more-important program. They happen to see something that will do the job in a game. What the hell -- they just grab it, and with a few minor contextual tweaks, transplant it. Hey, it seems to work, no problems yet.

    And then something such as Y2K comes along. Maybe not Y2K, but something with a similar effect, and it turns out that this particular algorithm is affected. Oops!

    You can see the problem. It stems from the fact that many different pieces of software are inter-connected and all rely on each other -- a bug somewhere in the process can easily propogate through to other pieces, and become harder and harder to track down -- especially when combined with any other bugs.

    The Y2K program has highlighted this beautifully. That a particular application won't properly recognize the date is not the problem. The problem is when 2 functions/programs/processes interact which happen to recognize it in different ways.

    And all of a sudden, programs that were thought to be "unimportant", definitely non-mission-critical, and basically not worth the time to get every single little bug out, have the potential to cause major problems.

    It's the attitude, not the programs themselves.

    And the best way to change that attitude (and the resultant potential for hard-to-find bugs somewhere in the system that the "good" programmer can't easily get at) is to have some sort of licensing thing in place.

    That way, I can be guaranteed that my programs will work ok, as long as they themselves do not contain any bugs, since I know that the entire foundation that they are built on is ok; built by licensed engineers.

    Lemme repeat the previous post, and re-answer it in the context of the above discussion:

    Actually, its not bull at all. In all the other engineering fields you can take a design and, through the correct application of mathematics, prove that it is correct. In a vast majority of cases, thats simply not possible in computer science.

    The only reason there is a difference, is because programmers are not licensed, or verified in some way that they are competent and will do their utmost best to rid their programs as bug-free as possible. Once (if) such a verification process is in place, it will become a lot easier to "prove" that a program is correct.
    --
    - Sean

    --
    It's a fine line between trolling and karma-whoring... and I think I just crossed it.
    - Sean
  248. A CS degree is a critical element in the recipe by crosseyedatnite · · Score: 1

    You don't get a degree in CS to learn a programming language, an Operating System, or a piece of software. The focus of a good CS program are emphasis on algorithms, design patterns and software development processes.

    As far as your #1 vs #2, I have found the opposite. People who have not had the rigorous background in the above tend to be those who put in a lot of hours doing things the hard way, with no eye toward overall design. These are the folks who can rock the bits but miss the big picture.

    I am not saying that a CS degree will ensure that a programmer will be good, nor am I saying that a degree replaces experience, but what a CS degree from a good program gives is a solid foundation in the fundaments of programming.

    The marks of a good programmer are:

    -Solid foundation in programming concepts
    -Knowledge of the processes of software development
    -Curiosity and exploration of new technologies
    -Passion for the work
    -Rigorous and analytical thinking

    Note that I didn't mention stuff like "Mastery of ___ language" or "Proficient knowledge of ____ OS". Those are technical details that in and of themselves, are side effects of what I listed.

    I often find that a CS degree makes the difference between a true software engineer and someone who is merely a skilled technician.

    --
    e to the i pi equals negative one
  249. Oh, and a degree also teaches you to spell.... by crosseyedatnite · · Score: 1

    Shouldn't you be enrolling in college right now?

    --
    e to the i pi equals negative one
  250. Counter bah by crosseyedatnite · · Score: 1

    Yes, many CS programs are clogged with people who merely want "to work with computers".

    Like you, I was programming for, as you said it, *years* before I took a CS class. I hate to date myself, but my first computer was a VIC-20 and I taught myself BASIC on it. From there I too had a steady progression of computers. I was very technically proficient in programming by the time I entered the CS program.

    However, it was in that program that I found that programming is more than being able to fire out lines of code to do something. Concepts of software development, such as design patterns, algorithm analysis, software engineering processes, lifecycles, and team programming were ingrained in me.

    Just because someone has a CS degree does not mean that they can program worth a damn, nor does an English degree mean a person is worth their weight in sand as a writer. As was said in another post, and I misquote... "A CS degree teaches you the History of programming, so you don't make the same mistakes" (apologies to author, was a good post!) In order for that CS degree to be of help to you, you need to PAY ATTENTION AND LEARN WHAT THEY ARE TEACHING YOU. Figure out what professors are the ones "in the know". Do more than is required in class.

    There are a lot of programmers without a CS degree that can get down and dirty with a program, delve into the depths of code and accomplish major feats of programming, and come up successfully from those debugging sessions knowing that they accomplished something worthwhile. I have a lot of respect for these folks, for I too have been there and often need to dive in and hack. But it is these same people who, without the background given in a CS, tend to overcomplicate the design of large systems and end up with an unmanageable mess.

    I'm not saying that without a CS degree you can't effectively design a large, complex system. But they have to get that self-discipline and knowledge ouside of a degree program designed to expose those concepts to students.

    Generally, if you want to make the leap from being a brilliant hacker/hotdog program writer to a great software architect, you need to get that background imparted through a good CS program.

    --
    e to the i pi equals negative one
  251. Who said CS was the only part of the equation? by crosseyedatnite · · Score: 1

    Let me clarify a few things:

    A person who goes through a CS program and pays attention and learns (not just studies to pass the tests, a sore point I have with colleges today) the concepts and materials presented through coursework, upon graduation, is qualified to do almost nothing. All a really good CS program imparts is a good fundamental knowledge of how to program, _in_general_.

    You do NOT go to college to learn to program in C, C++, Java, Pascal, Assembly, COBOL, ADA, Javascript, Perl, BASIC, AWK, Lisp, PC Scheme, or any other technical programming skill. Any such skill you possess upon completion of a CS program is a side effect of your education! The point of completing a CS program is to learn how to learn

    Think about the name of the degree: Computer Science. The _SCIENCE_ of computing. Generally, programming, and a little broader, Computer Science can be defined as The process of managing complexity.

    Throughout the history of computing, the task for programmers has been to evolve tools for handling larger and larger tasks. We have come from flipping switches on room sized hardware to a point where we have languages and tools that abstract high-level GUI application to a few mouse clicks and keystrokes.

    Almost every programming language started as someone looking at current tools and saying to themselves, "This is too much work, I can generalize these concepts which take months of coding in this language and aggregate them into almost atomic concepts if I make a new language that is based on this level!" Computer science, the field we *all* work in is constantly advancing, not because we are bored and have nothing better to do, but because we are constantly presented with larger and larger problems to solve.

    Many "self-taught" programmers who do not have the benefit of a good CS degree are limited in the scale of complexity that they are able to handle. I'm not saying they are less intelligent, but they tend to lock themselves into a fixed technology layer and solve the problems at that level. They haven't been exposed to the breadth of information that a CS degree should give.

    As to those CS grads you mention as being worthless...they would be just as worthless without their degrees. A background in CS can make a good programmer a great programmer, but it can't help someone who just doesn't have the mindset for programming.

    A CS degree just helps you _Scale_Up_.

    I find that a CS degree, by itself, tells me nothing about the abilities of a person. But, more often than not, its lack points to a possible deficiency in the fundaments.

    --
    e to the i pi equals negative one
  252. Programming without discipline is more dangerous by crosseyedatnite · · Score: 1

    You are an EE, did you take upper math? In some ways a CS degree could be considered an applied mathematics degree (I happen to have both)

    Mathematics teaches rigorous and analytical thinking in ways that are difficult to pick up independently. The final year of a good CS program takes these concepts and applies them further to solving problems through software.

    In your *own* example, you mention addressing a problem on an embedded system, and then making a disparaging remark about how CS students didn't know about port addresses or an ISR. Guess what? That is a TECHNICAL skill that is part of programming. On equal measure I could judge you by your ability to design a hierarchical query in SQL to traverse a self-referential table, but I won't, because that too is a necessary technical skill needed to solve a specific programming problem.

    It often irks me when people with degrees in EE (and other engineering disciplines) claim to be at the apex of programming skill because they did work like you do. The methods you use for what you do are not easily scaled up to larger problems.

    Software development is a discipline where you should start off with a good foundation in the theories of programming and then temper that with experience working under others.

    --
    e to the i pi equals negative one
  253. I think there is a place for licensing by umoto · · Score: 1

    I would argue that certain types of projects demand safety-oriented software engineering, such as computer control for anti-lock brakes, air traffic control, and missile launch mechanisms. I know I would feel better when I fly if I knew that it was absolutely impossible for the air traffic monitoring software to throw a null pointer exception.

  254. Certification would be obsolete in 5 years by TNN · · Score: 1

    If I had a certification today and stopped
    programming for 5 years my certif would be worth
    nothing because all my experience is forgotten
    or outdated.
    Bridge technology does not change as fast as
    software or computer technology.

  255. Yes, for PUBLIC projects concerning HUMAN SAFETY by Moeses · · Score: 5

    There are different arena's one can code in. No one is going to die if their word processor crashes. In such a situation one is free to choose another word processor.

    If a service is being contracted for the people from a government and human health issues are at hand then the people have a right to require that the engineer, whether he be a civil engineer or a software engineer, has proven to them that he can complete the task with safety and has the skills to show them the numbers that make it safe.

    This is akin to verifying the correctness of code (mathematically proving that it cannot fail), an incredably extensive and expensive process. But sometimes it needs to be done. An exam such as the Professional Engineer exam is an attempt at making sure the people who work on these projects that affect the public know when and how to do this.

    Testing code relentlessly is one thing, verifiying it's correctness is another.

    They each have their arena.

    Moeses

  256. What exactly is the point by DFDumont · · Score: 3

    I think the bridge metaphor breaks down pretty quickly...a bridge is a physical thing that can be objectively measured. A bridge goes through several "inspections" by disinterested or hostile others. A bridge is expected to last 50 to 100 years.

    Anyone that ever looked at some of the theoretical implications of say proving the "correctness" of a program knows that the objective inspection is basically impossible. The others are obviously outside the realm of progrmaming. So what is the idea behind the certification/license issue?

    Are we trying to prevent studip people from writing code? Then we would need to prevent all the various software warehouses from selling a copy of Visual Stupid (you pick) to any and all suits and programmer-wanna-be's. That would be a good thing for several reasons. :)

    If the idea is to give some malcontent reason for a lawsuit, well we already have enough of them to keep the courts busy for the next several millenia.

    I like the idea of the guild though...self directed, self fulfilling, able to bring along the journeyman to the level of master with a known process and a mentoring methodology...Yeah I like that idea

    1. Re:What exactly is the point by for(;;); · · Score: 1

      stevew> The bridge metaphor does apply!

      Bridges are built out of lumber and metal. They are built upon concrete and earth. They are bombarded by wind and precipitation. They are driven upon by cars and trucks.

      These physical objects are governed by physical laws. Given the properties of a car, I can tell how much stress it will put on a bridge. Given a metal, I determine how resilient it is and extrapolate that result. I can estimate, with reasonable accuracy, the stability of the soil upon which I build my bridge. An I-beam is an I-beam is and I-beam.

      This is not the case with software components. Use this object with that IPC mechanism, you segfault. Call this function and fail to catch that error, you hang. Software components interact with each other in weird, unpredictable ways. If a bird lands on one specific part of your bridge, does it crumble to the ground? Of course not. But I have a function in the project I'm working on which will crash if the no-op statement

      cout It could also be argued that the "guild"
      stevew> already exists - it's called ACM.

      It has no punitive ability. No employer will care if you get kicked out of the ACM. It's more like a club, a place folks go to share information and hand out awards.

      --

      "Whatever happened to fair use?"
      -- Duff-Man
    2. Re:What exactly is the point by for(;;); · · Score: 1

      stevew> The bridge metaphor does apply!



      Bridges are built out of lumber and metal. They are built upon concrete and earth. They are bombarded by wind and precipitation. They are driven upon by cars and trucks.



      These physical objects are governed by physical laws. Given the properties of a car, I can tell how much stress it will put on a bridge. Given a metal, I determine how resilient it is and extrapolate that result. I can estimate, with reasonable accuracy, the stability of the soil upon which I build my bridge. An I-beam is an I-beam is and I-beam.



      This is not the case with software components. Use this object with that IPC mechanism, you segfault. Call this function and fail to catch that error, you hang. Software components interact with each other in weird, unpredictable ways. If a bird lands on one specific part of your bridge, does it crumble to the ground? Of course not. But I have a function in the project I'm working on which will crash if the no-op statement



      cout It could also be argued that the "guild"

      stevew> already exists - it's called ACM.



      It has no punitive ability. No employer will care if you get kicked out of the ACM. It's more like a club, a place folks go to share information and hand out awards.


      ......

      --

      "Whatever happened to fair use?"
      -- Duff-Man
    3. Re:What exactly is the point by for(;;); · · Score: 1

      stevew> The bridge metaphor does apply!

      Bridges are built out of lumber and metal. They are built upon concrete and earth. They are bombarded by wind and precipitation. They are driven upon by cars and trucks.

      These physical objects are governed by physical laws. Given the properties of a car, I can tell how much stress it will put on a bridge. Given a metal, I determine how resilient it is and extrapolate that result. I can estimate, with reasonable accuracy, the stability of the soil upon which I build my bridge. An I-beam is an I-beam is and I-beam.

      This is not the case with software components. Use this object with that IPC mechanism, you segfault. Call this function and fail to catch that error, you hang. Software components interact with each other in weird, unpredictable ways. If a bird lands on one specific part of your bridge, does it crumble to the ground? Of course not. But I have a function in the project I'm working on which will crash if the no-op statement

      cout << "";

      is not included. Why? Who the hell knows? Some small error compounded with some other small error makes my program crash if this statement isn't there. Programs aren't like bridges.


      stevew> It could also be argued that the "guild"
      stevew> already exists - it's called ACM.

      It has no punitive ability. No employer will care if you get kicked out of the ACM. It's more like a club, a place folks go to share information and hand out awards.


      (And as I try for the third time to submit a "Plain Old Text" post with less-than symbols in it, I stand by my "code != bridge" argument.)

      --

      "Whatever happened to fair use?"
      -- Duff-Man
    4. Re:What exactly is the point by porkchop_d_clown · · Score: 1
      A bridge is expected to last 50 to 100 years.

      And software isn't? It's attitudes like that that caused the Y2K problem.

      The world is full of thirty year old software. The only reason it isn't full of 100 year old software is that we didn't have programmable computers in 1899.


      --
  257. Guilds, etc. by aphrael · · Score: 2

    It seems to me there are two problems with licensing programs for software engineers, one of which is theoretical and the other practical.

    The practical one first: what does it take to get a license? If it's just passing an examination, then that proves nothing ... except whether or not the engineer in question can pass the exam. It says nothing about whether or not the engineer uses safe coding practices, writes programs which are reliable, or is mentally stable (and therefore won't implant dangerous easter eggs). At best, all it is going to prove is that the engineer is familiar with a particular programming idiom and/or API ... which is certainly desirable, but again, is far from sufficient --- especially when you consider that an idiom or an API, for an experienced programmer, is learnable; and it's the ability to learn that is unquantifiable, and mostly untestable.

    Then the theoretical problem: one of the things that licensing schemes _since the middle ages_ have been used for is to restrict entry into the labor market. The midieval guilds set up criteria which made it next to impossible for newcomers to get into the market without years of what was essentially slave labor, not for the purpose of protecting the midieval consumer, but for the purpose of protecting the jobs of the guild-members. The modern AMA tends to do the same thing --- schools which license too many new doctors are threatened with having their license to be schools of medicine revoked --- with officially pure motives, of course. How long would it take for a licensing scheme for software engineers, however well motivated to begin with, to degenerate in such a direction?

    One of the things that is cool about the software world is that there are next to no artificial barriers: if you have sufficient skill, you can pretty much do what you want. It would not be a good thing to sacrifice that, and build up new barriers to entry into the field, even for an admittably worthwhile goal: the cure would be more of a problem than the disease was.

  258. From a Certified Engineer Intern by schporto · · Score: 1

    Or at least that's what this silly little card I carry says I am :)

    I could easily see programmers getting certified in the same way as engineers. Just as a quick overview of how this happens -
    First you must meet the requirements (4 year degree or 20? years of experience).
    Then you take a test.
    Then you are a Engineer Intern.
    Then you learn from a Professional Engineer for 5+ years.
    Then you take the PE exam.
    The first test is a general test that covers the most common, but technically difficult, things (or at least this is my rememberence). There were questions you'd expect any (mechanical) engineer to know. Some basic physics, math, etc. There were also a set of ethics questions. There were even a set on project managment and budgeting. You had to study for them, they were very difficult, and personally I needed sever Guinness afterwards.

    Now I'm certified to learn from a PE for 5 years to become one. Instead I'm programming. Not every engineer is a PE or Intern. What you need (by the PE rules) is a PE to sign off on any official project. Also you can't bill yourself as an engineer (in public view) unless you have a PE. One other rule is that you can't claim knowledge in areas where you don't have knowledge.

    Applying this process to programming, then you would end up with a viable possibility. However remember trivial things aren't nessecarily covered. (i.e. my father built a deck himself, he didn't need a PE to sign off on the design, but he did need a building permit) So putting this together you would end up with the ACM (or appropriate group) putting together a test - difficult covering basic concepts of programming. Passing this makes you a Programmer Intern. You must then work under a Pro. Programmer for 5 years to become one yourself. This would then qualify you to sign off on programs that are considered ummm critical. The definition of critical would need some work. Is a game critical - no. Is a web page critical - probably not. Is the microcde that controls a pace maker critical - YES. Some things start getting hairy - financial systems - maybe they are (banks), maybe not (something I wrote to balance my checkbook). What about OS'? They would have to be certified if someone was going to use this in a critical area.

    As for some of the other arguments -
    It costs too much - not really in this model, the test (when I took it) was $60. I think $100 for the PE. Not execatly expensive esp if then Pro. Programmers would make bundles (based on PE's making large $$$).
    Programming an art - yes and engineering is too. Really it is. But there are still some fundamental concepts in both. The question is what are those fundamental concepts in programming (and I really don't know).
    Writing code the same way - silly argument I think. Most cars are signed off by PE's but not too many look the same. Or even have the same design concepts.
    Obseletion of Certs - When you get a PE (my understanding) is that the test is more of an intelligence test kinda. It tests how well you know how the real world works, not how the academic one works. This is why the tests focus on basic principles that really haven't changed and how they work in actual projects - you are also expected to stay up to date as part of the PE code. This would be a sticky point in any certification process.
    Programmers can't kill people - oh yes we can. A programmer wrote the code for the Space Shuttle's computers. What if that screwed up - thing crashes. Plane's autopilot? Heart monitors? Drug manufacturing lines? Ok games won't kill anyone, neither _should_ operating systems, but programmers can have direct effects on people.

    I think it could be a good/nessecary thing if done correctly. The requirements would have to change from those of the PE, but the idea could be made to work I think.
    -cpd

  259. Missing the point by rico23 · · Score: 1

    The problem is this: a lot of software projects fail. A lot more are way late or don't work.

    Writing good software is difficult. We all know that. But there's got to be a way to make better software faster.

    My experience, and I'm sure a lot of people will agree, is that the entire process is screwed up. The customer doesn't know what they want, the project manager changes the specs w/o telling the user, ambiguity in requirements, and yes, idiotic programmers. The whole process needs to be changed.

    One big advantage of building bridges (for the example) is that it's been done for so long, the building process, from the first glimmer of an idea to the opening, is pretty clear.

    THIS is what we need - a clear, well documented process that works and everying buys into, not certification of one role in the entire process.

    --
    "It was me against the world, I was sure that I'd win.... but the world fought back, punished me for my sins" - Social D
  260. More regulation, more barriers to entry by Kaa · · Score: 1

    I don't like the idea at all. First, all certification tests I took (and I took a few) were really stupid and had very little relevance to the actual work being done in this particular field. Basically, you get a thick folder of "preparation materials", you cram for 1 day - 2 weeks, you pass, and then you forget it all and get on with your life.

    Second, this is an invitation to get programming highly regulated by everybody under the sun. Government, "self-regulatory organziations", etc., etc. Mucho work for lawyers, mucho hassle for everybody else. Besides, how about a prereq of Master in CompSci in order to be licensed?

    Third, most such organizations are basically set u p to raise barriers to entry, thus to make it more difficult to get in, thus to raise the price of services of those already in. Again, lawyers are a classic example. Now to become a lawyer you have to have a J.D. and pass a grueling bar examination (which, again, has little relevance to actual work). The point is to make people who are inside "special" and different from those outside. I doubt very much this would be a good thing for programming.

    Kaa

    --

    Kaa
    Kaa's Law: In any sufficiently large group of people most are idiots.
  261. This is a good idea by gouldtj · · Score: 1

    I really do think that overall the idea of certifying Software Engineers is a good idea. And I think it should be done in a similar manner to the way that Engineers are licensed with the EIT and other such testing. I seem to be the only one that beleives this, so let me justify myself a little bit.

    If someone goes out and designs software, markets it a market, and then sells it there is no gaurentee that the software will do anything more than sit on the desk in a nice box. If that software is implemented, and then a huge bug comes up the purchaser is SOL. They can bitch, mabye get some press, but they are still screwed out of all the deployment time, training, and purchasing of the product. Now I am not talking about bugs like the 'File' is misspelled on the menu bar, things like the software won't do what it is entended to do. If the software was 'Engineered' there is some responcibility.

    What then happens is that the company can be taken to court, and the court decides if the oversite was a resonable one. Usually this starts off with the company justifing why that bug/design feature was there in the first place. Something like "we didn't expect it to work at tempatures over 139F." And if it is a desert rover they would loose, but if it was made to work in Greenland they wouldn't. This should be a similar notion for software. They need to show that they had a reasonable amount of testing in the areas of 'reasonable bugs'. If they neglected to test the TCP/IP stack (Windows :^) then they can be sued for TCP/IP errors.

    This really comes out very similar to the Lemon Law, discussed previously, but it is handled in a different way.

    The other neat thing that happens here is that a specific Software Engineer could loose their license for actions here... So then they could never write software again. Wow, sounds pretty drastic eh? But I think what this does is show people that everything that they do can have perminate consequences. Very perminate ones. I think that in general people need that hanging over their heads.

    What will this do to the industry? It will slow down inovation in the industry - that is kinda obvious. I think that as software has become pervasive, and almost required to live today, this needs to happen though. It may take killing a bunch of people to get Washington to look at it, and the industry to accept it, but it will happen. I hope that mabye (just mabye) it could be handle preemptively so that people don't have to die.

    How do I think that this should effect free software? I think that it should effect software when it is sold. The idea of Free software should be consittered 'academic', just like people can do 'bridge research' and not worry about being sued. This makes the roles of RedHat, Debian, SuSe et al, even more important. They would have to take the software from the free communities and verify them 'reasonably bug free' by their own standards and then realease them. While this would make the startups that happened there less of a reality, I think it would make the distributions on a whole better.

    I welcome your replys, I think I will probally get quite a few...

  262. *HEY MODERATORS*! -- Delete these first two posts by for(;;); · · Score: 1

    The first two of these three posts were mangled by the HTML parser. Please delete them (if you have the privs), leaving the third post.

    --

    "Whatever happened to fair use?"
    -- Duff-Man
  263. ...Another MS certification? by Sixpack · · Score: 1

    We wouldn't want responsible programmers, now would we? Reality wouldn't have it.


    I can see it now:

    Certification.. here's my degree. I spent more than $50k(US) on it. Now you're asking for more? Screw you.

  264. Licensed Pros are held to a higher standard. by craiglp · · Score: 1

    That group includes doctors, lawyers, engineers, CPAs, etc. They are held to a legal standard of performance that is higher than a 'non-professional' such as a programmer. Are you ready to pay BIG $$$ for Errors & Omissions insurance, or malpractice insurance?

    Programming is a craft. It would make more sense to develop an apprentice system. You start as an apprentice, move to journeyman, craftsman, and eventually master. Then your brain rots and you move to management.

  265. Lousy comparison by Mr.+White · · Score: 1

    When you build a bridge, lives are at stake. That is the reason for the regulation. When you're a programmer, it doesn't make much difference if your end product just happens to crash an end user's machine every 10 minutes. Annoying? Yes. Dangerous? No.

    Additionally, when you're done coding, your product is tested for problems. Problems can then be fixed. But once you've built a bridge, that's it. You can't really improve on it.

    Programmers can correct each other's work with no trouble whatsoever, but once the bridge is built you're stuck.

    Witold
    gwu.edu/~chrabasz

    1. Re:Lousy comparison by Mr.+White · · Score: 1

      The point that I was trying to make is that you can tinker with the code until it works. You test it and improve on it. For an engineer, that is not really an option. Either the final draft works or it doesn't. That is why a programer can get away without certification and an engineer can't.

  266. Licensing Addresses Ethics, not Competence by Eustace+Tilley · · Score: 1

    Requiring a licensed developer to sign off on all work over a certain (high) monetary value would give power to a code of ethics. There is no need for the licensing agency to be at all concerned with who is competent to program, only who has failed to comply with ethical standards such as the Coders Credo. No formal training is required for someone to "act in a manner that is in the best interests of their clients and employer, consistent with the public interest," or to "be fair to and supportive of" his or her colleagues.

    It has been suggested that coding in an Open Source environment resembles the current practice of law. In New York, for the most part, the attorneys who lose their licenses to practice do so because they have taken clients' property, not because they do not argue well. I believe that coding practice would benefit from something similar, something beyond a lawsuit-at-a-time that would discourage swindlers.

  267. Death to the GPL by ChrisGoodwin · · Score: 1

    Professional licensing means death to the GPL. Who wants to spend thousands of dollars to become a professionally licensed or certified programmer in order to write free software?

    --
    Pretend there is some witty statement here.
    1. Re:Death to the GPL by Assistant+Madman · · Score: 1

      Bollocks. I've already spent many thousands of dollars attaining my degree, and have no problem writing free software. It's the prinicipal and spirit of the GPL that matters, in the same vein as volunteer work to benefit the community. Otherwise you may as well work for Microslut.

  268. Exams by ClarkBar · · Score: 1

    Now I didn't read the article, but being (hopefully) an engineer in traning I feel that all people that wish to be "certified" for anything should take an 8 hour exam (twice) like the FE(aka EIT exam) and must participate in some sort of apprenticeship program like engineering. After going through my first round of that tourture I can tell you it will really show the difference between the people that dabble in coding and the "Profesional Coders"

  269. Managers should be certified, not coders. by chris.bitmead · · Score: 2

    The main problem with software projects is not bad coders (although they are plentiful too), but bad management.

    Managers have very little understanding of both how hard software development really is and the need for maintenance. Managers think in terms of "when will this software be finished". In reality, even a modest project will need probably years of maintenance to bring it to a bug free, reasonably complete state.

    That's one area where free software does tend to win out - the author will often maintain it for many many years slowly ironing out the glitches. A lot of proprietry software get's slapped together. When it looks sort of like it works the coder gets shunted onto the next project. (Then he gets fed up and moves onto the next job). Meanwhile the code undergoes severe bit-rot.

  270. Every life/death program should be open source by Le+douanier · · Score: 1

    I think that there should be a law to force every software that can cause death if buggy to have is source public so every one can see if there is a flaw that can cause this software to kill people.

    Even in the case where nobody else than the original producer of the code can change it (i.e. the code not being truly open source) it would be usefull because people can point out the problems and every slashdot reader is aware of the power of peer review in bug hunt (the harder isn't to fix a bug, it is to track it down).

    --
    "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
    1. Re:Every life/death program should be open source by Le+douanier · · Score: 1


      I'm French and our country used a lot of nuclear plants. I've recently heard that there may be problems with the Y2k flaw that could compromise the safety of the nuclear plants (hopefully not compromised to the point of causing an explosion but I'm not that reassured either). And if a country like France can have problems with their nuclear system what can whe think about countries less secure like the ones in the ex-USSR?

      I wasn't thinking about nuclear plants when i posted my comment (so the word every is false) and I don't think that military systems should be open either. But for more common systems that can cause death the sources should be available.

      And for the "Companies that write software programs for life cancelling projects tend to implement huge efforts to test/catch and repair software bugs" i would reply by saying that I have read an article about the American society for routing planes (I don't remenber is name) was discarding his own software because it was an pyramidial software of more than 2 millions of LOC and that they couldn't change it easily. I can say that they have got the wisdom to discard a potential dangerous program but that mean that they made a program where they couldn't repair software bugs in it. I'm not sure that this is the only case of a monolithic software being used in life and death environment, and i'm not sure the others have been discarded when potentially dangerous.

      --
      "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
    2. Re:Every life/death program should be open source by daviskw · · Score: 1

      Bullshit!
      What are you going to do? Open Source all code used to run a nuclear generator, or the space shuttle, or even a cruise missle. Companies that write software programs for life cancelling projects tend to implement huge efforts to test/catch and repair software bugs. What you are saying is that you want some Joe nobody looking at the control software for a 747 and seeing if he can find a bug in it. I can just see being an engineer on that type of project. Having to tell six thousand people that line 2393 doesn't have a bug, it just looks like one.

      Open source isn't the solver of all problems. It just replaces your current problems with a whole set of newer, more irritating problems.

      --
      Beware the wood elf!!!
  271. Certification by SheldonYoung · · Score: 1

    People who create software where human life is at risk, such as aircraft and health monitors, must be certified. I do *not* want a 2-year VisualBasic programmer working on the cruise-control system for my car as his first C project. And if programmers are becoming harder to hire, especially experienced ones, companies may resort to this.

    In general, I don't think certification is needed for work that is not as critical. Even a certified individual can make crappy software, so the only way to stop them is making people who charge money for software ACCOUNTABALE for quality of said software.

    If a company builds me a crappy car and it's free, no problem. Make me pay $35,000 for a crappy car and I'll get very angry and wonder what they really did with that $35,000.

    But it won't happen, not as long as users are willing to put up with bugs, misfeatures and blatant security holes in commercial products.

  272. Lemme tell you about the iron ring... by Merk · · Score: 1

    Here in Canada engineers who pass through an accredited engineering program receive an Iron Ring just before they graduate. This ring is given in a somewhat secret ceremony and represents the responsibility of being an engineer. Unlike many other professions, engineers often build things which, if they fail, can kill many people. This is the origin of the Iron Ring and the ceremony surrounding it -- and to a lesser extent the requirement to be certified as an engineer.

    In the very early 1900s engineers had been building a bridge near Quebec city. While workers were finishing up the bridge it buckled and collapsed, killing around 90 people. 10 years later the second bridge was almost finished, when it too collapsed and killed 11 people.

    After an investigation it was determined that both of these disasters were due to faulty engineering. The engineers had not properly calculated the loads and stresses the structure would have to bear and because of this the structures had failed.

    The iron from these bridges had been stored in a huge warehouse, and until it was all used up, iron rings were made from its metal. For the past 75 years or so these rings have been given out to graduating engineers to remind them that in practicing their profession they are taking responsibility for people's lives.

    I don't know how it works in other places, but here in Canada you have to be a professional engineer to sign off on blueprints to a bridge, or other technical engineering documents. This is just like how you have to be an MD to offer your services as a surgeon, etc.

    Whether this sort of certification makes sense for people writing code really depends on what they're doing. Someone who's making a javascript popup on a web page isn't taking people's lives into their hands. Certification for them makes no sense. But what about someone writing a control system for a nuclear power plant, or for an air-traffic control system?

    I think certification has its place, and while most programmers can safely say it's unnecessary for their job, other times I think there should be accountability. Who knows, maybe this Y2K stuff is as serious as some people say, and it will be the Quebec Bridge for programmers.

    1. Re:Lemme tell you about the iron ring... by Merk · · Score: 1

      Nope, all accredited engineering disciplines. I happen to have mine from an Engineering Physics program. All engineers at my school get them: Civil, Mechanical, Electrical, Geological, Mining, Chemical, Eng. Chem, Physics, even Applied Math.

    2. Re:Lemme tell you about the iron ring... by Assistant+Madman · · Score: 1

      I think the poster may have been talking about McGill, which is offering a software engineering course and their entire engineering program is in danger of not being recognized/certified as a result.

  273. most customers don't want high-quality software by dewey · · Score: 1

    Customers who really, really want code that never crashes usually get pretty close to perfect quality. For example, NASA and a few other organizations require this level of robustness. Also, a lot of embedded systems achieve a high degree of stability.

    But most people who buy software -- end users in the case of commercial software or project managers in the case of custom applications -- will settle for code that runs correctly most of the time. Once that level of quality is satisfied, it doesn't matter if there are a few bugs remaining; they can live with those. They'd rather have software that is fast, first to market, standard in their industry, or buzzword-compliant ("internet enabled" seems to be in vogue these days).

    I think it's pretty easy for errors to slip through into final versions of software because the priority is on getting the project complete rather than tracking down the last few bugs.

  274. the bridge analogy by dewey · · Score: 1

    >some folks here compared programmers to some other branches (building trade, ...)

    As long as we're making the analogy of bridge builders to programmers, let's take it all the way!

    Just as computer systems written in the 1980s and before may fail in the year 2000, so will bridges that were built 20 years ago. Bridges need repaved and repaired every few years to stay in working condition. So does software.

    I guess the difference is that Y2K failures will happen suddenly whereas pavement degrades more gracefully. But the point is that bridges built by civil engineers fall apart and need to be fixed, even though the designers are certified and licensed.

    Somehow, software is expected to be correct the first time and forever whereas roads, buildings, etc. are expected to require near-constant maintenance to remain in service.

  275. Great for commercial software, not for OSS? by Phase · · Score: 1
    Just for humour's sake let's assume that Microsoft could afford the time and effort to get their programmers accredited. Then let's wonder how many hobbyist programmers could afford this, or how many have been programming for 12 years and can prove it.
    Are we to expect all Open Source contributors to be accredited? Surely not? So what happens when companies feel forced to protect their rears by decreeing that
    "all software used here must be written entirely by accredited programmers"?
    What happens to open source? What happens to "amateurs"? (and we know unpaid code is often far better). The key is that while many OSS coders are equal to their commercial counterparts they may lack this piece of paper.

    Software is like sex - you don't need a licence for it (with apologies to Linus)

    1. Re:Great for commercial software, not for OSS? by Salamander · · Score: 1

      >How many OSS programmers even use software engineering techniques it all? How many have read and used Booch/Rumbaugh/Jacobsen? How many do UML/Cue cards?

      I agree with most of what you say, and absolutely agree that there's a difference between OSS and professional development. I've mentioned many times how OSS folks have the luxury of stinting on undesirable tasks like documentation and testing, and often do so, while professional programmers must live up to a more rigorous standard.

      However, the precise examples you mention make me shiver. Standard notation and methods are very important and useful things for engineers, but I would contend that Booch/UML/etc. have not yet been accepted even by the existing professional software engineering community as a standard at the same level as standards in other engineering disciplines. IMHO they don't even deserve such status; all the buzzwords you mention have to do with one particular OOP/OOD perspective or interpretation. They're an instance, if you will, of general OOP/OOD, and OOP/OOD is itself an instance of more basic modularity, encapsulation and information hiding principles. There are plenty of perfectly viable alternatives, and plenty of well-educated well-trained fully professional software engineers who prefer those alternatives. Acting as though everyone who doesn't use UML is something less than a peer to those who do is IMHO painting with too broad a brush.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  276. This guy doesn't get it by PenguinDude · · Score: 1

    "So why didn't all those computer professionals do the ethical thing and prevent or blow the whistle on the year 2000 computer problem... "

    They DID! But, at the time, it was considered an acceptable trade off. Even now, with as cheap as memory/disk space is, consider this. On mainframe computer systems, with programs written in COBOL and charged with the task of sorting though, say 40-50 million records a day, 2 bytes can add up quite quickly. 2 * 40,000,000 = 80,000,000 EXTRA bytes of data. Harddrives and tape drives for, say Tandem mainframes, aren't near as cheap as they are for PC's. It's a whole different ballgame. And because of this, people carried these habits from the mainframe world to the PC world.
    Would certification of programmers early on helped avoid the current Y2K "design flaws"? Nope. The programmers did the most sensible thing (at the time, of course). No one predicted that these systems would still be in use today.

  277. Similar to licensed architects? by mke · · Score: 1
    In order to become a licensed architect, one usually needs an Masters of Architecture degree from an acredited school, and several years of internship, working for a licensed architect.

    Such a system seems reasonable in the field of software engineering. No one is precluded from working just because they don't have a degree. But at the same time, those who are held responsible, are the ones who have completed graduate coursework in the field. Without trying to start a debate over the merits of graduate school (or lack thereof), I will assert that there is something to be said for formal education. Likewise, the internship period gives people a chance to learn from experiences that would not be possible in academia.

    There is an interesting question, however, of how to bootstrap such a system. Automatically license anyone with an MS in Computer Science and 5 years of experience?

    No system is going to please everyone, but it seems appropriate to have some form of accreditation. And rather than reinvent the wheel, we should use the practices of other engineering disciples as our examples.

    (Note: there is an inherit assumption in all this that writing code is, in fact, an engineering science and not an art form.)

  278. Re:Markets, Cerrification, & Licensing by Jburkholder · · Score: 1

    With the examples of engineers, lawyers and doctors, isn't the presumption that an un-licensed practicioner could some how cause you greivous harm (bad engineer = bridge collapses killing hundreds, bad lawyer = innocent defendant goes to jail, is executed, bad doctor = dead patient)?

    And then the control of a license is then intended to promote confidence of the public that bridges won't fall, laywers won't bungle your case, your doctor won't amputate your head?

    Have we now elevated practice of software development to this level where we need assurance that the public will be safeguarded from incompetent code that will cause some serious damage? (like your spreadsheet program crashes every time you open another specific app and you must reboot wour win-tel PC, and after this happens the nth time, you jump out a 49th floor window? ;-)

  279. Exactly: Re:Yes, for projects concerning ... by Eric+Savage · · Score: 2

    As a [former] civil engineer, I am intimately acquanted with the reason that engineers are registered. This is because when a civil engineering project fails, people can get killed. This trickles down into alot of legal responsibility, but that is the heart of the matter. There should be a federal certification/registration process that identifies those capable of handling critical software applications. This would apply to safety and medical software as well as automotive, monitoring, and many others. Keep in mind that the american professional registration project does not require everyone to get registered, just the person that stamps the plans. This person can be (and usually is) employed mainly to review plans. Software kind of works this way now, with Q and A, but I would feel safer if a process was put into place for software that is responsible for my life.

    --

    This is not the greatest sig in the world, this is just a tribute.
  280. Certified Engineers' low self esteem complex by 0xdeadbeef · · Score: 2
    Here's a quote from the article:


    "Many have called themselves software engineers," said John R. Speed, executive director of the Texas Board of Professional Engineers. "Wrong. They're the local music dropout who chooses to use that title."


    At my school, the EEs where always whining about the use of the term "software engineer(ing)" (and it was mainly EEs, I guess because they took so many computer classes). And they also tend to have this attitude that programming is easy and anybody can do it with little education. I even heard this from managers at my old co-op job.

    And guess what, at my old co-op job, the code written by engineers was abosolute crap! And the EEs that I taught were constantly whining about the workload of CS classes.

    Not to pick on EEs particularly (because hey, you can't spell geek without EE! :), but it seems to me that a lot of "official" engineers have some sort of ego problem associated with their title, to the point that they get insulting and childish when the word "engineer" is used in any other context. (And geez, this was the executive director of the Texas Board of Engineers talking to a reporter!) Are they afraid their cherished label will be co-opted by us unwashed programmers, like script kiddies calling themselves hackers or something?
  281. Programming is a different kind of Engineering by scruffy · · Score: 1
    Engineering (except for the software kind) is constrained by physics whose primitives (e.g., atoms) are pretty well-defined with well-known aggregate behaviors. Also, there is substantial agreement on the language and analysis of physical design.

    OTOH, programming is constrained by computability and computational complexity with no fixed primitives (e.g., different processors have different instruction sets, different OSes have different APIs) and where the main analysis technique for large programs is trial and error (I would say testing is at best a disciplined way of performing trial and error). Also, there is no agreement on instruction sets, OSes, or languages (yes there is much similarity, but even Linux needs an LSB). E.g., in US high schools, C++ is currently required for college advanced placement tests. Can you imagine the howling if C++ were required for certification tests?

  282. certification, degrees, and economic class by drenehtsral · · Score: 3

    I find the idea of requiring certification a really sad idea. I am happy to be in programming, because i enjoy doing so, and i have been doing it as a hobby since i was 9 years old (i started on a franklin ace 1000).
    I came from a poor working class family, and i couldn't afford to go to college, and without that education, there are many fields that are instantly closed off to me... I would have like to have gone, but i just couldn't. I have been working as a programmer for a local company for the last 3 years. I've done embedded microcontrolled code, i've done windows UI code, i've done database coding. I have always recieved the needed training at work, (usually in the form of a textbook and some time to try stuff out).
    I cringe at the idea of regulating this field, because it is one of the few remaining fields where a genuine interrest in the work (and possibly an apprenticeship) can get a job that you can support yourself and a family on. It's one of the few fields that you aren't locked out of instantly if your parents can't afford to send you to college. It's one of the few fields left where even though many people look for those with degrees, if you have enough work experience you can still have a chance.
    Loosing this freedom in a blind rush to regulate would be a very sad thing.

    --

    ---
    Play Six Pack Man. I
    1. Re:certification, degrees, and economic class by porkchop_d_clown · · Score: 1
      One last thing about these "case studies". For each "programming since some single-digit age" crack professionals who would supposedly lose their job, there are 50 incompetent programmers-for-dummies getting the same level of credit and recognition in the work place. I for one would like to be recognized as a qualfied employee who is professional and aims for the highest quality. Regardless of my "background", no employer can check up on my supposed skills since they were all obtained via NDA's and intellectual property agreements. With certification, I can walk proudly into a hiring manager's office, write a number on a piece of paper and walk out with the manager happy and myself happy. No muss. No fuss.

      Well said.


      --
    2. Re:certification, degrees, and economic class by MrSparkle · · Score: 1

      And, given your obvious motivational and salesmanship skills, regardless of your certification, you would probably be hired.

      I think a lot of people, my noting case after case of someone who *may* slip through the certification cracks miss the overall point that certification is still open to all those who wish to achieve it. Most of these people who claim they would be left out seem to be prime certification candidates...your years of experience, for example, could propel you into a school scholarship. So your dream of attending college is quite feasible.

      Also, no one is talking about a "blind rush". I think that everyone who thinks certification is bunk is missing the writing on the wall. If programmers insist to be considered designers and engineers rather than blue-collar tech workers, then we will soon find ourselves in the same predicament doctors, lawyers, engineers, and, more recently, nurses found themselves: poor treatment by a business world that did not see the obvious value of such learned specialists. Once MD, RN, PE and Bar licenses were provided, business and people alike were shown that there is a limit to incompetence and that high quality can exist.

      One last thing about these "case studies". For each "programming since some single-digit age" crack professionals who would supposedly lose their job, there are 50 incompetent programmers-for-dummies getting the same level of credit and recognition in the work place. I for one would like to be recognized as a qualfied employee who is professional and aims for the highest quality. Regardless of my "background", no employer can check up on my supposed skills since they were all obtained via NDA's and intellectual property agreements. With certification, I can walk proudly into a hiring manager's office, write a number on a piece of paper and walk out with the manager happy and myself happy. No muss. No fuss.

      Jesse

    3. Re:certification, degrees, and economic class by MrSparkle · · Score: 1

      Insurance...insurance...yeah, I like it. Guess that makes me old. Oh well. Insurance means more time with my daughter and less time hoof pounding and chest beating so I "look" better to more and more employers.

      As for survival of the fittest...you're right. That's what an anarchic job market creates. Unfortunately, the fittest are *not* the best and brightest. It's usually the guys with low handicaps and that "million dollar smile". American business is built on the sale, and being hired is no different.
      I think a lot of people hold the anarchic viewpoint since the corporate world is experiencing a shortage. Anybody who can claim to know what a conditional loop is will be hired. If you want to know what it's like when this kind of job market bombs out, ask some certified and non-certified architects...or some c/nc aero-engineers. Compare the stories and see which side you would want to be on.

      As a side note, it's funny to see how "personally attacked" some people feel on this issue. History has shown that there is room for both and people who truly love their craft exhibit ideas and solutions that transcend this certification issue. Of course, there is only room for one best, and so there needs to be a platform for the rest of us to sit...because, frankly, I don't think my daughter cares what kind of a programmer I am. And if *that* kind of insurance scares you, well, that's you. Variety is the spice of life, they always say.

      Jesse

    4. Re:certification, degrees, and economic class by Sporto · · Score: 1

      I am speaking for a large number of very bright non-mainstream educated people when I say that it was our greatest blessing (and a curse upon the tendons in our fingers) that computing is as open as it is. It will, (let's drag our feet) eventually change, but as long as the technology keeps changing, their is no sense in trying to establish standards. That's why the bright people I know prosper in computers. I'm lucky I got in when I did. You probably are too.
      I do UNIX ESPECIALLY BECAUSE there is no license/cert whatever, and everywhere I go they wish they could keep me. I live in a beautiful world. My education (the only person in history who will ever get the "History of Ideas" degree from Simon's Rock /(Early)?(of Bard )?College( of Bard)?/) being unknown (super-unknown) however valuable (mountains of gold, cut diamonds, emeralds the size of your fist, and rubies that could choke a python) is like Linux (new, scary to the outside observer) and therefore tough to market.

      I like Finnegan's Wake and the Game of Go

      I code Perl and I like it.

    5. Re:certification, degrees, and economic class by Sporto · · Score: 1

      You want a piece of paper to speak for you? I don't. I want an anarchic job market. Survival of the fittest.
      Sounds like you want some insurance. Old people like insurance.
      Hate to slice and butter bread like this...

    6. Re:certification, degrees, and economic class by Sporto · · Score: 1

      Are you trying to say there is more to life than work and computers and family?

      Nawwwww. Couldn't be. Where would they keep the RAM? (Feed it to the Oracle)

      Pythia save us!


      When that
      poppa paid for,
      once-in-a-lifetime,
      parade past the pews in white
      comes along,
      that sweetheart of a daughter of yours,
      the apple of your eye,
      her parent's pride and joy,
      will wish you hadn't just spent ten grand on recertification in the new version of C/C++/C^^^^ V.27b/Z (stroke) E

      I can play golf with flat feet!!! This is SO cool.

  283. Testing, not certification by fornix · · Score: 1

    Where life and limb are at stake, the software must be comprehensively tested. In these cases, no programmer should be trusted to have written bug free code. A physician should be liscensed because his actions (or lack thereof) can lead to irreversible loss. On the other hand, software won't lead to such losses until it is unleashed on the public. There are many opertunities to test it before releasing it in a capacity where lives are at stake.

    Crap in, crap out, they say. Will a "liscensed" programmer be less likely to create bugs? Perhaps, if the lisensing requirements relate to techniques in minimizing bugs. But it's probably more important to look at a programmer's past projects rather than his certificates when hiring for such a job.

    Perhaps the licensing should be used in the context of software testing, becauase when life and limb are at stake, the testing is more important than the programming (because you can't blindly trust anybody's code in these situations). You write your traffic light controller software to meet a spec. You send the code and the spec to the licensed testers (in house, or a specialized testing group) who then run it through a bunch of tests and then certify it as "safe" or "not safe" with an appropriate insurance policy behind it all.

  284. Effects on OSS? by Cb22 · · Score: 1

    This would be a huge roadblock for Open Source stuff.. You'd have to prove that everything submitted to an OSS project came from a certified programmer to be taken seriously by corporations.

    Plus, given the way Microsoft stacks up against OSS so far, I'd say that the certification idea would do absolutely nothing to get the desired results.

  285. Certify managers and executives by DonkPunch · · Score: 1

    I think you've made a good point here. The average programmer I know is FAR more concerned with quality than the average manager or company executive. It is programmers who write "The Right Thing" with capitalization.

    As I read the code of conduct, my first thought was, "This is ok with me, but some of my former bosses would have a huge problem with it." The unfortunate reality of this industry is, "We must ship by _____ and we'll fix the bugs in the next update."

    It might be a good thing if a programmer could go to a manager and say, "No. I won't compromise. Doing so would violate my Code of Conduct."

    Having said all that, I think the article could best be summed up as an attempt by some people to create a new industry for licensing software developers. The frequent references to Year 2000 problems -- "Y2K" to the insiders ;) -- are nothing more than blatant buzzword-dropping.

    --

    Save the whales. Feed the hungry. Free the mallocs.
  286. Ace 1000! by DonkPunch · · Score: 1

    Wow, a Franklin Ace 1000! That was my SECOND computer -- it was an upgrade from a short-lived original TI 99/4 (chiclet keyboard -- ack).

    I LOVED that thing. It was the equivalent of a souped-up Apple II+ with a much better keyboard (IBM Selectric-style with numeric keypad). I remember doing Pascal and 6502 asm on that bad boy....

    Oh, I agree with your post completely (back on topic). We have a unique profession where someone who can't afford a college education can still bust their tail, get good, raise a family comfortably, and contribute something really useful. I would hate to see that go away because of Y2K hype and opportunists who see a chance to make a quick buck with "licensing" courses.

    Congratulations on your success as a programmer, and thanks for the nostalga hit. :)

    --

    Save the whales. Feed the hungry. Free the mallocs.
  287. What is a university? by spiffyboy · · Score: 1

    For engineers to get a 'license' to build a bridge, they need to go to university.
    And if you think they will start building bridges right after that, then stop dreaming.
    The same for Software engineers (university term for coders, IMHO), if you wanna build that Airport Information system, you have to go to university and learn your shit first.
    What scares me, is the _extremely_ poor quality of Microsoft Education that is out there for free and people can sit in, marvel at MS-proprietary Visual Basic Construction Blocks and actually getting away with this as education....

  288. Ethically yes, Realistically no by skrysakj · · Score: 1

    The idea has been around for a long time but implementing it is the hard part. Well I should say getting widespread acceptance is the hard part.

  289. Software Engineering is finally growing up. by Dhrakar · · Score: 1

    Computer Science (and, by extension, Software Engineering) is finally beginning to 'gel' as an engineering discipline. That is, we finally have a large body of practices, tools and examples (both good and bad) that can help to guide future projects. This is the very same process that other engineering disciplines (such as CE, EE, ME) went through on their way from an art to a science. Unfortunately, the field of SE has only been around a very small fraction of the time that the other disciplines have. Thus, the growing pains we are experiencing as our field matures is much greater than that expereinced by, say, ME (which has had hundereds of years to sort itself out).
    Certification and/or licensing is just the next step in the life of our field. It simply validates and regulates those things that we already know how to do. It does not prevent innovation in new areas of SE and/or programming. Just as there is always room for 'tinkering' and experimentation in electronics, there will always be room for experimentation in programming.
    Whether we like it or not, our efforts can have an impact on thousands (if not millions) of lives every day. It is our responsibility to ensure that we have done our best in producing software and systems. In essence: it's time to grow up.

  290. Licensed to Code by JoeWalsh · · Score: 2

    Licenses and review boards, while sometimes providing necessary checks and balances, most often serve simply as 1) good old boy networks, and 2) barriers to entry. I don't believe we need either of those things in the world of software creation.

    We already have certification in the "IT" industry. That's one barrier to entry, and I for one feel it has done us absolutely no good and may have even done some harm. Would things be better if coders had to pass some sort of exam to show that they knew what recusion is, how to make a flowchart, when to use global vs. local variables, and so forth before they could legally practice their craft?

    How many free software projects would suffer if only licensed coders could produce publicly available software?

    How many great home-brewed programs would never come to be if the people who wrote them had to first go pass the coding bar exam?

    We don't need licensing in our industry. It will only serve to focus more power into the hands of large corporations, and shut down the two-guys-in-a-garage type of operations that have been pushing the frontiers for the last twenty-five years.


    -Joe

  291. Horse Pucky! by 7dragon · · Score: 1

    BAR Association - Classical Monopoly
    Engineers - Ditto
    Trade Unions - Nice idea.... Ditto

    Trade Associations are nice idea in a trustworthy society, but considering the number of bald-faced liars that exist per square mile in "civilized" countries, I'd say it's a great way to start manipulating other people.

    No 1 person or group of people has the right to tell me the value of my work. My valuable creative skills are the judge of my work. My work tells you the level of my skill.

    If anything the fundamental, basic identifiers of good programming and design should be taught to people so they at least know how to look for signs that the work was done well.

  292. Two points by Salamander · · Score: 3

    The first, point, similar to that brought up by a previous poster, is that the ladder of programming difficulty/competency has many rungs, and those on lower rungs don't always realize how many rungs are still above them. It's possible to make very rapid progress learning to program, and the most visible results tend to occur at the earliest stages. So someone just learning sees that in a very short time they've learned to produce something that _looks_ 90% similar to what the pros do, and they think they've learned 90% of what there is to know about programming. They think that a license can't be worth much if they fulfilled 90% of the requirements in a few weeks, and they also have trouble accepting that there are still meaningful distinctions to be made between programmers with more experience than themselves.

    The second point is that many posters here seem to be arguing from an unstated belief that it's not possible to evaluate programmer skill in any meaningful way whatsoever. Yes, I know some are presenting arguments in different directions, but the most common seems to be "tests are meaningless". I could be polite in my response to that, but this is slashdot so why bother? ;-) Basically I think this view is most commonly held by those who think they're super-studly programmers because they can hack a little JavaScript or whatever but don't do very well when real programming knowledge is required because they don't even understand what the important problems/issues in real programming are. The problem can't be with them, of course, because they're elite, so it must be that the evaluation methods are flawed. I think the real pros are more likely to accept the possibility that software engineers' levels of competence can be evaluated pretty effectively, and concentrate on different arguments against licensing or certification.

    Personally, I don't much like the idea of government regulation and such, and a single written test or series of tests doesn't seem useful to evaluate someone's skills across the whole spectrum of what software engineering encompasses. However, I kind of like the idea of a "guild hall" system in which a local group of "master craftsmen" who are actually familiar with an individual's work (not just coding, but also specification, testing, scheduling, etc.) can confer journeyman status or higher, and in which the _customer_ can decide what their requirements are for involvement or engineers at some level requiring such proof of competence.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  293. Certification would be good for programmers by Russ+Nelson · · Score: 1

    Certification would be good -- we could reduce the number of programmers, and get paid *even more* than we currently are. We have to get some way to keep companies from hiring those unreliable uncertified programmers, though. Maybe we could get the government to prohibit the practice of programming without a license?

    Hey, it works for doctors and lawyers. Why should programmers miss the gravy train???
    -russ

    --
    Don't piss off The Angry Economist
  294. bullshit not! by segmond · · Score: 1

    There is no age regulation to get certified, the thing is who is to set the test? Chances are the test will not be broad enough. Take a look at Unix certification! WTF does that mean? There is nothing as being Unix certified. You can be Solaris certified, after you take $2,500 sun classes, or HPUX certified after you sell an arm and a leg! Hence if there is going to be certification for programming, does that mean C certified , C++ certified? LISP certified? Assembly Certified *gasp* ?? Chances are these tests will not test your logic as a coder, but instead test you and ask you stupid questions, what is object oriented programming, define this and that. Programming is a very complicated stuff, the test will almost have to be in the form of an IQ test. Asking me questions about database programming, when I am unix kernel hacker is irrelvant. Asking me questions about OS internals when all I am is 3d graphics programmer is also not that important.

    Certification? YES!
    Now? Nope.
    Tomorrow? Perhaps.
    Discriminating? Yup
    Useful? Yeah right, as good as a CS Degree.

    The reason certification was brought up was due to the fact, that people should be certified when doing works related to public saftey, the fact is that programmers are lazy by nature, and usually will take the shortest route possibly to make time to Quake and IRC, thus certification will not make the programmers less lazy and more careful, Hrm, unless of course the certification will be taken out if the programmer is found to write dangerous code. HRM!!?? WTF is to say what is a dangerous code? just cuz I say
    2 + 2 = 5,
    if 2 + 2 = 5 then 2 = 4
    doesn't mean it is dangerous, perhaps to your weak undeveloped mind.


    In anycase, I give no FUCK, Why? Look at degrees, computer science degrees, what are they worth? Certification or Not, Degree or Not, I care not. I love to code and I will code, if you will not hire me, I will code and put your company out of business.

    Bleh, I could write and write and write, but at the moment my brain is in such a unfscked state, that tis better to stop.

    I love to Code!
    fuck your degree and certification.

    --
    ------ Curiosity killed the cat. {satisfaction brought it back | it didn't die ignorant | lack of it is killing mankind
  295. Licensing is just an attempt to limit competition by AngusSF · · Score: 1

    Many modern economic theorists, particularly those of libertarian persuasion, now believe that licensing is primarily a market response to keep competition down.

    See, for example, "Government Licensing: The Enemy of Employment" by Steven Yates (http://www.self-gov.org/freeman/9607yate.html)

    "Not long ago I found myself without a job. The experience offered me some insight into the causes of unemployment in American society. I knew that occupational licensure was both a stumbling block to would-be entrepreneurs and a spur to joblessness because it prices entry into markets out of many people's reach and creates disincentives to hire. I now have firsthand experience of how government bureaucracy systematically blocks individuals' efforts to offer services to others in order to improve their own well-being. .... "

    Some states are finding it difficult to implement licensing regs. See, for example, http://www.ij.org/publications/liberty/1997/l%5F6% 5F97%5Fb.html

    >> In May, the Institute won the opening round in its challenge to California's cosmetology licensing regime. In Cornwell v. California Board of Barbering and Cosmetology, U.S. district court judge Rudi Brewster in San Diego denied the state's motion to dismiss, letting stand our claims that the licensing regulations violate the due process, equal protection, and the privileges or immunities guarantees of the federal and state constitutions. > Sue A. Blevins is a writer and health policy consultant based in Boston.

    >> Executive Summary

    >> Nonphysician providers of medical care are in high demand in the United States. But licensure laws and federal regulations limit their scope of practice and restrict access to their services. The result has almost inevitably been less choice and higher prices for consumers.
    This is what we have to look forward to if we let the camel's nose into this tent. IMHO YMMV ....

    --
    "A gun is a tool, Marian. No better, no worse than any other tool. An axe, a shovel, or anything." Shane (1953)
  296. Certified programers already exist. by telos · · Score: 1

    Check out the programs at your local junior college. There are certification programs that exisit within the realm of programing. Here, I, an accountant, am half way there for a network administration certification and a third of the way there for a programing certification. Yet, I am still not the person you want to hack code.

    Considering that, I don't put much stock in "certified" programers. Oh yeah, and don't for get about the MSCS' out there either.

    Ergo, I think the quote is "RUN AWAY! RUN AWAY!"

    --
    "Alt-F4 that's for quitting" quoth Dan_Wood
  297. Ethics versus Character by BaronCarlos · · Score: 2
    I've said it before, and I'll say it again, "This is an issue of individual character."

    In the short term, shallow view of things, certification WILL make a difference. In the long term, a certification program will only be a dreadnought of a civil program that will only impeede the progress of Computer Science, or Science and Engineering in general.

    The way I see it, (And I'm just a lowly geek on the food chain) it's a pandora's box of External Govornment. And as I've illustrated in other responses to other articles, External Government tends to take away the liberties of the Individual, in order to control the individual's lack of self-government.

    In otherwords. We DEFINATLY need a certification program, IF (and only IF) there is a lack of integrity in programmers, coders, etc.

    Personnally, I would say no. This Y2K issue is a poor example of a lack of integrity in the Computer Science community, since it was "created" well before the PC revolution.

    The article does make good points about the internal government of the individual coders, corporations, and users in it's creedo. But the enforcement of that creedo is something that does not belong in an External Sphere. It belongs in the economics of a competative environment. Good code yields good results. Bad code yields nothing, except a waste of time.

    Thank you,
    *Carlos gets off his soapbox, again.*
    *Carlos: Exit Stage Right*

    "Geeks, Where would you be without them?"

    --
    *Carlos: Exit Stage Right*

    "Geeks, Where would you be without them?"
    "Got Linux?"

  298. How many of you are certified readers ? by d_edge · · Score: 2

    Programming,like reading, is a SKILL; a tool to be used to get the job done. There is no reading certification to ensure that you can read/write documents properly. Programming certification is senseless. Attitude, Willingness, Learning Curve, Experience...those are some of the parameters to screen and balance in programmers.

    I have a degree in software engineering, that doesn't automatically make me a nifty programmer, most of you could run circles around me coding...But would you get the job done?...properly?...within budgeted time and costs? ..if ( *insert deity here* Forbid ) you should die or be maimed in such a terrible way that you could no longer keep working...could someone easily take over your work ?

    Those are the questions suits ask programmers, and that is probably WHY someone wants a certification...It's a matter of reassurance.

    So...If you can convince anyone that you'll get the job done right, there's no need for certification. And if you code just for the kicks of it, stop whining, certification probably won't matter to you anyway.



    --
    I am not young enough to know everything. --Sir J.M. Barrie
  299. It's ALL about blame! by Cpt_Kirks · · Score: 1

    Some PHBs would love certification so they would have someone to blame if things go wrong. They make a stupid decision, it comes back to haunt them, who do they use as a scapegoat? Joe hacker, with no formal education, or Mr Certification, who BY LAW is supposed to know code?

    It's the same reason the PHB types choose M$, they (stupidly) think they can blame (and sue) the NAME company.

    BTW, if degrees count for something, I get mine friday (BS Computer Enginnering Technolgy) YAY!

    1. Re:It's ALL about blame! by Cpt_Kirks · · Score: 1

      Jeez, a degree and I still can't spell!

  300. Lawyers, Doctors and CPAs, oh my! by coyote-san · · Score: 1

    I've seen this argument several times, and it always falls flat on a simple fact. What the authors have in mind is something akin to lawyers, doctors, CPAs, etc., but the industry won't support it. The problem is that holding people to a high standard also requires that they have the final word on their own actions. There's some room for reasonable compromise, of course, but everyone with any real industry experience knows that management is notorious for ordering programmers to ignore what the latter consider critical issues.

    That said, I'm in the ACM and I do follow a code of ethics. The results can only be described as "be careful what you wish for" -- part of my code is that I'll only accept assignments which I feel can be reliably executed by the client... and I've been forced to decertify the entire Microsoft line of operating systems and applications. In some cases I've left existing jobs rather than compromise reliability by porting applications from Unix to NT. No doubt the NYT will now do a followup article on "Prima Donna" programmers. :-)

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  301. Certification avoids Responsibility by Kohath · · Score: 1

    Certification is simply a way to avoid responsibility for yourself.

    A certificate implies that someone has evaluated your skills, and you're adequate for a job. So some moron can hire you without understanding what you can do and what you can't.

    But are the certifiers responsible when you can't do the job? No.

    Is the person who hired you responsible? No, you are certified so he's OK.

    Is anyone responsible? Not really.

    So you've spent a lot of time and money becomming certified so some corporate cowards can have some job security. Not a good deal.

    Any programmer who wants mandatory certification is just trying to exclude other people so he'll have less competition. That's the whole point of occupational licensing and certification in EVERY profession.

    My advice to a smart young programmer is to skip all the formal BS of college and certification and actually BUILD something that's impressive and cutting edge. Put it on your resume. Demo it. You'll get hired by a company. Maybe it won't be a corporate CYA-oriented environment, but maybe that's OK.

    And if that doesn't work, get certified by some software company and go get hired anyway.

  302. Re:Certification creates employability. by Kohath · · Score: 1

    Stop talking to HR people. They don't know anything. Talk to engineers. They know who is needed and who isn't.

    I went looking for a job in Novemberr. Within a few weeks, I had 3 good offers. I have no degree and no certifications. I dropped out of college after 2 years. I never lied in the interviews or on my resume. The offers ranged from $55000-$75000 with stock options.

    You may be right about the doing people a disservice, but that's not my experience.

  303. Programmers v. Engineers by bolie · · Score: 1

    Programming and Engineering are actually quite
    similar. As an engineer who has worked with
    programmers and worked in MIS, I can say that
    the level of creativity required is very similar.
    Engineer has its share of drudge work where you
    spend most of your time essentially following
    building codes and whatever but many engineers,
    especially in design and R&D are solving problems
    that have never been solved before. This
    requires creativity as often there is not one
    simple, technical solution. Engineers have to
    come up with elegant, efficient, safe, cheap
    solutions, something which is not easy and which
    does not lend itself to simple techniques. A
    good engineering solution doesn't just do the
    job, it does it efficiently and elegantly.
    Very often, the better design looks good, too.
    This is very similar to a programmer tackling
    a new program.

    Whether licensing is a good or bad thing, it
    isn't really any different for mechanical, civil,
    electrical, or software engineers. The point
    of licensing in Texas (where I work) is to
    insure that an engineer is a good knowledge of
    the basics and has demonstrated through work
    that he can do the job. It tells you that this
    engineer has a relevant education (or lots of
    experience) and has worked as an engineer for
    a certain length of time. Again, the costs and
    benefits of licensing apply across the board.
    Programming is not fundamentally different,
    even though often the culture is different.
    As someone else said, give it time... most
    engineering disciplines have been around for
    hundreds of years while programming is still
    very new by comparison.

    Bolie IV

  304. Certify s/w architects, not programmers by Big+Red · · Score: 5

    Equating "coders" and construction engineers is not the right comparison. The programmer is more akin to the person pouring the concrete per a good blueprint. When I have seen software projects fail, it was traceable to ill-defined requirements, poor system engineering, or inadequate software architecture. What is needed is a better method of defining a blueprint for software.

    Most schools do not teach the software lifecycle. We do not need to license people in C, C++, Java, etc. We need to train/certify people in understanding requirements and designing software that meet these requirements (instead of meeting the latest trend or technology). We also need to better define the equivalent of a blueprint for software. We should settle on a standard (e.g. UML although not necessary so o-o geared) and then train/certify people on that standard. This will not be subject to the frequent technology turnover seen for implementation. Part of training must include how to form a test plan based on the requirements. Then the output of the programmers can be "certified" against the requirements, this being the proper test for the programmer's work.

    The main failure of MS Windows is to concentrate on "neat" GUI features (a "trend") instead of basic requirements like availability and reliability. There is no word-processing requirement for a help window to grow from/fade to a corner of the window.

    The success of Linux starts from the focus on basic requirements. Linus starting writing what he needed, not something he thought someone might consider "neat". The last major requirement for Linux is operability, esp. ease of use for the less technical. The challenge in meeting this is that it is as not much of a requirement for the people implementing it.

  305. Certification creates employability. by porkchop_d_clown · · Score: 1
    My advice to a smart young programmer is to skip all the formal BS of college and certification and actually BUILD something that's impressive and cutting edge. Put it on your resume. Demo it. You'll get hired by a company. Maybe it won't be a corporate CYA-oriented environment, but maybe that's OK.

    That's great. And how is that smart young programmer supposed to actually prove that he knows his stuff? You are doing programmers a huge disservice by telling them that since a BS or MS is the only form of certification programmers have today, and it's one that corporate HR people definitely look for.

    I've given up trying to convince HR or even programming managers that I've mastered over twenty computer languages, a comprable number of operating systems and that I generate faster, better, more maintainable code than 95% of the people in the business. Why can't I convince them? Because everyone claims that kind of thing and I have no way to prove that in my case it's true. Moreover, even once you're hired into any kind of team development effort it's nearly impossible for management to tell which programmers are really good and which are being carried by the others.

    How can they measure it? Lines of Code? I'm infamous for attacking other peoples code and ripping two-thirds out of it - while still getting the same results.

    A common system of certification would allow me to lay it all out in black and white and would allow management to accurately estimate skill-levels and capabilities amoung their staff.


    --
  306. Programmer's Guild by porkchop_d_clown · · Score: 1

    There are several such "Guilds" - the ACM, the IEEE, to name two.

    The problem is that programming is so dominated by "revolutions" and so driven by young people who (a) don't know they exist and, anywate are (b) too busy burning out to see that the guilds could offer them.


    --
  307. A little touchy, are we? by porkchop_d_clown · · Score: 1

    Sounds like you've collected a lot of shit in your life frpm people who assume that your lack of a degree means you lack the skills, too.

    Do you see why that is? Say a hiring manager is looking at you and someone else who has a piece of paper that says "I know my shit". So, you've got an impressive resume. So what? So did Jeff Papows, till people discovered how much of it was fake. That hiring manager has no way to tell you really do know what you're doing. The degree might be worthless, but it gives him a security blanket he can cling to while he makes that hiring decision.


    --
  308. Falling on your sword... by porkchop_d_clown · · Score: 1
    If an employer asks you to do something that you find objectionable... leave...

    I'm guessing that you don't have any children, do you?


    --
  309. The Hippocratic Oath by porkchop_d_clown · · Score: 1

    Hippocrates' version certainly did. The one given by modern universities has apparently been watered down a lot.
    --

  310. not a good idea by Parothed · · Score: 1

    licensing is not generally a good idea...i remember reading capitalism and freedom by good ole Milton Friedman(won nobel prize for economics...libertarian thinker etc...) and he agrees. What happens when you start licensing is a move to central control by the government. You can eventually end up with something like the medical industry where the doctors control everything from how many people graduate to where graduates work. They can control wages this way etc... Aren't free marketers? don't we want to let the free market let schools make a good name or bad names for their graduates...its not like software companies can't test applicants to see if they are qualified. Above all im very wary from letting the government get involved in anything...cause its so hard to get them out...and the gov usually ends up expanding their power.

  311. Certified == Officially Insane by migmog · · Score: 1

    I always get a slightly puerile giggle out of discussions on 'should so and so be certified'

    .. in my opinion the best programmers often are certifiable if not certified already

  312. Another dumb idea by Richard+Head · · Score: 2

    Just what we need!
    can we hav a cert program for garbage truck workers? "Hi I'm a certified post-consumer material hoister!" what's next? a cert program for shoveling dung? Oops I forgot, we already have a Microsoft Cert program...

    Save the world! Shoot a MCSE today!

  313. Licensing=oppression. by EEEthan · · Score: 2

    In my opinion, there are a lot of ways in which big businesses and our government is trying to exert control over what's going on in the realm of electronic communication. The reason they are doing this is that they cannot survive if they don't. They realize, on some level, that if there is an easily accessible forum for free communication, a lot of things in society won't work, at least not in the same way. They want to control the production of software. But they want to control the production of a lot of things. They need to protect the entire media. They need to maintain their hold on the methods of distributing information, so we'll keep on buying not only software, but cd's, movies, cars, houses, and everything else. If they don't have control over the media, of which digital media will soon enough be the most important form, they won't be able to tell us what to buy. What good are software companies when people are willing to write free code? But more than that, what good is the recording industry if we can all produce cd's on our computers(and there are plenty of musicians who are just as good as the ones they are forcing on us.) What if small groups of people can produce high-quality full-motion video, and publish it to the world via their websites? And they don't put ads in every ten minutes? We all know that this is the 'information age,' right? What this means is that what's most valuable is information. Look, ads are ways of turning media into money. That means that our system NEEDS media. BAD. And if the internet isn't exactly 'owned,' then things are going to change a lot. A lot of people don't want that. A lot of people do. I do want change. I don't know if you do. But there was a culture that believed that land could not be owned. I think that there is a culture which believes that the intellectual space which we have pieced together shouldn't be owned. This is why I switched away from a MS operating system. I don't want Bill Gates to define what MY intellectual space should be like. I like choices, and not between win95 and 98, either. I want to be able to run my archaic 386 if I want, and not be forced to upgrade to the newest thing just to run my OS. The abacus is still around. Ok, this has really turned into a rant, but the point is that licensing is a check on freedom of information, and I dislike that.

  314. It's our duty by shomon · · Score: 1


    A legal quality guarantee document would be so so important imo: Engineers and architects may build the solid structures that a lot of our lives are based on, but programmers, and everybody else involved in the life cycle of some IT related system should be able to give guarantees, or at least be held responsible if they do a bad job.

    We're building the "virtual" structures of the world, and I know that up to say 10 years ago they weren't really that important, every day their importance grows. And with that our responsibility to make them work well also grows.

    Maybe the whole Y2K deal could have been dealt with better had the original programmers been involved legally where possible, or rather, it could have been avoided altogether if there had been already a legal framework to go by to do with making calls direct to the bios (surely the job of the OS).

    So I'm quite happy that slowly the world of IT is getting some regulations and things in. But it's up to everybody to make sure the regulations are put together well and justly.

    Alejandro

  315. Scaling up.. by canter · · Score: 1

    I STILL fail to see where one or two real world projects would not give you the same "breadth of information" that you could get from classes.

    Yeah its rougher the first time for us self-taught programmers (I laugh now that i think back on my first Novell install). But I think we come up to speed faster because we obviously have "learned how to learn" by sweat and coffee, not spoon-fed to us by someone who "knows better". Real world experience is a harsh teacher, but for some of us, that's the way we learn.

    I for one am a self-taught programmer who went back to college for a CS degree. I found it extremely tedious and unrewarding. I used to argue with my "C" teacher about the stupidity of having to put a "break;" statement after each "switch" just to make things interesting.

    Anyhow, COBOL class taught me how to code good, tight reports, and i finally read "The Illiad". Otherwise it was a huge waste of time and money. Give me a manual and a week to tinker, and i'll do the semester's coursework from home.

    I guess I can sum it up best by saying that all a degree proves is that you can PASS TESTS. No more, no less. It proves nothing about mastery of the material, creative problem solving, or that etherial "nose for understanding systems" that make for a truly productive programmer.

    A rebuttal from the one of the unwashed and sheepskin-less code monkeys..
    Canter

  316. Re: Who would you rather fixed your brakes? by Bump · · Score: 1

    I think the problem with all the responses here is that most of you are equating designing/developing with coding. There's a difference, you know.

    Who would I rather have fixing my brakes? The guy with 10 years experience fixing cars and no tech school degree, not the brand new mechanical engineer.

    Who would I rather have design my brakes? The engineer, hands down. Just because someone can build or fix something, doesn't meant they necessarily have the first clue of how it works or how to design it.

    I think what the certification would ensure is that the people in charge of design, not coding would be held responsible for it and the coding, much the way that engineers don't draw blueprints or things like that, but when their stamp goes on the plans, they're responsible for them.

  317. If they do, there goes Linux. by Kenneth · · Score: 1

    If they do, what of Linux? Linus wouldn't have been 'qualified' when he wrote linux, at least according to the article's definition of qualified. Would Linux be moved out for many applications simply because most of the programmers who worked on it were not 'qualified'?

    Bill Gates would be qualified, but not Linus (now he probably would, but not when the bulk of Linux was written). Which would you rather have writing your software if your life depended on it?

    --
    There is a civil war coming in the United States. Remember which side has most of the guns
  318. Licensing by aaronl · · Score: 1

    Great, now it'll be illegal to write code without a license? I can't change a room in my house without government approval as it is!

  319. Where do most software problems come from? by thomasdelbert · · Score: 1

    There are many thing that this article fails to address. Most software problems / defects are caused by oppresive schedules and poor project management. Are programmers expected to blow this whistle on this? If they do, they'll likely be fired. In that case project managers should be certified as well. Maybe all managers should be certified to prevent impossible development schedules from being cast onto their developers. But these managers are responding to market forces. Maybe all customers should be certified. That would prevent that. But if their customers are responding to their needs. They need to automate their machines. Well maybe there should be another level of certiciation on the engineers that designed these machines. But these engineers are just trying to stay ahead of the market. Awww screw it. Why don't we require everyone to get a certification to simply breate.

    Also, engineers routinely work on projects that people trust their lives to. Software developers rarely do that.

    --
    ___ This sig is in boldface to emphasize its importance!
  320. "If you don't like it, leave!"? by fable2112 · · Score: 1


    OK, that's not literally what you said. Close enough.

    There's a bit of a problem with that. Namely, people aren't going to care HOW good you are ... if you make yourself into "too much of a troublemaker," you ain't going to get yourself another job. It's that simple.

    I don't know if licensing would fix the problem or not ... but I DO know that just wandering off of jobs isn't as easy as it sounds.

    --
    "Somebody exploded a letter-bomb today ... but it wasn't anybody I knew" -The Moody Blues, "Dear Diar
  321. Should Managers & Sales Types be Certified? by theHunter · · Score: 1

    That's the real question. It's been my experience that programmers want to put out quality work, but managers and marketing, while giving lip service to quality, want something they can push out the door. And they it NOW. Then, when the inevitable customer complaits follow, they blame it on the technical people. The secret of Linux quality comes from saying "to hell with marketing, it's the product that counts".

  322. certified vs unionized by Schmecky · · Score: 1

    What we need is an IT union.
    How about the Teamsters.

    Certification is garbage. Go to college.


  323. Another money making machine by Russian · · Score: 1

    This will become another money making machine just like MS certifications. $3000 for a peice of paper. Who wants that? There should be standarts for coding like layout. It's impossible to impose standarts on algorythms that are used to solve a problem. Some people design good algorythms. some design poor. It's up to employer's IT manader and Senior Programmers to decide where they want to hire particular programmer.

  324. Bridge Argument: Flawed by Halloween · · Score: 2

    Here's why the bridge argument is flawed. Yes,
    engineers are required to be certified to build
    bridges. Are engineers required to be certified
    to build cars? No.

    The same type of logic applies to software
    engineering. Software engineers who are
    coding for life/death situations must comply
    to certain standards (FDA for instance). Is
    certification needed for building a word
    processor? No. Of course not.

    There are attempts to create a certification
    at a group level (ISO 9001, CMM for instance).
    These are what most places are trying to get
    to. Certification at an individual level
    is too difficult to build a framework for
    currently. (SEI's PSP is an attempt at it,
    I understand) Of course, there are large
    differences between having metrics and having
    skills, but these are at least steps in the
    right direction.