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


Forgot your password?

Should Programmers Be Certified? 427

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?
This discussion has been archived. No new comments can be posted.

Should Programmers Be Certified?

Comments Filter:
  • by Anonymous Coward
    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."

  • by Anonymous Coward
    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.
  • by Anonymous Coward
    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.
  • by Anonymous Coward
    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.
  • by Anonymous Coward
    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.
  • by Anonymous Coward
    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?
  • by Anonymous Coward
    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?
  • 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 ?

  • by Anonymous Coward
    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.
  • by Anonymous Coward

    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.

  • by Anonymous Coward
    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.

  • 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...
  • by Anonymous Coward
    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.

  • by Anonymous Coward
    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.

  • 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.
  • 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.
  • by Anonymous Coward
    >> 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...
  • by Anonymous Coward
    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?

  • 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.
  • 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.
  • 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:
    Carpenters (at least around here)
    (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.
  • 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...

  • 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). ;)

  • 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.

  • 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.
  • 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...)
  • 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?

  • 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?
  • 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
  • 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.
  • 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.
  • 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.
  • Posted by JoeyRamone:


    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.
  • 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!.

  • 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.

  • 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.

  • 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.


  • 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!
  • 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.

  • by Suydam ( 881 )
    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?

  • >>>>

    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".
  • 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.
  • 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
  • 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
  • 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
  • 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)
  • 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 :)
  • by Altus ( 1034 ) on Tuesday May 04, 1999 @08:11AM (#1905126) Homepage
    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)

  • 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.
  • 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.
  • 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).
  • 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.
  • 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.)
  • 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.

  • Not a badly written article, quite balanced etc.
    some experts
    say it is not clear that
    certification would have
    prevented the year 2000
  • 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.

  • 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 [iap.org.uk] 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.

  • 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.
  • by Rene S. Hollan ( 1943 ) on Tuesday May 04, 1999 @08:17AM (#1905146)
    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.

  • 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.


  • by sphealey ( 2855 ) on Tuesday May 04, 1999 @08:39AM (#1905155)
    "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.

  • 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.


  • 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.

  • if there was some certification, this [gcn.com] (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!

  • 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.

  • 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.

  • 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?

  • by stevew ( 4845 ) on Tuesday May 04, 1999 @10:42AM (#1905174) Journal
    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.
  • > 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!)


  • 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.

  • 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)
  • 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.'
  • I took and passed the ICCP CCP programming certification test [iccp.org] 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.

  • 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.
  • by Tim Randolph ( 10300 ) on Tuesday May 04, 1999 @08:26AM (#1905209)
    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.

  • 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.)
  • 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.
  • ...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.

  • by jetson123 ( 13128 ) on Tuesday May 04, 1999 @09:44AM (#1905234)
    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.

  • by jabber ( 13196 ) on Tuesday May 04, 1999 @08:34AM (#1905239) Homepage
    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).
  • by jabber ( 13196 ) on Tuesday May 04, 1999 @09:25AM (#1905240) Homepage
    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.
  • 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.

  • 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...)!

  • 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.
  • 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.
  • by Moeses ( 19324 ) on Tuesday May 04, 1999 @08:52AM (#1905281)
    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.

  • by DFDumont ( 19326 ) on Tuesday May 04, 1999 @08:30AM (#1905282)
    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
  • 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.
  • 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.
  • 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.
  • 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?
  • 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.
  • 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.

  • 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.
  • 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?"

  • 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.

  • by Big Red ( 39451 ) on Tuesday May 04, 1999 @09:07AM (#1905363)
    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.
  • 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!
  • 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.
  • 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.

What ever you want is going to cost a little more than it is worth. -- The Second Law Of Thermodynamics