[comp.software-eng] Programmer Licensing?

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