render@m.cs.uiuc.edu (10/17/89)
Here's something that may be of interest to the SE community. Please respond to the net, since I am only posting it as an "FYI" item. From the Champaign (IL) News-Gazette (Oct. 15, 1989): Report: Billions wasted on computer software SAN JOSE, Calif. (KRN) -- Errant computer software has killed patients with too much radiation, caused a civilian airliner to be shot from the sky, produced gigantic defense cost overruns -- and is still inadequately regulated, according to a congressional report. The report warns that billions of taxpayer dollars are being squandered because the government's antiquated system for buying software doesn't work. The report calls for a drastic revision in the way the government creates and buys software, as well as a study of licensing computer programmers. The report says the government may have to "encourage" the certifying of programmers because "a lack of concern regarding ethics is a weakness in this profession" and, if the computer programming community doesn't police itself, it may lose its "prized autonomy."
murphyn@cell.mot.COM (Neal P. Murphy) (10/18/89)
In article <39400056@m.cs.uiuc.edu> render@m.cs.uiuc.edu writes: > > ... > >From the Champaign (IL) News-Gazette (Oct. 15, 1989): > > Report: Billions wasted on computer software > > SAN JOSE, Calif. (KRN) -- Errant computer software has killed > patients with too much radiation, caused a civilian airliner > to be shot from the sky, produced gigantic defense cost > overruns -- and is still inadequately regulated, according to a > congressional report. > > ... For those who may be interested, please refer to the following articles in comp.software-eng for a discussion on software safety. <1321@cs.rit.edu> <195@cherry5.UUCP> <1989Oct4.055359.15145@paris.ics.uci.edu> <209@cherry5.UUCP> <10901@riks.csl.sony.co.jp> <1989Oct12.184705.11620@paris.ics.uci.edu> <13097@orstcs.CS.ORST.EDU> I abhor the idea of licensing programmers: either it will be another piece of worthless paper one must pay $50 to receive, or we will all become bogged down in bureaucratic paperwork. The latter would be an effective cure for software ills, since we would be too busy filling out forms to get any software written! Voila! No more software bugs! Seriously, I don't see the need for any government meddling. The software engineering community is pretty much self-regulating. Besides, a government mandate would not have eliminated those errors. NPN
UH2@PSUVM.BITNET (Lee Sailer) (10/19/89)
I also abhor the idea of licensing computer professionals, but there is some bureaucratic machinery that I do favor. In accounting and finance, organizations pay large amounts of money to outside, independent auditors to come in and review procedures. Auditors do not merely check to see if the books balance. Rather, they are responsible for assuring stakeholders (eg, shareholders, customers, owners, regulators) that proper and appropriate procedures are being followed. In these days, where accounting and finance are usually computerized, auditors look more and more carefully at the code that underlies these systems. I can imagine a fairly acceptable Computer System Auditing industry. Pay big bucks to a small cadre of the best people, who work hard to keep up on new technologies. These guys would be bonded, and probably certified by a professional organization including reps from Universities and Industry, Gov't, etc. They would work much as auditors do. They would come into *your* organization, try to build a list of all computer systems, select a few hundred of them at random, and then spend several weeks perusing them til they felt confident that they understood them. Their work wouldn't be finished til *you* were confident, too. Then, they'd report that whether they believed that your systems were in great shape, pathetic, or whatever. You're shareholders, owners, and customers would know more than they know today, and life would be beautiful.
plogan@mentor.com (Patrick Logan) (10/20/89)
In article <242@cherry5.UUCP> murphyn@cell.mot.COM (Neal P. Murphy) writes: > In article <39400056@m.cs.uiuc.edu> render@m.cs.uiuc.edu writes: > > > > ... > > > >From the Champaign (IL) News-Gazette (Oct. 15, 1989): > > > > Report: Billions wasted on computer software > > > > SAN JOSE, Calif. (KRN) -- Errant computer software has killed > > patients with too much radiation, caused a civilian airliner > > to be shot from the sky, produced gigantic defense cost > > overruns -- and is still inadequately regulated, according to a > > congressional report. > > > > ... > > ... > > I abhor the idea of licensing programmers: either it will be another piece > of worthless paper one must pay $50 to receive, or we will all become > bogged down in bureaucratic paperwork. The latter would be an effective > cure for software ills, since we would be too busy filling out forms to get > any software written! Voila! No more software bugs! Seriously, I don't > see the need for any government meddling. The software engineering > community is pretty much self-regulating. Besides, a government mandate > would not have eliminated those errors. > > NPN I don't get it. Before any examination can be used to qualify programmers for developing "fail-safe" software, doesn't there have to be a sure-fire way of developing "fail-safe" software? Until we get to that point, licensing is a moot point. Except, as NPN jokes, it can slow down the process of developing today's failure-prone software. I'm trying to be serious. The important issue, for myself, is that developing "correct" programs is incredibly hard. I cannot see how any kind of licensing at this point can contribute significantly to the solution. It may serve to indicate what skills and experience a programmer does have, but that sort of thing is reasonably determined during an interview anyway. -- Patrick Logan | ...!{decwrl,sequent,tessi}!mntgfx!plogan Mentor Graphics Corporation | plogan@pdx.MENTOR.COM Beaverton, Oregon |
UH2@PSUVM.BITNET (Lee Sailer) (10/20/89)
The CACM occasionally publishes items they call "self tests". Some guy develops a sort of outline of some topic in the form of questions. If you can answer all the questions, then you are good at that topic. Here might be a mini-example: 1. What is the primary output of the Analysis process? 2. What is the difference between Design and Programming? 3. Describe each of the following, and give conditions where each would be particularly useful: Data Flow Diagrams Warnier-Orr Diagrams Entity-Relationship Modeling Structured Flow Charts Structure Charts Finite State Machines Structured English Tight English Literate Programming 4. Give an outline of how computer programs might be mathematically proven to be correct. 5. How would you estimate how long it might take to create a system that will have about 1,000,000 lines of 3GL code in the delivered product? etc etc etc Now, I don't claim this is a good test, just that it is an example of the kinds of questions that might appear on one. The curious thing about these tests, is that there doesn't really have to be a rght or wrong answer to each question. One measure of the test taker's expertise is merely the proportion of the questions that they feel they can answer. These all happen to be questions that I feel that I can answer, but you probably have questions that you think *ANY* software designer ought to be able to answer, which I couldn't. In short, there doesn't have to be an agreed method for software engineering before a reasonable software engineering test could be constructeded.
rsd@sei.cmu.edu (Richard S D'Ippolito) (10/21/89)
In article <242@cherry5.UUCP> murphyn@cell.mot.COM (Neal P. Murphy) writes:
=I abhor the idea of licensing programmers: either it will be another piece
=of worthless paper one must pay $50 to receive, or we will all become
=bogged down in bureaucratic paperwork. The latter would be an effective
=cure for software ills, since we would be too busy filling out forms to get
=any software written! Voila! No more software bugs! Seriously, I don't
=see the need for any government meddling. The software engineering
=community is pretty much self-regulating. Besides, a government mandate
=would not have eliminated those errors.
=
=NPN
How is this argument different from the one used against licensing of other
professionals, such as engineers, plumbers, and beauticians?
Rich
--
We use kill ratios to measure how the war is going.
We use SLOC ratios to measure how our software is coming.
(Idea from Gary Seath) rsd@sei.cmu.edu
-----------------------------------------------------------------------------
jmi@devsim.mdcbbs.com ((JM Ivler) MDC - Douglas Aircraft Co. Long Beach, CA.) (10/24/89)
In article <89293.124011UH2@PSUVM.BITNET>, UH2@PSUVM.BITNET (Lee Sailer) writes: > The CACM occasionally publishes items they call "self tests". Some guy > develops a sort of outline of some topic in the form of questions. If you > can answer all the questions, then you are good at that topic. Here might be > a mini-example: > [sample questions -omited-] > > Now, I don't claim this is a good test, just that it is an example of the > kinds of questions that might appear on one. The curious thing about these > tests, is that there doesn't really have to be a rght or wrong answer to each > question. Gee, do they use tests like these for "structural engineers"? I sure hope the guys checking out San Francisco got more "right" than "wrong" > One measure of the test taker's expertise is merely the proportion > of the questions that they feel they can answer. These all happen to be > questions that I feel that I can answer, but you probably have questions that > you think *ANY* software designer ought to be able to answer, which I > couldn't. Which is why I feel this entire discussion should be trashed. > > In short, there doesn't have to be an agreed method for software engineering > before a reasonable software engineering test could be constructeded. $ set on /flame/intens=high I couldn't disagree more with this sort of thinking. I am about to repeat an argument I have given before on DECUServe, but it still is valid. I went to interview for a company in the LA area, the job was on DEC VAX machines under VMS. I was asked a programming question in regards to what type of sort would I use to sort ASCII data from a HOL. I responded that I would use the SORT system services provided by VMS. This was *not* the answer that the person interviewing me wanted. He wanted to hear me say something like "I would use an insertion sort algorithm." I, of course, didn't get the job. If someone is going to perform testing of software engineers, they had best have a board that *knows* all the possible answers. As a lead, I do not want someone wasting time writting code instead of making use of the runtime libraries and system services that a manufacture makes available. I have a 15 page series of questions and answers that I ask when I interview. These run the gambit from "personality" questions to engineering. The interview process I run is designed to meet *my* needs. Just because someone has a degree in CS is no reason to assume that they know what they are doing and I feel that any additional certification will supply no additional data. Cripes, some of the best designers/engineers I know don't even have a degree. The old adage "you can't tell a book by its cover" is very true here. All that additional certification will do is provide those who are already insecure about thier abilities an additional cover to hide behind! $ set noon /flame/intens=none ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | J.M. Ivler | INTERNET: JMI@DEVSIM.MDCBBS.COM | | McDonnell Douglas Corp. | UUCP Bang: UUCP!DEVSIM.MDCBBS.COM!JMI | | Douglas Aircraft Co. |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3855 Lakewood Blvd | VOICE: (213) 496-8727 | | Mail-stop 36-49 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Long Beach, CA 90846 | DECUServe and DCS available (IVLER) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | DECUS - L&T SIG/ CASE and Tools Integration Working Group Chair | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Toolsmith (n) - a specialist in the manufacture of support software
pcolsen@super.ORG (Peter C Olsen) (10/26/89)
The question of professional licensing is important for legal reasons. In the state of Maryland (as in most states) if you claim to practice any form of "engineering" without a registration, you're breaking the law. You can claim to be a "computer programmer" without trouble, but a claim of "software engineer" needs a P.E. Note: practice means "public practice" --- working as an employee of a corporation is not covered. Peter C. Olsen P.E. pcolsen @ super.super.org
campbell@redsox.bsw.com (Larry Campbell) (11/14/89)
In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes:
-How is this argument different from the one used against licensing of other
-professionals, such as engineers, plumbers, and beauticians?
The major difference is that most licensed professionals provide their
services to individuals who are presumably in need of protection from
charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all
provide services to individuals who could be injured, or even killed, by an
incompetent practitioner.
However, programmers almost always provide their services to business or
government organizations, who should (I believe) be smart enough (or cynical
enough) to protect themselves.
Therefore I oppose programmer licensing, but not the concept of licensing
in general.
--
Larry Campbell The Boston Software Works, Inc.
campbell@bsw.com 120 Fulton Street
wjh12!redsox!campbell Boston, MA 02146
sandra%defun.utah.edu@cs.utah.edu (Sandra J Loosemore) (11/14/89)
On the subject of licensing for computer professionals, I've recently ascertained that (independently of whether or not such licensing is actually a good thing) it is illegal to practice software engineering in Utah. First some background. In order to become a registered Professional Engineer, you need to do three things: (1) Take the EIT (Engineer-in-Training) exam. At many schools, you are strongly encouraged to do this around the time you graduate. (2) Supply the registration board with affadavits to prove that you have at least 4 years of engineering experience. In Utah, at least three of these have to come from other registered PE's. (3) Take an examination in your specialty of engineering. Anyway, the Utah state licensing board conveniently sent me a copy of the state law concerning PE licensing. Section 58-22-2 says: "Practice of engineering" means the performance of any service or creative work requiring engineering education, training, and experience in the application of special knowledge of the mathematical, physical, and engineering sciences.... A person is construed to practice or offer to practice engineering who [...] holds himself out as able to perform, or who does perform, any engineering service or work or any other professional service designated by the practitioner or recognized as engineering. Then, in section 58-22-9, it says: It is a class B misdemeanor for any person to: (1) practice, or offer to practice, engineering or land surveying in this state without being licensed under this chapter; (2) use or employ the words "engineer", "engineering", "land surveyor", "land surveying", or any modification or derivation of these words [...] when the person has not been licensed under this chapter; Section 58-22-10 lists exemptions, notably working as an employee or subordinate. As I understand it, the regulations are intended to apply to people who offer their services to the public as consultants or contractors. The problem is that the Utah licensing board doesn't offer the PE exam in Software Engineering, or any other computer-related engineering field. Supposing that they were to start to offer one, you would run into a chicken-and-egg problem in finding the three other PE's in your field to attest to your experience. Finally, note that it doesn't matter that the state licensing board doesn't recognize software engineering as an engineering discipline, because the law claims it's engineering if it's so "designated by the practitioner". So, if you call yourself a software engineer and offer your services as a consultant, you're breaking the law! -Sandra Loosemore (sandra@cs.utah.edu)
crm@romeo.cs.duke.edu (Charlie Martin) (11/17/89)
In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: > >The major difference is that most licensed professionals provide their >services to individuals who are presumably in need of protection from >charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. > Don't be silly: the professional engineer license, the CPA, are both examples of licenses for professions which do NOT in general treat with individuals in the public, but are instead employed by large organizations. In both of these, and most or all of your examples, the profession is licensed in part because there is a real risk involved in incompetent performance, and because there is a perceived societal need to guarantee that those who perform the task are competent and also have an asset in there license that serves as a sort of bond of performance or competence. A doctor, a PE, or a CPA can be sued for malpractice, and can also lose their license for malpractice or malfeasance; legally, an unlicensed person can only be sued for damages, and the definition poor practice is much less stringent. Software engineers perform services for the public, and more and more often provide systems which put people at risk of loss of life or property; your argument on its face seems to imply software angineers should be licensed just as other engineers are. Charlie Martin (CDP) Charlie Martin (crm@cs.duke.edu,mcnc!duke!crm)
dalamb@qucis.queensu.CA (David Lamb) (11/18/89)
In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >However, programmers almost always provide their services to business or >government organizations, who should (I believe) be smart enough (or cynical >enough) to protect themselves. Actually, some government sub-organizations I know would be delighted to have some form of licencing, because this would give them some leverage to ensure the competence of contractors they're forced to take by the procurement rules (imposed by a portion of the government that ISN'T smart/cynical enough - or at least not in the right way). Of course, there are arguments that licencing wouldn't really do this. David Alex Lamb Department of Computing and Information Science Queen's University Kingston, Ontario, Canada K7L 3N6 (613) 545-6067 ARPA Internet: David.Lamb@cs.cmu.edu dalamb@qucis.queensu.ca uucp: ...!utzoo!utcsri!qucis!dalamb
gordon@banyan.UUCP (Gordon Lee@Eng@Banyan) (11/18/89)
In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >-How is this argument different from the one used against licensing of other >-professionals, such as engineers, plumbers, and beauticians? > >The major difference is that most licensed professionals provide their >services to individuals who are presumably in need of protection from >charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. > >However, programmers almost always provide their services to business or >government organizations, who should (I believe) be smart enough (or cynical >enough) to protect themselves. > >Therefore I oppose programmer licensing, but not the concept of licensing >in general. It is not as simple as that. Licensing practices in other engineering disciplines do not exist only to protect individuals, they exist also to protect the public as a whole. Civil Engineers must be licensed before they attempt to build a bridge on a public road. Likewise software engineers ought to be licensed before they attempt to design an air traffic control system. The impact of the work on public safety is just as large a consideration as the protection of individuals from malpractice. Note that I used the term software engineer where you have said programmer. I think that a software engineer is a person who like a civil engineer must assume responsibility for the proper practice of his profession from a moral and ethical standpoint. A programmer, I feel, is a person who takes direction from a software engineer and defers responsibility and culpability to the SE. Just as a construction foreman on a bridge project would take direction from the civil engineer. In the eyes of society, it is not the foreman's responsibility if the bridge collapses. (But I would hope that he would blow the whistle if he somehow recognizes that something is blatantly wrong with the civil eng's design). Like it or not, I think that the barn-storming days are largely behind us, and that some form of regulation is inevitable. It is important that we as a professional community take the initiative and demonstrate that we are capable of regulating ourselves through professional associations. If we don't, we will lose credibility over time. Software "workers" right now enjoy the advantage of an artificially small labour pool, and this makes it very easy to get cavalier about job security. But this labour pool will grow, and when it does, salaries will no longer be as high and the job market will no longer be candy land. Potential employers faced with candidates of equivalent experience will be forced to look at credentials in order to make a decision, ie education and licensing. - Gordon Newsgroups: comp.software-eng Subject: Licensing of computing professionals Summary: Computing professional licensing Expires: References: <39400056@m.cs.uiuc.edu> <242@cherry5.UUCP> <4600@ae.sei.cmu.edu> <1487@redsox.bsw.com> Sender: Reply-To: gordon@banyan.UUCP (Gordon Lee@Eng@Banyan) Followup-To: Distribution: Organization: Banyan Systems, Inc. Keywords: software safety, government regulation In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >-How is this argument different from the one used against licensing of other >-professionals, such as engineers, plumbers, and beauticians? > >The major difference is that most licensed professionals provide their >services to individuals who are presumably in need of protection from >charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. > >However, programmers almost always provide their services to business or >government organizations, who should (I believe) be smart enough (or cynical >enough) to protect themselves. > >Therefore I oppose programmer licensing, but not the concept of licensing >in general. It is not as simple as that. Licensing practices in other engineering disciplines do not exist only to protect individuals, they exist also to protect the public as a whole. Civil Engineers must be licensed before they attempt to build a bridge on a public road. Likewise software engineers ought to be licensed before they attempt to design an air traffic control system. The impact of the work on public safety is just as large a consideration as the protection of individuals from malpractice. Note that I used the term software engineer where you have said programmer. I think that a software engineer is a person who like a civil engineer must assume responsibility for the proper practice of his profession from a moral and ethical standpoint. A programmer, I feel, is a person who takes direction from a software engineer and defers responsibility and culpability to the SE. Just as a construction foreman on a bridge project would take direction from the civil engineer. In the eyes of society, it is not the foreman's responsibility if the bridge collapses. (But I would hope that he would blow the whistle if he somehow recognizes that something is blatantly wrong with the civil eng's design). Like it or not, I think that the barn-storming days are largely behind us, and that some form of regulation is inevitable. It is important that we as a professional community take the initiative and demonstrate that we are capable of regulating ourselves through professional associations. If we don't, we will lose credibility over time. Software "workers" right now enjoy the advantage of an artificially small labour pool, and this makes it very easy to get cavalier about job security. But this labour pool will grow, and when it does, salaries will no longer be as high and the job market will no longer be candy land. Potential employers faced with candidates of equivalent experience will be forced to look at credentials in order to make a decision, ie education and licensing. - Gordon Newsgroups: comp.software-eng Subject: Re: Programmer Licensing? Summary: Computing professional licensing Expires: References: <39400056@m.cs.uiuc.edu> <242@cherry5.UUCP> <4600@ae.sei.cmu.edu> <1487@redsox.bsw.com> Sender: Reply-To: gordon@banyan.UUCP (Gordon Lee@Eng@Banyan) Followup-To: Distribution: Organization: Banyan Systems, Inc. Keywords: software safety, government regulation In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >-How is this argument different from the one used against licensing of other >-professionals, such as engineers, plumbers, and beauticians? > >The major difference is that most licensed professionals provide their >services to individuals who are presumably in need of protection from >charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. > >However, programmers almost always provide their services to business or >government organizations, who should (I believe) be smart enough (or cynical >enough) to protect themselves. > >Therefore I oppose programmer licensing, but not the concept of licensing >in general. It is not as simple as that. Licensing practices in other engineering disciplines do not exist only to protect individuals, they exist also to protect the public as a whole. Civil Engineers must be licensed before they attempt to build a bridge on a public road. Likewise software engineers ought to be licensed before they attempt to design an air traffic control system. The impact of the work on public safety is just as large a consideration as the protection of individuals from malpractice. Note that I used the term software engineer where you have said programmer. I think that a software engineer is a person who like a civil engineer must assume responsibility for the proper practice of his profession from a moral and ethical standpoint. A programmer, I feel, is a person who takes direction from a software engineer and defers responsibility and culpability to the SE. Just as a construction foreman on a bridge project would take direction from the civil engineer. In the eyes of society, it is not the foreman's responsibility if the bridge collapses. (But I would hope that he would blow the whistle if he somehow recognizes that something is blatantly wrong with the civil eng's design). Like it or not, I think that the barn-storming days are largely behind us, and that some form of regulation is inevitable. It is important that we as a professional community take the initiative and demonstrate that we are capable of regulating ourselves through professional associations. If we don't, we will lose credibility over time. Software "workers" right now enjoy the advantage of an artificially small labour pool, and this makes it very easy to get cavalier about job security. But this labour pool will grow, and when it does, salaries will no longer be as high and the job market will no longer be candy land. Potential employers faced with candidates of equivalent experience will be forced to look at credentials in order to make a decision, ie education and licensing. - Gordon Newsgroups: comp.software-eng Subject: Licensing of computing professionals Summary: Computing professional licensing Expires: References: <39400056@m.cs.uiuc.edu> <242@cherry5.UUCP> <4600@ae.sei.cmu.edu> <1487@redsox.bsw.com> Sender: Reply-To: gordon@banyan.UUCP (Gordon Lee@Eng@Banyan) Followup-To: Distribution: Organization: Banyan Systems, Inc. Keywords: software safety, government regulation In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >-How is this argument different from the one used against licensing of other >-professionals, such as engineers, plumbers, and beauticians? > >The major difference is that most licensed professionals provide their >services to individuals who are presumably in need of protection from >charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. > >However, programmers almost always provide their services to business or >government organizations, who should (I believe) be smart enough (or cynical >enough) to protect themselves. > >Therefore I oppose programmer licensing, but not the concept of licensing >in general. It is not as simple as that. Licensing practices in other engineering disciplines do not exist only to protect individuals, they exist also to protect the public as a whole. Civil Engineers must be licensed before they attempt to build a bridge on a public road. Likewise software engineers ought to be licensed before they attempt to design an air traffic control system. The impact of the work on public safety is just as large a consideration as the protection of individuals from malpractice. Note that I used the term software engineer where you have said programmer. I think that a software engineer is a person who like a civil engineer must assume responsibility for the proper practice of his profession from a moral and ethical standpoint. A programmer, I feel, is a person who takes direction from a software engineer and defers responsibility and culpability to the SE. Just as a construction foreman on a bridge project would take direction from the civil engineer. In the eyes of society, it is not the foreman's responsibility if the bridge collapses. (But I would hope that he would blow the whistle if he somehow recognizes that something is blatantly wrong with the civil eng's design). Like it or not, I think that the barn-storming days are largely behind us, and that some form of regulation is inevitable. It is important that we as a professional community take the initiative and demonstrate that we are capable of regulating ourselves through professional associations. If we don't, we will lose credibility over time. Software "workers" right now enjoy the advantage of an artificially small labour pool, and this makes it very easy to get cavalier about job security. But this labour pool will grow, and when it does, salaries will no longer be as high and the job market will no longer be candy land. Potential employers faced with candidates of equivalent experience will be forced to look at credentials in order to make a decision, ie education and licensing. - Gordon -- ============================================================================= Gordon Lee gordon@banyan.com or gordon@bu-it.bu.edu Banyan Systems, Inc. Westboro, MA "Pay no attention to that man behind the keyboard..."
pcolsen@super.ORG (Peter C Olsen) (11/18/89)
In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >... Doctors, dentists, lawyers, electricians, beauticians -- all >provide services to individuals who could be injured, or even killed, by an >incompetent practitioner. How does the practice of a civil engineer engaged in the structural design of a bridge differ from the practice of a software engineer engaged in the design of software for the automatic operation of bridge control? How does the responsibility of an electrician installing and maintaining an elevator differ from that of the programmer who programs the controlling software? To ``practice engineering before the public'' requires, in most states, that you be registered as a Professional Engineer. ``Practicing before the public'' means offering services the the public at large, not as an employee. (The ``public'' of course includes even the largest corporations.) The rationale is {\em precisely} to protect unknowing consumers from being defrauded by incompetents ... and perhaps killed. I think that the same problems arise in software engineering. A ``programmer'' who writes a check-book program can probably escape both legal and moral liability with a shrink-wrap release --- people who cannot balance their checkbook by hand (or at least understand how it is done) probably cannot be harmed any more by their software than by their pocket calculators. I don't think that this is the case in the ``software engineering'' of large, complex, or critical systems. If you hire me to custom-build some sotware for your medical system, your environmental control system, or your custom boat, then you may well be entrusting your life to me --- and you have the {\em right} to expect the same professional standards in software engineering that you would expect in civil, electrical, or chemical engineering --- or medicine. Chief among these is a broad knowledge of the basic engineering principles which underlie {\em all} engineering --- including software engineering --- and which are often completely ignored in the typical CS curriculum followed by many ``programmers.'' Put another way, physicist are wonderful people, but I still prefer my bridges designed by civil engineers. The bottom line --- you can be a ``programmer'' all you want, but if you want to be an ``engineer'' then either be an employee or Register before you enter public practice. Peter Olsen P.E. pcolsen@super.org
pcolsen@super.ORG (Peter C Olsen) (11/18/89)
Recently Sandra Loosemore wrote about Utah's requirement to be to register as a Professional Engineer before practicing before the public commented that there is no specific PE examination for software engineering. She's probably right, but there are two additional points to consider. First, there {\em are} other examinations in closely related fields --- the electrical and industrial engineering examinations both address ``systems analytical'' problems of the same type faced in software engineering. Some problems may be even more specific --- when I took the Principles and Practices exam (the ``PE'' exam as opposed to the ``EIT'' exam), I worked a question which (as I recall) required the analysis of a FORTRAN program to determine if it would meet the design specifications for solving a ``toy'' problem in E.E. Second, and more important, the purpose of the PE examination is {\em not} to demonstrate detailed mastery of engineering trivia, but rather to prove your acquaintance with the {\em fundamental} principles and practices of good engineering. Ten years ago I took the examination and registered as a mechanical engineer, but my career has taken me away from the conventional practice of M.E. and into, first, the numerical analysis of algorithms supporting M.E. (primarily computational fluid mechanics) and then into the design and implementation of more general software for other applications. Throughout this transition, I have found that the {\em principles} of good engineering have been generally applicable and that my early training in them as a mechanical engineer has made me a better software engineer today. Peter Olsen P.E. pcolsen@super.org
jmi@devsim.mdcbbs.com ((JM Ivler) MDC - Douglas Aircraft Co. Long Beach, CA.) (11/21/89)
In article <601@banyan.UUCP>, gordon@banyan.UUCP (Gordon Lee@Eng@Banyan) writes: > In article <1487@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: >>In article <4600@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: >>-How is this argument different from the one used against licensing of other >>-professionals, such as engineers, plumbers, and beauticians? >> >>The major difference is that most licensed professionals provide their >>services to individuals who are presumably in need of protection from >>charlatans. Doctors, dentists, lawyers, electricians, beauticians -- all >>provide services to individuals who could be injured, or even killed, by an >>incompetent practitioner. >> >>However, programmers almost always provide their services to business or >>government organizations, who should (I believe) be smart enough (or cynical >>enough) to protect themselves. >> > > It is not as simple as that. Licensing practices in other engineering > disciplines do not exist only to protect individuals, they exist also > to protect the public as a whole. Civil Engineers must be licensed before > they attempt to build a bridge on a public road. Likewise software > engineers ought to be licensed before they attempt to design > an air traffic control system. The impact of the work on public safety > is just as large a consideration as the protection of individuals > from malpractice. > How do *you* (this is an generic you not specific) determine who is or isn't qualified to practice? One key factor is the ability of the SE to use an intimate knowledge of a machine to determine the best possible solution for any given problem. As an example I put forward the following experience. I was working on a project and I was asked to design a program that would perform wire identification and labeling in a batch process. I was not told what machine this process would be run on. I had about 4.5 years experience working on DEC machines, so I used my knowledge of the machines and devised an algorithm that would have supported unique filenames that were created on the fly. These filenames used conventions of the machine to insure that the file was associated to the process that was running (more than one process could be run concurrently) as well as being unique (even though more than one file could be created during the running of a single process). In order to perform the above I used designed the code to use the process identifier for the process that was running and to insure that it was unique I appended on the time in the format PID_HHMMSSss.extention. Within the DEC environment this is acceptable. I was later informed that the decision was made to run this system on an IBM. The IBM chosen did not support the createion of filenames on the fly as all files has to be defined in the JCL. This also did not allow for the unique naming conventions or duplicate processing from the same directory structure. If I had to write the above process as part of some SE testing procedure, there is no way that I would have passed. On the other hand, the process, as I created it, was the best possible way to perform the required action *if* the machine that was to be used was a DEC VAX. Who will determine who should be licensed to practice? Systems development is a creative process where the objective is to make the best possible use of the hardware and the software to obtain a total final objective. The process I used in the example above is one of the most simple. Earlier I made mention of the ability to use a system supplied sort routine verses writting one from scratch. These issues have to be addressed before anyone even attempts to try to license this profession. > Note that I used the term software engineer where you have said programmer. > I think that a software engineer is a person who like a civil engineer > must assume responsibility for the proper practice of his profession > from a moral and ethical standpoint. We are not "Engineers" in the sense that an ME or EE is. There are no "natural laws" that effect the development of integrated software/hardware solutions (with the exception of thruput and limitations of the hardware). Ethics and morals are not dictatable (see Congress and the officials we elect and that is apparent). The fact the "my word is my bond" relates only to how well I bind my words to my deeds and can not be enforced or aven stamped with approval from some organization. > > Like it or not, I think that the barn-storming days > are largely behind us, and that some form of regulation is inevitable. > It is important that we as a professional community take the initiative > and demonstrate that we are capable of regulating ourselves through > professional associations. As a member od DECUS, I would hate to see the day when someone bullies the organization into participating in this farce. I don't see it as important that the professional community enforce self-regulation. Regulation is done by the fact that the incompetent are not hirable (your company does check references don't they?) and that if you work for a company that "doesn't fire people once they are hired in" these non-able workers are placed in projects that have nowhere to go and are career dead-ends. Licensing will be just one more piece of useless paper. College degrees are already proving to be that way, why add another layer of bullcrap to the ammount of garbage that already appears after peoples names. I can see the future that you speak of... Bill Brown BS MS PhD ACMPL IEEEPL DECUSPL STATEOFCALIFPL (where PL is a professional license from that organization). This is additional bull, and it proves nothing about the individual! > If we don't, we will lose credibility over time. What credibility? I am only as good as the last task that I completed. If I did a good job then I should have no problem moving on and up. If on the other hand the project was a mess and I was responsible, well then I will get what I deserve. > Software "workers" right now enjoy the advantage of an artificially > small labour pool, and this makes it very easy to get cavalier about > job security. But this labour pool will grow, and when it > does, salaries will no longer be as high and the job market will no longer > be candy land. Potential employers faced with candidates of equivalent > experience will be forced to look at credentials in order to make > a decision, ie education and licensing. > > - Gordon > I don't know where you get the 'small labor pool', but in southern calif. there are two applicants for every opening (well, that's a tad overstated, but there are more applicants than openings). As someone involved with hiring (from time to time) I am more inertested in overall capabilities as to how they relate to the position that I am filling than what paper the person has. If all things are equal (experience) I will determine my selection by the one I felt most comfortable talking with, paper/credentials are *never* an issue. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | J.M. Ivler at Douglas Aircraft in Long Beach, CA - VOICE: (213) 496-8727 | | INTERNET: jmi@devsim.mdcbbs.com | UUCP: uunet!mdcbbs!devsim.mdcbbs!jmi | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mike@cs.arizona.edu (Mike Coffin) (11/28/89)
From article <16107@duke.cs.duke.edu> (Charlie Martin): > ...In both of these [currently liscensed professions], and most or > all of your examples, the profession is licensed in part because > there is a real risk involved in incompetent performance, and > because there is a perceived societal need to guarantee that those > who perform the task are competent... A more cynical point of view is that they are all professions in which the ``ins'' have exerted themselves to ensure that the unwashed masses aren't allowed to compete. My guess is that if software licenses are ever required it will be for precisely that reason. -- Mike Coffin mike@arizona.edu Univ. of Ariz. Dept. of Comp. Sci. {allegra,cmcl2}!arizona!mike Tucson, AZ 85721 (602)621-2858