attributes of a software engineer

Upload: shalini-kalyani

Post on 05-Apr-2018

214 views

Category:

Documents


0 download

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