attributes of a software engineer
TRANSCRIPT
-
7/31/2019 Attributes of a Software Engineer
1/94
-
7/31/2019 Attributes of a Software Engineer
2/94
Software Engineering InstituteCarnegie Mellon University
Pittsburgh, Pennsylvania 15213
Unlimited distribution subject to the copyright.
Technical Report
CMU/SEI-96-TR-004
ESC-TR-96-004
September 1996
A Mature Profession of Software Engineering
Gary Ford
Norman Gibbs
-
7/31/2019 Attributes of a Software Engineer
3/94
This report was prepared for the
SEI Joint Program Office
HQ ESC/AXS
5 Eglin Street
Hanscom AFB, MA 01731-2116
The ideas and findings in this report should not be construed as an official DoD position. It is published in the
interest of scientific and technical information exchange.
FOR THE COMMANDER
(signature on file)
Thomas R. Miller, Lt Col, USAF
SEI Joint Program Office
This work is sponsored by the U.S. Department of Defense.
Copyright 1996 by Carnegie Mellon University.
Permission to reproduce this document and to prepare derivative works from this document for internal use isgranted, provided the copyright and No Warranty statements are included with all reproductions and derivative
works.
Requests for permission to reproduce this document or to prepare derivative works of this document for external
and commercial use should be addressed to the SEI Licensing Agent.
NO WARRANTY
THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL
IS FURNISHED ON AN AS-IS BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRAN-
TIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT
LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTIBILITY, EXCLUSIVITY, OR
RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES
NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT,TRADEMARK, OR COPYRIGHT INFRINGEMENT.
This work was created in the performance of Federal Government Contract Number F19628-95-C-0003 with
Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research
and development center. The Government of the United States has a royalty-free government-purpose license to
use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so,
for government purposes pursuant to the copyright license under the clause at 52.227-7013.
This document is available through Research Access, Inc., 800 Vinial Street, Pittsburgh, PA 15212.
Phone: 1-800-685-6510. FAX: (412) 321-2994. RAI also maintains a World Wide Web home page. The URL is
http://www.rai.com
Copies of this document are available through the National Technical Information Service (NTIS). For informa-tion on ordering, please contact NTIS directly: National Technical Information Service, U.S. Department of
Commerce, Springfield, VA 22161. Phone: (703) 487-4600.
This document is also available through the Defense Technical Information Center (DTIC). DTIC provides ac-
cess to and transfer of scientific and technical information for DoD personnel, DoD contractors and potential con-
tractors, and other U.S. Government agency personnel and their contractors. To obtain a copy, please contact
DTIC directly: Defense Technical Information Center, Attn: FDRA, Cameron Station, Alexandria, VA 22304-
6145. Phone: (703) 274-7633.
Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder.
-
7/31/2019 Attributes of a Software Engineer
4/94
Technical ReportCMU/SEI-96-TR-004
ESC-TR-96-004
January 1996
A Mature Profession of
Software Engineering_____________________________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Gary Ford
Norman E. GibbsProfessional Infrastructure Team
Approved for public releaseDistribution unlimited.
Software Engineering InstituteCarnegie Mellon University
Pittsburgh, Pennsylvania 15213
-
7/31/2019 Attributes of a Software Engineer
5/94
This report was prep ared for the
SEI Joint Program OfficeHQ ESC/ ENS5 Eglin StreetHanscom AFB, MA 01731-2116
The ideas an d find ings in this report should not be construed as an official DoD position. Itis published in the interest of scientific and techn ical information exchange.
Review and Approval
This report has been reviewed and is approved for publication.
FOR THE COMMANDER
(signature on file)
Thom as R. Miller, Lt. Col., USAFSEI Joint Program Office
This work is sponsored by the U.S. Departm ent of Defense.
Copyright 1996 by Carnegie Mellon Un iversity
This work w as created in th e perform ance of Federa l governm ent Con tract Nu mber F19628-95-C-0003
with Carnegie Mellon University for the operation of the Software Engineering Institute, a Federally
Fund ed Research and Developm ent Center. The Governm ent of the United States has a royalty-free
government purpose license to use, duplicate, or disclose the work, in whole or part and in any
mann er, and to have or perm it others to do so, for government pu rposes.
This material may be reproduced by or for the U.S. Government pursuant to the copyright license
under the clause at 52.227-7013.
This document is available through Research Access, Inc., 800 Vinial Street, Pittsburgh, PA 15212:
Phone: 1-800-685-6510. FAX: (412) 321-2994. RAI also main tains a Mosa ic home page. The URL is
http:/ / www .rai.com.
Copies of this document are available through the National Technical Information Service (NTIS).
For information on ordering, please contact NTIS directly: National Technical Information Service,
U.S. Dep artm ent of Com mer ce, Springfield, VA 22161. Phone: (703) 487-4600.
This docum ent is also available through the Defense Technical Information Center (DTIC). DTIC
provides access to and transfer of scientific and technical information for DoD personnel, DoD
contractors and potential contractors, and other U.S. Government agency personnel and their
contractors. To obtain a copy, please contact DTIC d irectly: Defense Technical Information Center,
Attn : DTIC-OCP, 8725 John J. Kingman Road , Suite 0944, Ft. Belvoir, VA 22060-6218. Phone: (703)
767-8019/ 8021/ 8022/ 8023. Fax: 703-767-8032/ DSN-427.
Use of any trademarks in this report is not intended in any way to infringe on the rights of the
trademark holder.
-
7/31/2019 Attributes of a Software Engineer
6/94
Table of Contents
In t r od u ct ion 1
1 A Mod e l t o Ch a r a c t e r ize a Ma t u r e P r ofe ss ion 3
1.1 Defin it ions of Profession 3
1.2 A Model of a Profession 4
1.3 What Const itutes a Mature Profession? 6
2 E xp lor in g a n d Va lid a t in g t h e Mod e l 10
2.1 In it ia l Professional Educat ion 10
2.2 Accredita t ion of P rofessional Educat ion Programs 11
2.3 Skills Development 12
2.4 Cer t ifica t ion 13
2.5 Licensing 142.6 Professional Development 15
2.7 Code of Ethics 16
2.8 Professional Society 17
2.9 Conclusions 18
3 Th e Soft w a r e E n gin e e r in g P r ofe ss ion 19
3.1 In it ia l Professional Educat ion 19
3.2 Accredita t ion 23
3.3 Skills Development 25
3.4 Cer t ifica t ion 27
3.5 Licensing 30
3.6 Professional Development 323.7 Code of Ethics 34
3.8 Professional Society 34
3.9 Summary 35
R e fe r e n ce s 37
Ap p e n d i x 1 M a st e r s P r o g r a m s in S o ft w a r e E n g i n e e r in g in U n i t ed S t a t e s
Un ive r s it ie s 38
Ap p e n d ix 2 U n d e r gr a d u a t e S oft w a r e E n gin e e r in g P r o gr a m s in t h e
Un it e d Kin gd om a n d Au s t r a lia 39
Ap p e n d ix 3 Ou t lin e of ICCP Soft w a r e E n gin e e r in g E xa m in a t ion 40
Ap p e n d ix 4 Ou t lin e of ASQC Cer t ifica t ion E xa m in a t ion 42
Ap p e n d ix 5 Cer t ifica t ion a s a Con d it ion of E m p loym e n t 43
Ap p e n d i x 6 E x ce r p t s fr o m E n g i n e er i n g Li ce n s in g S t a t u t e sP u r p o s e
of Lice n s in g 44
CMU/SEI-96-TR-004 i
-
7/31/2019 Attributes of a Software Engineer
7/94
Ap p e n d ix 7 E xc er p t s fr o m En g in e er in g Lic en s in g St a tu t e sD efin it ion s 46
Ap p e n d i x 8 E x ce r p t s fr o m E n g in e e r i n g L ic e n s in g S t a t u t e s L ic e n si n g
R eq u ir em e n t s 49
Ap p e n d ix 9 E xc er p t s fr o m E n gin e er in g Lic en s in g St a tu t e sE xe m p tion s 55
Ap pe n d ix 10 E xce r p ts fr om Ca lifo r n ia Bu sin ess an d P r ofess ion C od e 57
Ap p e n d ix 11 Ne w J er sey Soft w a r e Des ign e r s Lice n sin g Bill 59
Ap p e n d ix 12 T e xt o f Ne w J e r sey ASME St a t e m e n t 64
Ap p e n d ix 13 E xa m p le s o f Lice n sed Occu p a t ion s 65
Ap p e n d ix 14 Oa t h of H ip p ocr a t e s 67
Ap p e n d ix 15 P r in c ip le s of Med ica l E t h ics 68
Ap p e n d ix 16 Cod e of E t h ics o f t h e Id a h o Ba r Associa t ion 69
Ap p e n d i x 17 C a l ifo r n i a S t a n d a r d s o f P r o fe s si on a l Co n d u c t fo r
Accou n t a n t s 73
Ap p e n d i x 18 M od e l R u l e s o f P r o f es s io n a l C o n d u c t o f t h e N a t i o n a l C o u n c i l
of E xa m in e r s fo r E n gin e e r in g a n d Su r ve yin g 74
Ap p e n d ix 19 P e n n sy lva n ia E n gin e e r s Cod e of E t h ics 77
Ap p e n d ix 20 ACM Cod e of E t h ics a n d P r ofe ss ion a l Con d u ct 78
Ap p e n d ix 21 IE E E Cod e of E t h ics 80
Ap p e n d ix 22 ICCP Cod e of E t h ics 81
Ap p e n d ix 23 ICCP Cod e s of Con d u ct a n d Good P r a c t ice 82
ii CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
8/94
List of Figures
Figure 1.1: Levels and Components of the Model of a Profession 5
Figure 1.2: In frast ructure-Level Components of a Profession 6
F igur e 1.3: E xa mples of In ter act ions a mong Com ponent s of a P rofession 7
List of Tables
Table 2.1: Percentage of Licensed Engineer ing Graduates 15
Table 3.1: Evolu t ion of Com pon en t s of t h e Soft ware En gin eer in g P rofess ion 36
Ta ble A14.1: L icen sed Occu pa tion s Ot her Th an H ea lin g Ar ts (Ca lifor nia ) 65
Table A14.2: Licensed Healing Ar t s Occupat ions (Californ ia) 66
Table A14.3: Occupat ions Requir ing Regist ra t ion (California) 66
Table A14.4: Occupat ions Requir ing Cer t ifica tes (California) 66
Table A14.5: Other Regula ted Occupat ions (California) 66
CMU/SEI-96-TR-004 iii
-
7/31/2019 Attributes of a Software Engineer
9/94
iv CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
10/94
A Mature Profession of Software Engineering
Ab s t rac t : A model is present ed th at allows the cha ra cterization of the ma tur ity
of a pr ofession in ter ms of eight infrast ru ctur e component s: initial professiona leducat ion, accredit at ion, skills developmen t, cert ificat ion, licensing, p rofessiona l
developmen t, a code of eth ics, and a professiona l society. Severa l mat ur e profes-
sions ar e exam ined to provide exam ples of th e nat ur e of th ese componen ts. The
current states of the components of software engineering are described, and
predictions are made for the evolution of those components as the profession
matures .
Introduction
Software engineering is a relatively young profession, and almost everyone would con-
sider it t o be imma tur e. In 1995, the SE I under took an effort to cha ra cterize and model
the evolution and maturation of professions in order to understand how the software
engineerin g profession might d evelop. It wa s our belief th at an a ppropriat e vision of a
future, mature profession of software engineering would help guide current activities to
accelerat e achieving the vision. This report describes th at fut ur e vision.
The report cont ains t hr ee cha pter s. Cha pter 1 defines basic ter ms (such as profession)and develops a model by which the maturity of a profession can be characterized.
Chapter 2 explores and validates the model by applying it to several common profes-
sions. Chapt er 3 th en uses t he model to describe the chara cteristics of a m atu re soft-
war e engineering profession a nd su ggests how th at vision might be achieved.
Throughout the report, examples of characteristics of common professions (such as
medicine, law, and engineering) are used to suggest how the comparable characteristics
of th e softwar e engineering pr ofession might evolve. The deta ils of those exam ples
appear in the appendices.
CMU/SEI-96-TR-004 1
-
7/31/2019 Attributes of a Software Engineer
11/94
2 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
12/94
1 A Model to Characterize a Mature Profession
Wha t is a profession? What is a mat ur e profession?
Ea ch of us pr obably ha s some intu itive ideas th at a nswer t hese quest ions. We believe,
however, t ha t good a nswer s to th ese quest ions r equire a n explicit model of a pr ofession.
With a good model, we can more precisely describe what constitutes a profession and
how a profession evolves from its initia l stages to ma tu rity. We can also use a model to
predict h ow a n ew pr ofession such a s softwa re engineerin g is likely to evolve.
This chapter surveys definitions of the term profession, identifies common themes in
those definitions, introduces a model of a profession as a set of components, and then
develops a wa y of char acter izing th e ma tu rity of a pr ofession in ter ms of th e ma tu rity of
the components.
1.1 Definitions of Profession
The term profession is fundamental to our discussion, so we begin by examining pub-
lished definitions of th is ter m.
Websters N inth New Collegiat e Dictiona ry [Webster 83] gives th is definition:
profess ion ... 4 a : a calling requ iring specialized knowledge an d often long a nd
intensive academic prepara tion b : a prin cipal calling, vocation, or em ployment
c : th e whole body of persons engaged in a calling.
It a lso gives th ese definitions of th e relat ed ter ms professional and profession alism :
p ro fes s i o n a l ... 1 a : of, relating to, or characteristic of a profession b : engaged
in one of th e lear ned p rofessions c : char acter ized by or conform ing to th e
technical or et hical sta nda rds of a pr ofession ...
p ro fes s i o n a l i s m ... 1 : the conduct, aims, or qua lities tha t char acterize or m ar k
a profession or a professiona l person ...
The In ter na tional En cyclopedia of th e Social Sciences [IESS 68] sta tes t ha t t he core cri-
ter ia for a profession a re
(a) a requirement of formal training accompanied by some institutional mode of
validating both the adequacy of the training and the competence of trained indi-viduals
(b) a requirement that skills in some form of the use of the training must be
developed
(c) some means of making sure that such competence will be put to socially
responsible uses
CMU/SEI-96-TR-004 3
-
7/31/2019 Attributes of a Software Engineer
13/94
The United Sta tes ha s adopted labor laws and regulations whose interpreta tion r equires
an understanding of what is meant by a professional employee, as contrasted with
oth er kinds of employees. Towar d tha t end, th e US Code of Feder al Regulations [29
CFR Sec. 541.3] defines an employee employed in a professional capacity as one
(a) Whose prima ry du ty consists of th e per form an ce of:
(1) Work requiring knowledge of an advanced type in a field of science or
learning customarily acquired by a prolonged course of specialized intellec-
tua l instruction a nd st udy, as distinguished from a general academic educa-
tion and from an apprenticeship, and from training in the performance of
rout ine ment al, man ua l, or physical processes, or
(2) Work that is original and creative in character in a recognized field of
artistic endeavor (as opposed to work which can be produced by a person
endowed with general manual or intellectual ability and training), and the
result of which depends primarily on the invention, imagination, or talent of
the employee, ...
(b) Whose work requ ires t he consist ent exercise of discret ion a nd judgmen t in itsperformance; and
(c) Whose work is predomina nt ly int ellectua l and varied in cha ra cter (as opposed
to routine mental, manual, mechanical, or physical work) and is of such charac-
ter that the output produced or the result accomplished cannot be standardized
in r elation t o a given per iod of time; ...
1.2 A Model of a Profession
The definitions above suggest that, at the highest level, a profession involves a set of
persons usin g knowledge to engage in a set of activities. In th is report we use t he ter mprofessionals to denote that set of persons and the term professional practice to denote
th at set of activities.
Looking below that highest level, we find that the definitions suggest that there are
several oth er component s of a pr ofession.
The definitions all imply that professionals have completed an intensive course of
specialized study. In th is report we use th e term init ial professional education to denote
the portion of that course of study that is completed prior to engaging in professional
practice. We use the term professional developm ent to denote additional study under-
ta ken a fter beginn ing professiona l practice.
The definitions suggest that professionals have not only acquired knowledge (throughinitial pr ofessiona l education), but th at th ey have a lso acquired a level of skill in apply-
ing tha t kn owledge. Some professions have highly str uctu red activities to allow indi-
viduals to acquire th ose skills. We use th e term skills d evelopm entfor th ose activities.
Pr ofessions m ust ha ve ways to assess an d assu re t he a dequacy of education a nd t ra in-
ing an d th e compet ence of individual pr ofessiona ls. Comm on form s of th ese component s
are accreditation of professional education programs and certification and licensing of
individuals.
4 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
14/94
Professions must have ways to assure that the knowledge and skills of individual pro-
fessiona ls ar e put to socially responsible uses. One comm on form of th is componen t is a
code of ethics. In some cases, th is component ma y be called a code of practice or a code
of condu ct.
Fin ally, alth ough n ot explicitly mentioned in th e definitions, th ere is an imp licat ion t ha t
a profession has an identitythat the professionals see themselves as part of commu-nity of like-minded individua ls who car e about th e qua lity of their professiona l pra ctice.
This identity usually manifests itself in the form of a professional society . Most profes-
sionals belong to the society, which, mostly through volunteer efforts, promotes the
developmen t a nd in ter actions of the other component s of th e profession.
To summ ar ize, we ha ve modeled a profession a t two levels, with each level consist ing of
component s. We call th ese levels th e practit ion er level and the infrastructure level.
Figur e 1.1 lists th e component s at each level.
P r a ct it ion e r Leve l In fr as t r u c t u re Le ve l
ProfessionalsKnowledge
Pr ofessiona l Pr actice
Initia l Professiona l Educat ionAccreditation
Skills Development
Certification
Licensing
Pr ofessional Developmen t
Code of Et hics
Professional Society
Fi g u r e 1 .1 : Lev e ls an d Co m p o n en t s o f t h e Mo d e l of a P ro fes s io n
Figure 1.2 shows the infrastructure-level components of a profession and suggests a
typical pat h for a per son choosing to ent er th at pr ofession. In th e figure, the boxes
represent the activity and organizational components, and the magnifying glasses
represent quality assura nce components.
The aspiring professional first undertakes initial professional education (the education
th at precedes th e first day on th e job; usu ally provided by a un iversit y); the qua lity of a
professiona l degree pr ogra m is assu red by accredita tion. To become a pr ofessiona l, he
or she must develop skill in the application of that education (through university co-op
program s, on-th e-job tr ainin g, appr ent iceships, inter nsh ips, or other mea ns). Cert ifica-
tion an d/or licensing a ssur es th e compet ence of th e individua l to ent er pr ofessional pra c-
tice. Thr oughout pr actice, th ere ar e periods of professiona l developmen t, possiblyresu lting in recertification or relicensing. The profession assu res th at its pra ctitioner s
beha ve in a responsible man ner by defining a code of eth ics. A professiona l society
helps assure t hat all the other components intera ct a ppropriately.
CMU/SEI-96-TR-004 5
-
7/31/2019 Attributes of a Software Engineer
15/94
Professional Practice
Professional Development
Continuing Education ContinuingTraining
SkillsDevelopment
InitialProfessionalEducation
Code of Ethics
Accreditation
CertificationLicensing
Professional Society
Fi g u r e 1.2 : In f r a s t r u c t u r e -Lev e l Co m p o n en t s of a P r o fes s io n
The interactions among the components of a profession are actually considerably more
complex th an m ight be inferred from Figur e 1.2. For example, th e requirem ent s for
professiona l licensing can ha ve a significan t effect on th e cont ent of initial pr ofessiona l
educat ion. A professiona l society ma y man age th e cert ificat ion pr ocess or ma y develop
th e code of eth ics. Cert ificat ion guidelines can influence the cont ent of professiona l
development. Figur e 1.3 shows some of th ese int era ctions. Note tha t th e overall effectof these inter actions is impr oved pr ofessiona l pra ctice.
1.3 What Constitutes a Mature Profession?
We have often h eard it st at ed tha t softwar e engineering is an immat ur e profession. To
make sense of this assertion, we need to develop our model further to include the
concept ofmaturity. We can appr oach th is in severa l ways: a global concept of ma tu rity
applicable to the global concept of a profession, a concept of maturity for each of the two
levels of our model, or concepts of ma tu rity for t he individua l component s th at ma ke u p
a level of th e model.
Our investigations have convinced us that it is not productive to attempt a top-down
definition of ma tu rit y for a profession. The overa ll concept of a pr ofession is too int an -
gible to permit meaningful assessment or measurement of what we might want to call
maturity.
6 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
16/94
Certification
ProfessionalDevelopment
ProfessionalPractice
influences influences
influencesinfluences
influences
improvesprepares for
improves
influences
developsmanages
raises minimum raises minimum
raisesminimum
preparesfor
improves
preparesfor
prepares
for
ProfessionalSociety
Accreditation
InitialProfessional
Education
SkillsDevelopment
Code of
Ethics
Licensing
Fi g u r e 1.3 : E x am p l es o f In t e ra c t i o n s am o n g Co m p o n en t s o f a P ro fes s io n
On th e oth er ha nd, a bott om-up appr oach seems feasible. In oversimp lified ter ms, we
can try to define maturity for each of the components in our model, and then define the
maturity of the profession as a function (such as a weighted average) of the maturities
of th e component s.
We tried this approach using the practitioner level of the model, with little success.
Consider t he th ree component s at t ha t level: professiona ls (people), knowledge, and
professiona l practice (activities). What would const itut e ma tu rity of each of th ese com-
ponents?
The maturity of people can be assessed in the biological sense or in the intellectual
sense, but n either a ssessment is pa rticularly useful in describing the m at urity of a pr o-
fession. The ma tu rity of kn owledge seems impossible to cha ra cterize; our investigations
suggest that the body of knowledge for any given profession continues to evolve over
time an d tha t th ere is no definable point at which it changes from immatu re to matu re.
Similarly, professional practice evolves as the body of knowledge changes, so it seems
impossible to identify th e point a t which th at pra ctice has become ma tu re.
CMU/SEI-96-TR-004 7
-
7/31/2019 Attributes of a Software Engineer
17/94
The bottom-up approach was mu ch m ore su ccessful when applied at the infra stru ctur e
level of th e model. At th at level, th e componen ts ar e substa nt ially more tan gible an d
identifiable, an d we can come closer to recognizing t heir sta ges of (im)mat ur ity.
We have chosen t o char acter ize th e ma tu rity of th e infrast ru ctur e-level component s of a
profession in t erm s of four developmen ta l or evolutionar y sta ges:
0. Nonexistence The component does not exist in an y form even remotely
relat ed to th e given pr ofession.
1. Ad Hoc Som e rela t ed form of t h e com pon en t exis ts , bu t it is n ot
identified with th e given profession.
2 . Specific The component exis t s and is clear ly iden t ified with the given
profession.
3 . Matur ing The component has exis ted for many years, dur ing which t ime
it ha s come un der th e active stewardsh ip of an appr opriate
body within th e pr ofession an d is being cont inua lly impr oved.
As an example, let us describe possible stages of the licensing component for a future
softwa re engineering profession:
0. Nonexistence There is no professional license of an y kind th at in a ny way
men tions electronic compu ting in an y form . This sta ge existed
up t o 1960 and probably a little beyond.
1. Ad Hoc Sta t e licens in g a s a profess ion a l en gin ee r r equ ir ed s om e
knowledge of electr onic circuits, per ha ps in cluding digita l
electronics, and later some knowledge of basic concepts of
comput er progra mming. This stage probably began in the
1960s and cont inues t o today.
2. Sp ecific S ta t e licens in g a s a profess ion a l en gin ee r can be bas ed pa r t ly
on a n exa mina tion specifically designed t o address softwar e
engineering k nowledge, as is now the case for sever al other
engin eer ing disciplines (civil, mecha nical, electr ical, etc.). Thisstage ha s not yet been reached in an y of the 50 stat es of the
United States.
3 . Matur ing Sta te licensing is based on examinat ions appropr ia te for
softwa re engineer s, with th e full coopera tion an d endorsemen t
of orga nizat ions s uch a s t he N at iona l Society of Professiona l
En gineers an d th e Nat iona l Coun cil of Exa miner s for
Engineering an d Surveying. Licensing requirement s are
compa ra ble in all the sta tes. Licensing of softwa re engineer s is
recognized and accepted by th e profession a s being mean ingful
in appr opriate situ at ions a s a way of protecting the pu blic.
With these definitions of the maturity stages of the infrastructure components, we candefine a mat ur e profession a s one whose components h ave reached th e ma tur ing stage.
The m edical pr ofession provides a n illust ra tion of th e power of th is appr oach t o defining
ma tu rity. In th e 1930s, th e eight infra str uctur e component s of th e medical profession
were already a ll in t he m atu ring sta ge, which would cause us t o say that the profession
was mat ure at tha t time. We also note that in th at er a, the profession did not yet know
about penicillin, the structure of DNA, or the genetic basis of many diseases, and they
did not have such technologies as heart-lung machines and magnetic resonance imag-
8 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
18/94
ing. However, becau se of th e mat ur e infra str uctur e, new knowledge an d technologies
were adopted by the pra ctitioner commu nity as th ey appearedtha t is the great advan-
ta ge of ha ving a mat ur e profession.
The m edical pr ofession also illustr at es our a ssert ion a bove tha t it is impossible to define
ma tu rity for t he body of knowledge of a profession. By todays st an dar ds, th e kn owledge
and technologies of the medical profession in the 1930s were something less thanma tu re. However, by the st an dar ds of th e 2050s, todays kn owledge an d technologies
will seem less tha n ma tu re. The body of knowledge will always be evolving, thu s
ma king it impossible to ident ify a point at which it becomes mat ur e.
In Chapter 3 of this report, we will present our assessment of the current maturity
sta ges for th e component s of a pr ofession of softwa re engineerin g an d our predictions for
how those componen ts m ight evolve. Before doing tha t, we need t o explore t he form s
that these components take in professions that are commonly recognized as being
mature.
CMU/SEI-96-TR-004 9
-
7/31/2019 Attributes of a Software Engineer
19/94
2 Exploring and Validating the Model
We intr oduced a model of a pr ofession in Cha pter 1 with t he goal of providing an appr o-priate structure by which we could describe the future of the software engineering pro-
fession. Before at tem pting to develop tha t description, we need to explore the m odel, by
which we mean examine each of th e component s of th e model in t he cont ext of th e com-
mon professions. It is thr ough th is explora tion t ha t we will be able to under stan d the
full range of possibilities for each of the components.
An obvious quest ion at th is point is this: wha t occupat ions ar e commonly rega rded a s
professions? Ther e ar e ma ny, but we ha ve chosen to explore t he model by looking pri-
marily at medicine (including, as appropriate, nursing, dentistry, and other healing
ar ts), law, engineering, an d accoun ting.
This cha pter cont ain s nine sections. Ea ch of th e first eight explores one of th e eight
component s. The fina l section present s our conclusions on th e validity of th e eight -component model for characterizing the infrastructure of a profession and the useful-
ness of th e model for guiding efforts t o improve tha t infra str uctur e.
2.1 Initial Professional Education
The United States higher education system provides a wide spectrum of educational
program s. Towar d one end of th at spectr um a re program s providing wha t is comm only
called liberal education; toward the opposite end are programs providing professional
education.
We could define profession al education in the broadest sense to be that education thatprovides the specialized knowledge needed to pursue a particular craft, trade, vocation,
or pr ofession. For t he pu rposes of th is report, however, we choose a somewha t n ar rower
interpretation, along the lines of the wording in the U. S. Code of Federal Regulations
cited in Cha pter 1: professiona l education provides kn owledge of an a dvan ced type in a
field of science or learning customarily acquired by a prolonged course of specialized
intellectu al instr uction an d st udy.
Initia l professiona l educat ion for th e comm on professions occurs a t two levels, baccala u-
rea te and post-baccala ur eat e. Exam ples of professions and th e typical entr y-level
degrees include:
Med i c i n ephysician: Doctor of Medicine (MD)
dent ist: Doctor of Dent al Sur gery (DDS)
nu rse: Bachelor of Science in Nu rsing (BSN)
La w
lawyer : Doctor of J ur isprudence (J D)
10 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
20/94
E n g i n e e r i n g
civil engin eer : Bachelor of Science in Civil En gineer ing (BSCE)
mechanical engineer: Bachelor of Science in Mecha nical En gineering (BSME)
A r c h i t e c t u r e
arch itect : Bachelor of Arch itecture (BArch)
landscape architect: Bachelor of Landscape Architecture (BLA)Acco u n t i n g
accountan t : Bachelor of Science in Account ing
We note that there is a trend toward broader ranges of professionals participating in
some professions, resulting in a wider range of kinds of initial professional education.
For exam ple, Stan ford U niversity offers four different degr ees for st uden ts int erest ed in
th e legal profession: Doctor of J ur ispru dence, Doctor of J ur istic Science, Mast er of
Science in Law, an d Master of J ur ispru dence. The medical profession ha s para medics,
nu rses, physician s assist an ts, an d ma ny kinds of technicians; none of th ese requir es
post-baccalau rea te educat ion (in some cases, only a t wo-year associates degree is
needed). The engineer ing profession h as t echn icians a nd t echnologists who need two- or
four-year degrees at the baccalaureate level.
We also note th at t he level of initial professiona l educat ion can chan ge. For ma ny years,
pharmacists have entered the profession with a Bachelor of Science in Pharmacy degree.
In 1992, the American Association of Colleges of Pharmacy approved the Doctor of
Ph ar ma cy as th e entr y-level degree for all of its member s. By th e tur n of th e cent ur y,
only those with the doctoral degree will be eligible to take the licensing examination.
Schools of pharmacy are currently revising their curricula, but it is not yet clear what
the en tra nce requirement s will be. It is possible that two years of general studies rat her
th an a four -year degree will be sufficient for en tr y into the doctora l progra m.
We see, in the engineering profession, the possibility of another shift in the level of
initial professiona l educat ion. Dur ing th e middle of th is cent ur y, engineerin g un der-
gra dua te degrees were comm only five-year program s. Over time, various pressu res led
universities to evolve these into four -year progra ms. In t he last t en years, the ra pid
growth of technical kn owledge ha s m ade it in creasingly difficult for engineering schools
to teach the st udent s what they need to know in only four years, and pr essure is build-
ing to expand pr ogra ms to five years a gain. However, man y people believe tha t inst ead
of a five-year program leading to a bachelors degree in engineerin g, studen ts should
pur sue a five-year pr ogra m th at leads to both a bachelors degree an d a ma ster s degree.
The Massa chusett s In stitut e of Techn ology has begun experimenting with this a pproach
in some of its engineering program s. Severa l oth er engineer ing schools are also tr ying
var ious form s of ma ster s degrees for their en gineering stu dent s [Fitzgera ld 96]. If th is
idea is widely accepted, t he m ast ers degree m ay become t he en tr y-level degree for t he
engineerin g pr ofession.
2.2 Accreditation of Professional Education Programs
Accreditat ion is a mecha nism to assur e the qua lity of educat iona l program s. Colleges
and universities in the United States normally have institutional accreditation from a
CMU/SEI-96-TR-004 11
-
7/31/2019 Attributes of a Software Engineer
21/94
regiona l association, of which th ere a re s ix:
Middle St at es Associat ion of Colleges an d Schools
New E ngland Association of Schools an d Colleges
North Central Association of Colleges and Schools
Nort hwes t Associat ion of Schools and Colleges
Southern Association of Colleges and SchoolsWeste rn Associa tion of Schools a nd Colleges
In addition, there are specialized accreditation bodies that accredit individual programs
within a school. The a cademic an d professiona l comm un ities genera lly consider a ccredi-
tation bodies to be legitimate only if those bodies are themselves recognized by the
Council on Recognition of Postsecondary Accreditation (CORPA) and by the United
Stat es Departmen t of Education.
The professional programs at many colleges and universities are accredited by bodies
associat ed with a pa rt icular profession. Exam ples from th e common professions include
Med i c i n e
Accreditat ion Coun cil for Cont inuing Medical Edu cation
Accreditat ion Coun cil for Gra dua te Medical Edu cation
Accreditat ion Review Committ ee on E ducat ion for Ph ysicians Assistan ts
American Feder at ion of Medical Accredit at ion
Comm ission on Dent al Accreditat ion of th e American Dent al Associat ion
Council on Medical Education of the American Medical Association
La w
American Bar Associat ion
A r c h i t e c t u r e
Na tional Architectu ra l Accreditin g Boar d
American Society of Landscape Architects
E n g i n e e r i n gAccreditat ion Boar d for En gineering a nd Techn ology (ABET)
There are a few other university-level programs that are sometimes accredited.
Programs in computer science can be accredited by the Computing Sciences Accredita-
tion Boar d (CSAB). Pr ogra ms in chem istr y ar e often accredited by th e Amer ican
Chemical Society. However, at th is time neith er compu ter science nor chem istry is
widely regar ded as a p rofession.
2.3 Skills Development
In addition to learning a body of knowledge, persons entering a profession are alsoexpected t o develop skill in t he a pplicat ion of th at kn owledge. Skills developmen t t ak es
man y forms.
Historically, one of the most common forms of skills development was apprenticeship .
Prior to the 20th century, apprenticeships were also more common than college degrees
as t he pr imar y mecha nism for lear ning th e body of kn owledge of a pr ofession. In en gi-
neering, it wa s not u ntil 1916 that more tha n 50% of practicing engineers h ad a ny kind
of college degree.
12 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
22/94
Today, most professional programs in colleges and universities include skills develop-
ment in the form of laboratory courses, student projects, design competitions, special
sum mer off-cam pus p rogram s, or cooperat ive educat ion (placing stu dent s in indu str y for
one or m ore sem ester s).
Per ha ps th e most visible skills developmen t occurs in th e medical profession. Ph ysi-
cian s ar e expected t o develop a ra nge of skills prior t o and ea rly in pr ofessiona l pra ctice.Examples include the use of various instruments (without causing undue discomfort to
the patient), performing examina tions, ta king patient medical h istories, and diagnosing
illnesses. In some cases, developing th ese skills begins very ear ly in m edical school. For
example, at some medical schools, students practice examination skills on each other
within the first two weeks of the first year, and they are assisting in examination of
actua l patients sh ortly after th at . In other cases, physicians will spend year s developing
the skills, such as the diagnosis skills or surgical skills developed during the residency
period. For most of th e skills requir ed of physician s, the medical profession h as pr e-
scribed effective, str uctu red mechan isms for developing t hem .
Some professions have informal apprenticeships, during which time new practitioners
develop a r an ge of skills. In t he legal profession, ma ny recent grad ua tes of law schoolsspend time as law clerks where they develop their skills in legal research and writing.
Recent engineering graduates often spend a period of time as an engineer-in-training
prior to taking a stat e licensing examina tion.
2.4 Certification
Certification and licensing are often confused, because they are both intended to be
mecha nisms t o assu re th e competence of professiona ls. Somewhat inform ally, we dis-
tinguish them in t his way:
Certification is a volunt ar y process adm inister ed by a profession.
L icen sing is a ma ndat ory process administered by a government al au thority.
Unfortu nat ely, the popular u sage of the t wo term s is not th is cleanly separa ted. To
further complicate the matter, the term registration is also sometimes used for similar
mechanisms.
Perhaps the most widely known professional certification is in the accounting profes-
sion, where a practitioner is commonly referred to as a Certified Public Accountant
(CPA). The medical profession has the most exten sive certification progra m. The
Na tional Board of Medical Specialties offers cert ificat ion in more th an 20 different ar eas
of medicine, such a s sur gery, psychiat ry, an d an esth esiology.
Cert ificat ion program s are somet imes administ ered by a professiona l society. For
example, the American Society for Quality Control (ASQC) offers several kinds of certi-
fication, including a n ew program to cert ify software qua lity engineers.
Some certification programs are administered by not-for-profit organizations, usually
with a boar d of directors from th e profession. An exam ple is the In stit ut e for the Cert i-
fication of Computing Professionals, Inc. (ICCP), whose board includes representatives
from several compu ting-relat ed pr ofessiona l societies.
CMU/SEI-96-TR-004 13
-
7/31/2019 Attributes of a Software Engineer
23/94
In the engineering profession, professional engineers are supported by engineering
technicians and techn ologists. The Nat iona l Inst itut e for Certificat ion in En gineering
Technologies offer s cert ification with one of five designat ions : Associat e Engin eer ing
Technician, Engineering Technician, Senior Engineering Technician, Associate Engi-
neer ing Techn ologist, an d Cert ified Engineer ing Techn ologist. Of cour se, this does not
constitute certification of engineers, but it suggests the breadth of quasi-professional
positions with in a ma jor profession.
There are also certification programs offered by commercial companies, usually related
to their own products and ser vices. For examp le, Novell offers a pr ogra m leading to
designation as a Certified Network Engineer for persons who pass an examination on
Novells n etworking pr oducts; Apple Compu ter offers a program leading t o designa tion
as a n Apple Certified Server En gineer. This kind of cert ificat ion is not usua lly
regarded as profession al certification.
Cert ificat ion requir emen ts usu ally include education and experience. In most cases, a
written examination is used to determine the competency of the individual seeking
certification.
2.5 Licensing
We have chara cterized licensing as a man datory process administered by a governm en-
tal aut hority. In the United Stat es, tha t au thority is almost always at the stat e level,
ra th er th an a t th e nat iona l or local (county, city, township) level. However, for most
licensed professions, there are national organizations that advise the states on appro-
priate licensing requirements an d examinat ion conten t.
The pu rpose of licensing is th e protection of th e public. This th eme is explicitly sta ted
again a nd aga in in the laws of th e var ious sta tes (see Appendix 6). For example, the
Minnesota st atu tes include this statemen t:
In order to safeguard life, health, and property, and to promote the public
welfare, any person in either public or private capacity practicing, or offering to
practice, architecture, professional engineering, land surveying, or landscape
ar chitecture, or using th e title certified interior designer in th is stat e, eith er a s
an individual, a copar tn er, or as a gent of an other, sh all be licensed or certified as
her einafter provided. [Section 326.02, Subdivision 1]
Per ha ps the most widely recognized licensed professions ar e medicine and law. The
licensing requirements in these professions include a substantial amount of education
and t ra ining, plus passing a rigorous examina tion. Licensing is an absolute require-
men t for professiona l pra ctice in t hese pr ofessions.
En gineering is also a licensed pr ofession. However, th e laws of th e various sta tes differ
somewhat on the kind of work t ha t can only be perform ed by licensed engineer s. Most
states exempt engineers in industrial corporations from the licensing requirements (see
Appendix 10). For exa mple, section 6747 of the Ca liforn ia bus iness a nd professions code
states:
This cha pter , except for th ose pr ovisions which app ly to civil engineers an d civil
engineerin g, shall not be a pplicable to th e perform an ce of engineer ing work by a
14 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
24/94
manufacturing, mining, public utility, research and development or other indus-
trial corporation or by employees of such corporation, provided such work is in
conn ection with or incidenta l to th e pr oducts, syst ems, or ser vices of such corpo-
ra tion or its a ffiliat es.
As a resu lt of th is kind of exemption, most en gineers a re n ot licensed. Table 2.1 shows
the percentage of engineers in common engineering disciplines who do eventually seekstate licenses.
Discipline Licensed
Civil 44%
Mechanica l 23%
Elect r ica l 9%
Chemical 8%
All Engineers 18%
Tab l e 2 .1 : P e rcen t ag e o f L i cen s ed En g i n ee r i n g Gra d u a t e s
A discussion of professiona l licensing is complicated by two facts. Fir st, th ere a re
several variations on the licensing concept that go by different names, including regis-
tration and certification. For exam ple, in Ca liforn ia, registr at ion is r equired for psycho-
an alysts, optometr ists, and dispens ing opticians. Also in California, cert ificat ion is
required (by the state, not by the profession) for landscape architects, but architects are
licensed.
Second, there are several occupations that require state licenses, but that are not
usu ally consider ed professions. For example, in California, licenses are r equired forbarbers, locksmiths, private investigators, embalmers, automotive lamp and brake
adjusters, professional and amateur boxers, custom upholsterers, jockeys and exercise
boys in h orse or mu le ra cing, an d a bout 50 oth er occupa tions (see Appendix 13).
2.6 Professional Development
We use the term profession al developm ent to mean a ll th e activities inten ded to impr ove
or maintain the currency of the knowledge and skills of a professional after he or she
begins pr ofessiona l practice. It includes everythin g from th e occasional rea ding of an
article in a professional magazine to lengthy continuing education or training1 required
for relicensing or recertification.
1We distinguish education and training. Training involves the acquisition of specific skills through
instr uction an d pra ctice. The goal of tr aining is to reduce varian ce from the one best way to perform a
ta sk. It is usu ally provided in sm all pieces tha t can be immediat ely used in doing ones work. Educat ion
inherently has m uch broader goals tha n t raining; it seeks t o instill certain qualities in student s th at will
enable th em to respond effectively in the futu re to diverse int ellectua l challenges. It involves more than th e
mem orizat ion a nd recall of facts; it a lso must incorporat e stu dents development of critical t hinking a bilities
an d const ru ctive att itudes about t hemselves, their work, and society.
CMU/SEI-96-TR-004 15
-
7/31/2019 Attributes of a Software Engineer
25/94
Because professional development encompasses so many things, it was not possible to
find consist ent examples a cross t he r an ge of comm on professions. We did, however, find
two patterns.
First, professional development seems most important in professions where there is a
rapidly evolving body of technical knowledge on which professional practice is based.
Medicine is perhaps the most obvious examplethe growth of knowledge about thegenetic basis of diseases, new pha rma ceuticals, and new diagnostic and tr eatm ent tech-
nologies places grea t dem an ds on ph ysicians t o sta y cur ren t.
Second, in many professions, including engineering, professional development tends to
focus on small activities with short-term gains for particular projects, rather than on
long-term career d evelopmen t. For exam ple, it is more comm on for pr ofessionals to tak e
a short course on a particular tool or technique that will be used in their next job
assignment than it is for them to take courses on more fundamental advances in their
fields.
We note that there are many factors that might motivate a person to pursue profes-
siona l developmen t. To some exten t, it is the na tu re of people who th ink of th emselves
as pr ofessionals to want t o sta y abrea st of adva nces in t heir fields. However, we believe
that most professional development, especially continuing education, is motivated by
either economic or r egulatory factors. A bett er un derst an ding of th ose factors is helpful
to people planning for, designing, or providing professional development services.
The typical economic factor is the assumption that professional development will
improve the productivity of practitioners and/or the quality of their products and
services, both of which can cont ribut e to increa sed pr ofit for th eir em ployers.
A regulatory factor is exemplified by this excerpt from the statutes of the state of
Washin gton regar ding th e licensing of physicians:
... Every person licensed to practice medicine in this state shall register with the
secretary of health annually, and pay an annual renewal registration fee deter-
mined by the secreta ry as pr ovided in RCW 43.70.250. The commission ma y
establish rules governing mandatory continuing education requirements which
sha ll be met by physicians a pplying for r enewa l of licenses. The ru les shall pro-
vide that mandatory continuing education requirements may be met in part by
physicians showing evidence of the completion of approved activities relating to
professiona l liability r isk m an agemen t. ... [RCW 18.71.080]
We also note tha t th ere ar e cultu ra l factors tha t affect professiona l developmen t. For
example, we underst and tha t in Fr ance, in pr ofessions su ch a s medicine, atta ining the
appropriate u niversity degree an d pr ofessiona l license is a ll that is thought necessar y
it would almost be an in sult t o suggest th at th e pra cticing professiona l would need a ddi-
tiona l education or tr aining.
2.7 Code of Ethics
In order to ensure that its practitioners behave in a responsible manner, many profes-
sions have adopted a code of ethics (sometimes called a code of conductor code of prac-
tice). In fact, it is the accepta nce of an d th e commitmen t t o adh ere t o a code of eth ics
16 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
26/94
that makes many individuals feel that they are indeed part of a community of profes-
siona ls. A profession t ak es its r esponsibility to th e public seriously, as in dicat ed by its
creation and maintenance of a code of ethics, and by its specification of sanctions or
discipline for members who violate the code.
The medical and legal professions have the most extensive and mature codes of ethics
(medical eth ics began with th e oat h of Hippocra tes dat ing to about 400 B.C.). Theimportance of ethics in these professions is obvious, because individuals often must
tr ust their lives to their physicians a nd lawyers.
To illustr at e th e ra nge of issues a ddress ed by codes of eth ics, Appendices 15 thr ough 24
present several examples of codes (or topic outlines of the codes).
2.8 Professional Society
As a profession develops, volun ta ry ass ociat ions of pr ofessiona ls ten d to emer ge. At
first, they may be scholarly societies whose purpose is to promote the exchange of
kn owledge in su pport of professiona l pra ctice. Over time, t hey ma y evolve into orga ni-zat ions with a wide ra nge of goals an d responsibilities. Scholar ly activities may include
publishing jour na ls, condu cting conferen ces and symposia, designing m odel cur ricula for
professional education programs, and publishing text or reference books for profession-
als. They may also take on various regulat ory functions, such as defining cert ificat ion
criteria, managing a certification program, or managing accreditation of professional
educat ion pr ogra ms in un iversities. They often define codes of eth ics an d specify disci-
plina ry act ion for violat ions of th ose codes. Some societies will also ta ke on significant
political roles, including lobbying legislative bodies and engaging in litigation on mat-
ter s of concern to th e pr ofession.
Most ma tu re professions will ha ve several associated societies. Ther e may be one
senior society tha t h as m ostly political a nd r egulat ory roles. Oth er societies oftenfocus on scholarly activities for a particular branch or specialization within the profes-
sion.
In the United States, there are literally thousands of societies associated with the
professions an d occupa tions. Two of th e lar gest and best known ar e the Amer ican
Medical Association and the American Bar Association, both of which provide the full
ra nge of products an d services described above. The engineering profession is repr e-
sented by societies associated with individual engineering disciplines, such as the Insti-
tute of Electrical and Electronics Engineers and the American Society of Mechanical
En gineers. Ther e is also a broader society, th e Nat iona l Society of Pr ofessiona l Engi-
neer s. Compu ting professiona ls ar e repr esent ed by th e Association for Compu ting
Machinery, the Computer Society of the IEEE, the Data Processing Management Asso-ciation, and several others.
We note that the percentage of people in a profession who belong to one or more soci-
eties could be consider ed an indicat or of th e ma tu rity of a pr ofession. We were not able
to find definitive numbers for the various professions, but we determined that the per-
centa ge is app ar ent ly very high for physicians. For th e engineer ing professions, we
foun d th at perh aps 10% to 30% of practitioners belonged to a pr ofessiona l society. We
note that the combined membership of the ACM and the IEEE Computer Society is
CMU/SEI-96-TR-004 17
-
7/31/2019 Attributes of a Software Engineer
27/94
roughly 100,000, while estimates of the number of computer programmers and analysts
in the Un ited Stat es ran ge as high a s one million.
2.9 Conclusions
In t his chap ter , we have explored t he eight-component model of professiona l infra str uc-
tu re by describing th e various form s of th e componen ts a s th ey exist in severa l comm on
professions. Tha t explora tion has led us t o several conclusions.
1. For the comm on professions, near ly all of th e component s exist. The medical
profession exhibits all eight, and it appears to be the only profession that has
ma tu re form s of both certification an d licensing. The legal profession exhibits
sevenit has licensing but not cert ificat ion. Architectur e, accountin g, an d
engineering also exhibit seven of the componentseach has either certification
or licensing, but not both.
2. For the common professions, near ly all the components ar e in the ma tur ing
stage. By our definition, this mea ns t ha t each component ha s existed for m an yyears, during which t ime it ha s come un der th e active stewardsh ip of an a ppro-
pria te body with in th e profession a nd is being cont inua lly improved.
3. Pr ofessions in which th e pra ctitioner s ar e self-employed and offer their pr ofes-
sional services directly to the public seem to have somewhat more mature com-
ponents than the professions in which the practitioners tend to be employed in
large organizations.
4. There ar e man y occupat ions th at exhibit a sm all number of the components, but
occupa tions are n ot usu ally regar ded as professions. For example, we noted in
Section 2.5 that custom u pholsterers, a mat eur boxers, private investigators, and
mu le ra cing jockeys requ ire licenses in t he st at e of Californ ia, but none of th ese
occupations has lengthy initial professional education in the form of accredited
college programs.
5. Becau se of th e wide var iation of th e forms of var ious component s, the m odel
should be considered primarily descriptive rather than prescriptive.
6. The previous conclusion notwithst an ding, the model can probably be used with
some confidence to predict in general terms the evolution of the infrastructure
component s of emer ging professions. In pa rt icular , the m odel (especially as it is
instantiated in the traditional engineering disciplines) can be used to help fore-
cast th e evolution of th e softwar e engineering profession. This is the su bject of
the next chapter.
18 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
28/94
3 The Software Engineering Profession
In Chapter 2, we examined the eight infrastructure components of a profession, withexamples from the comm on professions. We concluded th at th e eight -componen t model
offers a reasonable way to char acterize the ma tur ity of a profession a t t he infrastr ucture
level.
Today, the softwa re engineer ing profession is relat ively imma tu re. In fact, man y people
do not even recognize it as a profession, as suggested by this paragraph of the United
Sta tes Code of Federa l Regulat ions [29 CF R Sec. 541.302(h)]:
The question a rises whether comput er progra mmer s and systems a nalysts in the
dat a processing field are included in the learn ed professions. At th e present
time2 there is too great a variation in standards and academic requirements to
conclude that employees employed in such occupations are a part of a true pro-
fession recognized as su ch by the a cademic commun ity with u niversa lly acceptedsta nda rds for em ployment in th e field. ...
In the remainder of this chapter, we use the model to characterize the software engi-
neer ing profession. In ea ch of the eight sections, we first describe one component of th e
software engineering profession as it exists today, and then we describe how that com-
ponent m ight evolve as th e profession ma tu res. Ea ch section concludes with sugges-
tions for t he next steps th at can be taken t o increase t he ma tu rity of that component.
Overall, we believe that the components of the existing engineering professions are the
best predictors of the form of the components for the software engineering profession.
This is perha ps not sur prisingthe na me softwa re engineer ing was origina lly adopted
becau se the na tu re of th e work wa s so similar to engineerin g work . We also note tha t,as in the established engineering professions, most software engineers are employed by
compa nies th at build softwar e-inten sive system s un der cont ra ct to specific customers, or
build softwar e systems a s products for comm ercial sale. This is in cont ra st t o profes-
sions such as medicine and law, where the professionals more often provide direct
services t o individua ls.
3.1 Initial Professional Education
3.1.1 The Current State
The current population of software engineers has anything but a uniform educationalbackground. Pr actitioners who ent ered the field prior to about 1970 ar e almost all
people who began programming as part of some other kind of work, and then gradually
ma de it their full time work. More r ecent ly, perh aps t he ma jority of people enter ing the
field have degrees in computer science or computer engineering, although many still
have other (or no) college degrees.
2We could not find the exact dat e when th is para graph of the code was writt en, although it appea rs t o have
been no later tha n 1984.
CMU/SEI-96-TR-004 19
-
7/31/2019 Attributes of a Software Engineer
29/94
Even among software engineers with a computer science degree, there is considerable
variation in prepa ra tion. Within t he last ten years, most comput er science cur ricula
ha ve added a one-semest er elective cour se on softwar e engineer ing. Such cour ses
present software engineering in a superficial manner, comparable to an attempt to
teach all of civil engineering or all of mechanical engineering in a single, one-semester
cour se. Fur ther more, being elective courses, not all student s take them. Thus the
graduates enter the profession with only bits and pieces of knowledge about software
engineering.
The main reason for this diversity of educational background among software engineers
is that the profession is so new that it has not yet evolved an identifiable form of initial
professiona l educat ion. No United Sta tes college or u niversity offers a bachelors degree
in softwa re en gineering (BSSE). Approximat ely 20 universities offer a ma ster s degree
in software engineering, but because almost all of those programs specify professional
softwar e development experience a s a n entr an ce r equirement, t hey cannot be considered
initial professiona l edu cation.
A few schools in the United States are taking steps toward providing professional
educat ion in softwar e engineerin g at t he un dergra dua te level [Ford 94]. The RochesterInst itut e of Techn ology has d esigned a BSSE program an d expects t o receive appr oval to
begin offerin g it in th e fall of 1996. Pa rk s College of St . Louis Un iversit y offers a
Bachelor of Science in Computer Software Systems degree; they intend the program to
be a software engineering program, but for internal reasons, they found it impossible to
use th e word engineering in th e progra m title. The Oregon Instit ut e of Techn ology
offers a Bachelor of Science in Softwa re En gineering Technology degree, but an exami-
nation of their curriculum shows it to be very similar to a traditional computer science
curr iculum . It is noteworth y, however, in th at it is accredited as an en gineering tech-
nology program by ABET, thus setting a precedent for ABET accreditation of programs
with the phrase software engineering in their titles.
Undergraduate programs in software engineering are already appea ring in other coun-tries. In th e United Kingdom, there a re at least 13 such programs (in a count ry with
fewer tha n 100 universities), and in Austra lia, ther e are a t least t hr ee. Appendix 2 lists
these schools.
Referring to the evolutionary stages introduced in Section 1.3, we conclude that initial
professiona l education of softwa re en gineers is in t he a d hoc stage.
3.1.2 Future States
In our exploration of the eight-component model of the infrastructure of a profession
(presented in Chapter 2), we noted that all the mature professions we examined had
initial pr ofessional educat ion (IPE ) in t he form of a un iversity program in th e discipline
of th e profession. We also noted th at in itial professiona l educat ion in th e engineeringprofession ta kes t he form of baccala ur eat e degrees in th e specific engineerin g discipline.
Extrapolating from these facts, it is possible to conclude that initial professional educa-
tion for a future, mature software engineering profession will be in the form of bache-
lors degrees in softwa re en gineering. However, we discovered th at such a vision is not
widely shared in the computing and software communities, nor is it widely shared
inside the SEI . Oth er form s of initial professiona l educat ion for softwa re engineer s ar e
advocat ed by various constitu encies. In th is section, we presen t typical argum ent s
support ing some of th em.
20 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
30/94
Arguments in favor of undergraduate degrees in software engineering predate the
developmen t of our m odel of a ma tu re pr ofession. In fact, th e earliest such ar gumen t
th at we have foun d is from 1969 [Kuo 69]! Pr oponen ts of th is approach usu ally base
their arguments on their perceived inadequacies of undergraduate computer science
degrees in the prepar at ion of student s for softwar e engineering car eers. They then
ar gue two points: tha t IPE sh ould be at t he undergra duat e level and tha t it should be
in pr ogra ms sp ecifically designed for an d t hu s na med software engineerin g.
For th e first point, th ey assert tha t softwar e engineering should and will be accepted as
one of the engineering disciplines, and they point out that the other branches of engi-
neer ing ha ve pra ctitioner s who mostly enter th e profession with a ba chelors degree in
th e par ticular en gineering discipline (civil, electr ical, mechan ical, etc.). They sta te th at
they have found no characteristics of software engineering that suggest it is sufficiently
different from the other engineering disciplines as to require a different level of initial
professiona l edu cation.
They also point to th e recent history of enr ollment s in t he compu ting disciplines, which
suggest th at student s ar e unwilling to postpone their careers in order t o seek a gradu ate
degree. For examp le, appr oximat ely 25% of stu dent s in th e sciences go immediat ely togra dua te school after ea rn ing th eir bachelors degrees; for compu ter science stu dent s, it
is only 5%. Also, judging by th e nu mber of degrees a war ded in th e computin g disci-
plines at both th e bachelors an d ma ster s levels, probably no more th an about 20% of
students will ever pur sue an advan ced degree. A softwa re engineering profession tha t
relied on post-baccalaureate programs for initial professional education might have
more t ha n 80% of its pr actitioners with out professiona l education in t he discipline.
The arguments in favor of named software engineering degrees are centered on asser-
tions th at goals of compu ter science education a nd of professiona l education in software
engineering are sufficiently different that it would be impossible to achieve both in a
comm on program . Pr oponent s usu ally ha ve two bases for th eir ar gumen ts: th e differ-
ent natures of the two disciplines, and the constraints of accreditation guidelines andcur riculum recommenda tions.
On the nature of the disciplines, proponents again express a belief that software engi-
neering is (or soon will be) engineering, and then they cite definitions of science and
engineering to show the fundamental differences required to educate their respective
pra ctitioner s. Fr ed Brooks described these differen ces in his char acter ization, A scien-
tist bu ilds in order to lear n; an engineer lea rn s in order to build. These differen ces can
also be seen in t he definitions of the t wo disciplines. Consider th e definition of compu t-
ing produced by the ACM/IEEE Computer Society Task Force on the Core of Computer
Science [Denn ing 89]:
The discipline of compu ting is t he syst ema tic stud y of algorith mic processes th at
describe an d tra nsform informa tion: th eir theory, ana lysis, design, efficiency,implement at ion, an d application. The funda men ta l quest ion under lying all of
compu ting is, What can be (efficient ly) au tomat ed?
Compa re t ha t d efinition to typical definitions of software engineerin g:
The systematic approach to the development, operation, maintenance, and
ret iremen t of softwa re. [IEEE 83]
CMU/SEI-96-TR-004 21
-
7/31/2019 Attributes of a Software Engineer
31/94
Software engineering is the technological and managerial discipline concerned
with systemat ic production and ma intenan ce of softwar e products t ha t ar e devel-
oped an d modified on time a nd with in cost estimat es. [Fairley 85]
The disciplined application of engineering, scientific, and mathematical princi-
ples, methods, and tools to the economical production of quality software.
[Hum phrey 89]
The differences between the two disciplines are pervasive and result in quite different
appr oaches to educat ion. The education of a new engineer requires th e establishmen t of
an engineering attitude or mind-set, which is engendered by the faculty who provide
tha t education. For tha t rea son, the ABET accreditat ion guidelines include require-
ments for faculty, using phrases such as at least four faculty members educated as
engineers or with extensive engineer ing experience. The guidelines also make clear t he
desira bility tha t faculty member s be licensed professiona l engineers . It is uncomm on
for a comput er science faculty to meet th ese requir emen ts.
Regardin g the forces tha t const ra in th e design of compu ter science cur ricula, proponen ts
of separ at e softwar e engineering progra ms a ssert t hat th e recommended curr icula of the
professional societies and the accreditation requirements of CSAB almost guarantee
that significant amounts of software engineering cannotbe put into the curriculum. By
th e mid-1980s, most schools ha d begun offering a one-semest er course in softwa re engi-
neer ing. But th ese schools also offered one-semester cour ses in compiler const ru ction,
operating systems, computer architecture, analysis of algorithms, database systems,
computability, artificial intelligence, numerical analysis, computer networks, automata
th eory, and a few oth er significan t ar eas of compu ter science. Cur riculum recomm en-
dations from the professional societies continue to stress the need for this breadth of
coverage in un dergradua te programs. Thus it seems un likely tha t un iversities would be
willing to displace enough of th ese t opics from th e compu ter science curr iculum to allow
meaningful coverage of software engineeringto do so would utterly destroy the com-
puter science curriculum.On the other hand, another large segment of the software community believes that a
computer science curriculum can accommodate the needs of software engineers for
initial professiona l educat ion. Severa l schools have modified their curr icula t owar d this
goal; some have added required courses in software engineering, some offer additional
elective courses, and some are creating separate tracks or options in software engineer-
ing [Ford 94]. An importa nt exa mple of th is approach is at Car negie Mellon Un iversity.
The school has offered a graduate degree, Master of Software Engineering (MSE), for
several years. Beginn ing in 1996, th ey plan t o offer an u nder gra dua te comput er science
program that includes as a concentration the entire core curriculum of the MSE
program.
Pr oponent s of this a pproach to IPE for softwar e engineers ar gue th at softwar e engineer-ing is grounded in computer science, much as mechanical engineering is grounded in
physics, and th us can grow na tu ra lly out of a compu ter science program . They also sug-
gest that it is much easier to implement in a university, both for procedural reasons
(fewer proposals to be made and committee approvals to be secured) and for political
reasons (not using the word engineering in the program name prevents jurisdictional
battles).
22 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
32/94
Regard less of their positions on softwa re en gineering degree n am es, almost everyone in
th e softwar e engineer ing comm un ity agr ees on two point s. Fir st, what ever the form of
initial professional education in the university, software engineers will need a range of
skills development activities before they can perform as competent, professional soft-
war e engineers. This topic is consider ed again in Section 3.2.3.
Second, all agree that the actual set of knowledge, skills, and abilities appropriate to asoftwar e engineer entering t he pr ofession a re n ot fully underst ood, and tha t su bstant ial
further work is needed to build this understanding before any specific model of initial
professiona l educat ion can be fully validated.
3.1.3 Next Steps
The segment of the United States academic community that provides professional
educat ion is genera lly responsive to th e needs of th e professions th ey support . In
par ticular, schools listen to the pr actitioners, th e industr ies that employ them, a nd t heir
professiona l societies. Thu s the most import an t step in the esta blishm ent of initial
professional education for software engineers is a clear expression of need from the
softwa re comm un ity. We believe th at t he compa nies who employ softwa re engineers
will ha ve the loudest voice an d th at th ey need to exercise it.
Some universities are already attempting to educate students for careers as software
engineers . A likely scena rio for t he n ext ten to twent y year s is tha t, one by one, schools
will begin offering mu ch better pr ofessiona l education tha n is now th e case, an d th at th e
gra dua tes of these schools will be recognized by poten tial em ployers a s being mu ch more
valua ble employees tha n th ey ar e used to hiring directly out of school. Those gra dua tes
will get more job offers a nd comma nd h igher sa laries. Educators, student s, and pa rent s
will begin to see the value of professional education in software engineering, and the
dema nd will cause a significan t growth in the availability of th at edu cation. Cat alysts
for this evolution include a well articulated demand from industry and the development
of professional education guidelines or model curricula by the professional societies.
3.2 Accreditation
3.2.1 The Current State
As mentioned in Section 2.2, there are two accreditation bodies that accredit programs
th at produce most of todays new softwa re en gineers. The Comput ing Sciences Accredi-
tation Board (CSAB) accredits programs in computer science, and the Accreditation
Board for Engineering and Technology (ABET) accredits programs in computer engi-
neer ing. Within th eir respective fields, we consider these bodies and t heir pr ocedures
an d guidelines to be matur e.
A significan t pr oblem is on the horizon, however. When th e first Un ited Sta tes un iver-
sity esta blishes a bachelors degree program in softwa re engineer ing and seek s accredi-
tation, which body will claim jurisdiction?3 The two bodies have an agreement tha t pr o-
grams with the word engineering in their titles should be accredited by ABET, while
those with the phrase computer science in their titles should be accredited by CSAB.
3We note tha t ABET ha s alr eady accredited, as an engineering technology progra m, th e Bachelor of Science
in Software E ngineering Technology at th e Oregon Inst itut e of Technology.
CMU/SEI-96-TR-004 23
-
7/31/2019 Attributes of a Software Engineer
33/94
Nevertheless, because of the close relationship between computer science, many educa-
tors believe that CSAB should play an active role in the accreditation of software engi-
neering progra ms when th ey emerge.
This poten tia l conflict ma y be avert ed in a most reasonable man ner . Lat e in 1994,
CSAB an d ABET began t alks a bout a possible mer ger of the two bodies. We believe th is
mer ger would be a positive step. In par ticular, we believe th at it would prevent th eju r isdict ion al ba t t le wh en the fir st school reques t s accred it a t ion of a soft wa re en gin eer -
ing program, which in turn would allow the people involved to devote their energies to
the creation of appropriate accreditation guidelines rather than to political maneuver-
ing.
The development of accreditation guidelines specific to software engineering is impor-
tant, because we believe that neither the CSAB guidelines for computer science nor the
ABET guidelines for compu ter engineerin g are a ppr opria te. An exam ple of th e basis for
th is belief comes from a presen ta tion by Boeings sen ior ma na ger of corpora te compen-
sat ion a t t he 1994 ACM SIGCSE Technical Symposium on Comput er Science Edu cation.
The spea ker noted t ha t Boeing ha s 112,000 employees, of which 12,000 do software full-
time. Boeing is always tr ying to recru it good softwar e engineers . To facilita te their
recruiting, they have studied the curricula of more than 200 computer science programs
in United States universities to determine if the graduates are learning enough about
softwa re developmen t t o be hired by Boeing. In 1993, ther e were 116 CSAB-accredited
program s. Of th ose, 5 were not reviewed by Boeing, 62 were reviewed an d found
accepta ble, an d 49 were reviewed an d foun d una ccepta ble. In other words, 42% of
accredited computer science programs were producing graduates not qualified to work
as software engineers at Boeing.
On the oth er han d, Boeing tr ust s ABET accredit at ion of engineerin g program s. They
will only hire gr adu at es of ABET-accredited program s int o engineer ing positions within
th e compa ny. They do notcondu ct stu dies of the cur ricula of ABET-accredit ed pr ogra ms
in order t o determine wheth er t he gra duat es would be a cceptable to Boeing.
We do not take this example as an indication that the CSAB accreditation guidelines
ar e wrong. The guidelines were developed to accredit progra ms in computer science
(including programs in liberal arts colleges as well as professional programs in univer-
sities), not pr ogra ms in software engineering. Becau se the two disciplines ar e differen t,
th e accredita tion guidelines should be different. Both disciplines are importa nt a nd we
hope both will flourish.
Referr ing to the evolut iona ry st ages int roduced in Section 1.3, we conclude th at accredi-
ta tion of softwa re en gineering educat ion is in th e ad h oc sta ge.
3.2.2 Future States
As we sta ted a t t he beginning of th is cha pter, we believe th at the mat ure softwar e engi-
neering profession will have much in common with the other engineering professions.
One of these common features will be accreditation of initial professional education by
th e Accredita tion Boar d for Engineering an d Techn ology (ABET). Ther e is alrea dy
overwhelming acceptance of ABET accreditation in the industrial community; many
large corpora tions will only hire gra dua tes of ABET-accredited pr ogra ms for en gineering
positions. We believe th at ha ving ABET accredita tion of softwa re engineer ing progra ms
will facilitate and accelerate the acceptance of software engineers as engineers in indus-
24 CMU/SEI-96-TR-004
-
7/31/2019 Attributes of a Software Engineer
34/94
try, which will mean that software engineers will be compensated according to engi-
neer s sala ry scales an d will have car eer ad vancement opportu nities similar t o oth er
engineers.
We also believe it to be in the best interest of the software engineering profession for
ABET to mer ge with CSAB, as discussed in Section 3.2.1.
ABET has turned to the professional societies in the various engineering disciplines to
develop accredita tion guidelines. In some cases, two or m ore societies ha ve jointly
developed guidelines (alth ough one was designat ed the lead society.) Over the past
decade, the IEEE Computer Society and the ACM have collaborated on many issues
related to computer science education, including a major effort by the Joint Curriculum
Task Force to produce curriculum guidelines for undergraduate programs in computing-
rela ted fields. Our vision is th at th ese two societies will jointly work with ABET a t t he
appropriate time to develop the accreditation guidelines for undergraduate software
engineering pr ograms in u niversities.
3.2.3 Next Steps
We believe that, eventually, ABET will accredit software engineering programs in uni-versities. However, ABET will not accredit an y program t ha t ha s not alrea dy produced
gradua tes, and curr ently there ar e no United States u niversities with BSSE degree pro-
grams. Thus a first step t oward esta blishing accreditation is the creat ion of a pr ogram
in at lea st one university. It is possible th at th e Rochester In stitu te of Techn ology will
creat e th e first progra m in 1996.
Many engineering schools have indicated that they would not even consider offering
professional education in software engineering until ABET begins to accredit such pro-
gra ms. Thu s th e first a ccredita tion will be a significan t cata lyzing event for professiona l
educat ion in softwa re engineer ing.
3.3 Skills Development
3.3.1 The Current State
Our definition of profession included the requirement that practitioners develop skill in
app lying the kn owledge learn ed in their initial professiona l educat ion. As far a s we
kn ow, the softwa re en gineering profession h as n ot yet ident ified the sk ills needed by its
practitioners.
We can anticipate several kinds of skills that will ultimately be recognized as important
to softwar e engineers. One kind is man ua l skills, such as t ouch typing (now commonly
called keyboar ding). Anoth er includes skills in str uctur ed behaviors, such as th ose
requ ired of th e var ious pa rt icipant s in softwa re technical reviews. A th ird is comm un i-
cation skills, which would include such things as interviewing customers to elicit soft-
war e requir emen ts. A four th is skill in operat ing software t ools effectively.
Init ial professiona l education provides some opportu nities for sk ills developmen t. Most
studen ts learn basic softwar e tools through class progra mming assignments. Semester-
length project cour ses develop some softwa re en gineering skills, as does par ticipat ion in
CMU/SEI-96-TR-004 25
-
7/31/2019 Attributes of a Software Engineer
35/94
indust ry co-op program s. Oth er skills are developed once a person begins h is or h er first
job as a soft wa re en gineers.
We note that there are no uniform or profession-wide skills development activities, so
we conclude th at th is componen t is in th e ad h oc stage.
3.3.2 Future States
As described in t he pr evious section, th ere a re ma ny kinds of skills tha t m ight be useful
to a softwar e engineer, but t here is n o widespread agreement on which a re m ost impor-
tant, which are necessary for entry into the profession, and which are acquired at
various sta ges of career developmen t. Thu s the first pa rt of our vision for th e mat ur e
profession is that it has achieved a substantial level of agreement on those questions.
This would have three major aspects:
1. A rough ta xonomy of softwa re engineerin g skills. For example, we can ima gine
categories such as manual skills (keyboarding, etc.), general communication
skills (making oral presentations, writing coherent prose, etc.), specialized
communication skills (interviewing to elicit user requirements, etc.), tool skills
(facility with CASE tools, document production tools, etc.), procedural skills(playing the various roles in a software technical inspection, etc.), and pro-
gramming skills (writing syntactically correct code, debugging, etc.).
2. Descriptions of mea sur able skill levels in each category. This is th e most diffi-
cult of the t hr ee aspects, but it is necessar y in order to define skills developmen t
activities for a ll stages of th e career of a s oftwar e engineer.
3. Identificat ion of the levels of skills tha t a re importan t u pon ent ry into the pro-
fession a nd a t var ious m ajor sta ges of or sp ecializations with in a persons
career . The skills needed at ent ry would th erefore be par t of th e specificat ion
(along with knowledge specifications) of the goals of initial professional educa-
tion. Softwa re engineers who specialize in var ious process activities
(requirements analys