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?
Blueprints (Score:1)
If it were a software company, they would hand you a bridge and say "We hope this is what you wanted."
Re:bullshit (Score:1)
so what (Score:1)
Almost correct, but... (Score:1)
Nor should they be.
What's the problem? (Score:1)
Very interesting (Score:1)
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?
Why a degree? (Score:1)
This is, of course, a subtle call for unions.. (Score:1)
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 ?
way too narrow minded (Score:1)
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.
Re:Certify s/w architects, not programmers (Score:1)
Dead On!
I went to a school with a lot of engineers and I am working toward becoming a System(software) Architect. And I can see a lot more similarities with engineering at this level.
Within the engineering field you also have the EIT level Eng. In Training. You can happily sit at that level forever. But if you are a fully certified Engineer when you put your stamp on a project you are putting you job/reputation on the line. If the thing fails you could be screwed as far as being an engineer. At least that is my understanding from some friends that work for the state in the bridge division.
I've always said it is pretty weird how CS people go to school for 4 years to become the blue collar workers of our industry.
Licensing is not warranted (Score:1)
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.
Re:Markets, Cerrification, & Licensing (Score:1)
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...
Since when does certification equal skill? (Score:1)
Our best, brightest folks are those w/ no degree and no certifications. Crazy but true. I guess these sorts of bad-asses didn't have to get a piece of paper to prove their value.
lin-dze
(lin_dze@yahoo.com)
A CS degree is often worse than useless. (Score:1)
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.
You're right, but such a move would cripple the in (Score:1)
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.
Software "Lemon Law" is whats really needed. (Score:2)
Re:Software inevitably fails all the time (Score:2)
>> 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...
Program Certification (Score:2)
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 hey, isn't that Open Source?
Joe
jacobson@pobox.com
Full Disclosure has to be a part of the solution (Score:1)
Software inevitably fails all the time (Score:1)
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.
Yes, but (Score:1)
Let's look at professions that don't need to be certified:
Artists
Carpenters (at least around here)
etc.
(it's early, give me a break
Personally I think programming is more like the above two professions than doctors, architects, engineers. The former rely on their reputation for skill and accomplishment for new work (or continued work) and they intend to be especially creative.
While I agree that licensing would be useful, even helpful, it is not feasible until we pass laws that state software can't be released until it is reviewed by a licensed programmer. I'm sure most people would agree that this would do nothing but harm the entire industry, and put open source software to death almost immediately.
One way licensing would doom us (Score:1)
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...
Re:Similar to licensed architects? (Score:1)
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). ;)
Don't we have this already? (Score:2)
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.
Better QA processes (Score:1)
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.
Too late(at least in Texas) (Score:1)
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...)
What is ethical about it? (Score:1)
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?
Re:Software inevitably fails all the time (Score:1)
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?
FascDot is oppressing me (Score:1)
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
No worries; Industry won't allow it (Score:1)
The number of unfilled software jobs out there is too high. This licensing scheme would serve to only reduce the number of programmers available.
Other engr. prob complained too, long ago. (Score:1)
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.
But there is no PE cert for software! (Score:1)
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.
Re:Microsoft (Score:1)
Uuuuhhh,
Ever heard of MSCD (or somethin' like that). I believe it stands for Microsoft Certified Developer. I once took such a course (so you think I must know what I'm talking about)... It realy is about programming and not simply using a product.
That didn't make me a better programmer.
No Damned Way. (Score:2)
Speaking from an entirely biased viewpoint, I have no desire to see myself become any less mobile in this field because of certification restrictions.
I also have no desire to fund another bloated, useless bureaucracy.
While there are a few core skillsets that have remained constant in this field, too much changes too quickly for any of these silly tests to remain relevant.
No, No, NO!.
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
Why not offer a licensed software engineer. (Score:1)
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!
How does it solve a problem? (Score:1)
Programming is more art then science. A million line program (I'm working on one now) is about the equivelent of engineering a bridge from Death Valley up to the sapce station It could be done, as any engineer would tell you, but no enginner would attempt it because it is so difficult. Yet NT is between 20-40 million lines (depending on how counts) Solaris is 6 million lines (If I recall correctly, at least 5 anyway) God only knows how big Office is. I could write a bug free 1000 line program in little time. It would take me 20 times as long (This is a very low estimate) to write a 10000 line program, but if you only asked that the 10000 line program rarely encounter a bug, I will have the 10000 line program done faster then the bug free 1000 line program
When you ask me to write a small bug free program I'll do it, it will cost you in time though. Forget internet years equaling a couple months, cuase there is no way to debug a program in that time.
When the publics attitude chages, when programing will change too.
BTW, whats the problem with music school drop outs programing? I happen to know a couple who are good programers.
Maybe? (Score:1)
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?
Re:Certified Engineers' low self esteem complex (Score:1)
I believe that certified, licensed engineers have every right to get upset when programmers (like myself) try to stick "engineer" on their title. Much like the term "Dr.", "engineer" has a rather specific meaning and requires a good deal of time/money/effort/blood/sweat/tears to achieve. Whether or not we agree with the process they went through, we should respect the result.
In addition, the term "engineer" gives a weight to comments that programmers don't deserve. When a structural engineer gives an opinion (i.e. "That bridge design is adequate for xx cars over yy years"), I give that comment a great deal of weight because that engineer may be liable if he's wrong. When my doctor says a procedure is safe, I'm willing to trust his judgement because he legally has to stand behind that conclusion. No programmer can match that.
Personally, I don't think programmers should be licensed. Until we are, however, we should not call ourselves "engineers".
Re:we need product reviews, not code reviews (Score:1)
(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.
Re:Who would be responsible? (Score:1)
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
Re:Oh please (Score:1)
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
Re:This won't be a popular view here... (Score:1)
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
Re:Falling on your sword... (Score:1)
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)
Re:This won't be a popular view here... (Score:1)
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
well Im certainly certifiable! (Score:3)
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)
Writting software is not bridge building (Score:2)
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.
Someone doesn't want to work for a living... (Score:2)
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.
Re:Software inevitably fails all the time (Score:1)
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).
Re:certification, degrees, and economic class (Score:1)
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.
Horrible idea (Score:1)
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.)
Age Discrimination (Score:1)
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.
impossible (Score:1)
But...
some experts
say it is not clear that
certification would have
prevented the year 2000
problem.
Impossible (Score:1)
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.
Re:Yes, but (Score:1)
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.
Engineers are artists too, just like coders (Score:3)
Markets, Cerrification, & Licensing (Score:4)
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.
The way I see it.. (Score:2)
Certification for programmers is a bit rediculeous. Is html code or data? What languages will the certification be in? Different certification for each language? What libraries? MFC? OWL? or ANSI? How about OS? What data structures? Will code formating be in it? Who will administer it?
I can just see this mess now. If certification for coder will become mendatory.. I can just see the OSS movement taking off because of all the people who love to code but may not be able to afford the rediculeous cost of geting certefied.
Ex-Nt-User
Projects of that nature already covered by PE regs (Score:3)
Software along the lines of an airport radar controller is going to be contracted out as part of a total system design (if the contracting authority has any competence at all). Hardware, software, backup systems, performance specs, acceptance criteria, etc. are all going to be part of a single project, and the ultimate documents for that project are going to be signed off by a registered Professional Engineer (PE).
The PE can be held individually liable for his work, so he is going to need indemnification by his employer. His employer in turn will lay off that risk to an insurance company, and the insurance company will demand audits, proof of competence, demonstrated capability to carry out similar projects, etc. That's how it goes in the real world of Big Stuff.
The PE (slash project management team) probably isn't going to be able to examine every line of code, or necessarily _any_ of the code him(them)self. But you can bet he will take steps to make sure that quality and capability are there.
Even as a person on the PE track (which I am), I acknowledge that there is an element of market control / guild-ism in the process. However, before you squeeze the trigger on the flamethrower, please spend a few minutes in a good engineering library reading back issues of Scientific American from the 1870-1890 time period. Read carefully the accounts of steam boiler explosions and the death and destruction they caused for many years. Then if you have a few extra hours, scan through the "History of the ASME Boiler and Pressure Vessel Code". Those boiler explosions, and the effort that had to be undertaken to get them under control, are the direct ancestors of the PE process. And brutal, heavy-handed government regulation turned out to be the only way to bring the body count down.
Hmmm, in terms of accepting responsibility for quality of work, does that sound like any industry we know today? I am personally not advocating that the PE regulations be extended to the software world, but after rebooting Windows 95 for the 5th time today I can see why some might.
sPh
Re:License != Certification (Score:2)
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.
yes and no (Score:2)
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.
one example why yes (Score:2)
but i say that we have to certify software, not people!
This won't be a popular view here... (Score:2)
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.
Re:Software inevitably fails all the time (Score:2)
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.
A common misconception (Score:2)
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?
Re:Not quite (Score:3)
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.
Re:Yes, for PUBLIC projects concerning HUMAN SAFET (Score:2)
> sometimes it needs to be done. An exam such as
> the Professional Engineer exam is an attempt at > making sure the people who work on these projects > that affect the public know when and how to do
> this.
If you read the license to 99% of software out thier, including free and commerical software, their is no-warrenties and guarrenttes. Most software may not be allowed to be used in Nuclear plants, and other mission critical bussiness.
Most software is licensed to you as is, and containts no warrenty what so ever.
Registration for mission critcal software is already in place, it requires special licenses between you and the company, a special certification program for any software to be certified.
Really, certifing programmers is a bad thing, certfing software is good.
Reguluation is serious pain in the ass for programers, who are often free willed and libral.
IMHO, Open Source is the only way to go to avoid large technical bugs in the future (peer presure works!)
Thanks,
AArthur
More to think on... (Score:2)
What about Hardware? Should EEs and CEs need certification? A large part of the y2k bug is hardware with not enough bits for the date. As a CE (computer engineer) I find this whole Idea a litlle disturbing. Would I have to pass both a hardware and a software test? Many people bounce from lowlevel software to hardware and back again. Do all of those people need two licences?
Auto engineers arn't required to have a licence. Neither are engineers who design medical equiptment -- however the final products from both fields must pass certain federal standards. Either product could have been designed by the mythical infinate monkey room or some gifted savant.
Would webdesigners be required to be certified? How about sys-admins? They can be responsable for very inportant data. For example the sysadmins at NSI Inc. or IRS or an Army stratigic planning system. Should they be licensed to setup a system with no holes and disabling al bugs?
I think licensing programmers 1) opens up a can of worms we don't want open (who else do we require to be licensed). 2) would eliminate free software and savant programers.
Managers, not programmers, need certifying (Score:2)
Who would be responsible? (Score:2)
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.'
Re:We're not ready for certification (Score:2)
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.
Re:Certify s/w architects, not programmers (Score:2)
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.
NYTimes misses point (Score:4)
Degree != Certification != Ability (Score:2)
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.)
Certifiying software "practices" not technology. (Score:2)
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
-Flame on ! Johnny Storm, Fanstatic 4.
Programmers without computer science degrees (Score:2)
My personal experience is that if you split programmers into three categories of compentance:
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.
Re:Markets, Cerrification, & Licensing (Score:3)
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.
Depending on the scope and responsibility (Score:3)
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).
Not quite (Score:4)
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's the principles of design that you learn. (Score:2)
It depends on what you're hiring for. If someone is hiring a tech or an admin to run your network, then you certainly have impressive qualifications. But if someone is hiring you to design a network, or to create an entirely new networking system, then you want someone that has training and/or experience in engineering and design. There's a difference between running a system that already exists and designing a new system from the ground up without including design flaws such as the Y2K problem. Good design can be learned entirely from experience, but a good education means that you don't have to make mistakes and learn from them; you can learn from others' mistakes and avoid them entirely. Formal education isn't a complete substitute for industry experience, but it does give you a jump-start in the direction you're headed.
Texas is now licensing "Software Engineers" ... (Score:2)
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...)!
Re:Software inevitably fails all the time (Score:2)
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.
Re:Blueprints (Score:2)
Yes, for PUBLIC projects concerning HUMAN SAFETY (Score:5)
If a service is being contracted for the people from a government and human health issues are at hand then the people have a right to require that the engineer, whether he be a civil engineer or a software engineer, has proven to them that he can complete the task with safety and has the skills to show them the numbers that make it safe.
This is akin to verifying the correctness of code (mathematically proving that it cannot fail), an incredably extensive and expensive process. But sometimes it needs to be done. An exam such as the Professional Engineer exam is an attempt at making sure the people who work on these projects that affect the public know when and how to do this.
Testing code relentlessly is one thing, verifiying it's correctness is another.
They each have their arena.
Moeses
What exactly is the point (Score:3)
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
Guilds, etc. (Score:2)
The practical one first: what does it take to get a license? If it's just passing an examination, then that proves nothing
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.
Managers should be certified, not coders. (Score:2)
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.
Exactly: Re:Yes, for projects concerning ... (Score:2)
Certified Engineers' low self esteem complex (Score:2)
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!
certification, degrees, and economic class (Score:3)
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.
Licensed to Code (Score:2)
We already have certification in the "IT" industry. That's one barrier to entry, and I for one feel it has done us absolutely no good and may have even done some harm. Would things be better if coders had to pass some sort of exam to show that they knew what recusion is, how to make a flowchart, when to use global vs. local variables, and so forth before they could legally practice their craft?
How many free software projects would suffer if only licensed coders could produce publicly available software?
How many great home-brewed programs would never come to be if the people who wrote them had to first go pass the coding bar exam?
We don't need licensing in our industry. It will only serve to focus more power into the hands of large corporations, and shut down the two-guys-in-a-garage type of operations that have been pushing the frontiers for the last twenty-five years.
-Joe
Two points (Score:3)
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?
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.
Ethics versus Character (Score:2)
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?"
How many of you are certified readers ? (Score:2)
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?
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.
Certify s/w architects, not programmers (Score:5)
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.
Another dumb idea (Score:2)
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!
Licensing=oppression. (Score:2)
Bridge Argument: Flawed (Score:2)
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.