WHY Software Engineers Should Be Licensed?: Author: Rabail Shahnaz
WHY Software Engineers Should Be Licensed?: Author: Rabail Shahnaz
TERM PAPER
2011
WHY
SOFTWARE
ENGINEERS
SHOULD BE
LICENSED?
Author: Rabail Shahnaz
1
May 1,
TERM PAPER
2011
I ntroduction:
Software has emerged as a young profession among the disciplines like medicine, law
which had an old history. During recent years, the use of software had become quite easy
and software it self has became quite complex. Software has gained every one’s attention
in a small span to time. The present era is a software driven era and one can hardly find
anything software independent. Now it can be a nuclear reactor, a newer-model car or
even a roller coaster. As mentioned above software it self is complex there are many
projects which lead to failure. The individuals involved in engineering the software are
responsible for both success and failure of the software. The question arises should the
software engineers judged and examined before engineering any software? If yes! How?
Should engineers be licensed before starting any project? What if software engineers are
licensed? Will licensing reduce the fear of loss and risk or it will reside? [1].
As the licensing is questioned, Software maturity is taken into consideration. Many
maturity models are designed to characterize the software maturity.
Background:
The term safety is used to refer the unacceptable loss of human life, property, society or a
large momentary loss etc.The present world is greatly influenced by software used in the
systems and by all the means, which are affecting the safety of the public. Public safety is
at stake or is affected due to the software used in the systems. They are commonly called
“Safety Critical Systems”.
The first ever safety critical system was limited in functionality and carefully crafted by
the experts. But with the passage of time as the use, demand and requirements increased,
they all lead to the increased complexity. The descending number of software related
loses and accidents are themselves witness of the emerging software complexity [2].
Software has played a vital role in expanding the history of software accidents for
example defense system, medical devices, aircraft, space vehicles and transportation
systems[2]. The notorious among them are Ariane 5 flight 501 failure, the Mars climate
orbiter disaster of 1999(A project of NASA) and Therac 25 accident [9, 10, 11].
Licensing History:
2
May 1,
TERM PAPER
2011
Experience and qualification are the two important elements in an engineering discipline.
An engineer having both the experience and qualification can claim it self to be a
Professional Engineer. Late 1800’s and 1900’s was the time period which provides no
distinction between a qualified, trained engineer and an untrained individual [3].
Time changed, people changed and so do their needs and requirements. Those needs
bring forward the engineers who involve them selves in building the public structures.
The year 1907 has a great importance in licensing history. That year the Wyoming( board
of education) present a licensing law for the very first time and the persons, eligible
enough to call themselves engineers or surveyors to people were registered.Int he same
year a board was created to examine the professionals ant the professions[3][4] .This law
opens a door for other states and the same year eight more states pass the registrations
required for engineering[3][4].The number of stated was increased by six in the year
1975.Each state as per their convenience change the language of the law. The language
of law adopted by every single state now varies.
Purpose of licensing:
The basic purpose of licensing is
• To protect the wealth, health and safety of the public [5].
• To clearly differentiate between a trained professional from an unqualified,
untrained individual [3].
• To set the competency standards for professional engineers.
• To provide training professionals with acting standards [6].
Software Engineering Background:
It was the year 1968 when the Nato conference on Software engineering was held. The
term “Software Engineering” was granted space in the conference and it came into
popular use [7].From then onwards software engineering was verbally introduced as a
profession and was believed to be mature enough to be titled as a profession.
Failures in the History of Software Engineering:
During the development of the software it passes through several processes. Those
activities and steps are
· Requirements · Specification · Architecture · Design· Implementation · Testing
· Deployment · Maintenance.
The software engineering team makes sure that the software being engineered has passed
through all the development steps and there is no lacking behind. Besides all the checks
and conformities, software fails. There is a list of software that fails because of
inappropriate engineering and software flaws [8].
• ARIANE 5 Flight 501 Failure is considered as a biggest disaster in the history
of software engineering. It was on 4 June 1996, the flight of Ariane 5 end up as a
failure. The European Space Agency took 10 years and spends $ 7 billion in
contraction of ariane 5[9].The mission of the project was to deliver $500 million
payloads to be delivered to orbit. Arine 4 was a success and Ariane 5 was
developed for large pay loads. The cause of the failure was unhandled float
exception. The 64 bit floating points were converted into 16 -bit signed integer. It
took 39 seconds to the rocket to reach at an altitude of 2 miles. After half a mile
the self-destruct mechanism of the rocket triggered. The requirements of the
system state that the system should shut down if an unhandled exception occurs
[10].
3
May 1,
TERM PAPER
2011
Many lives were lost in the disasters. The money and assets of the states just drown
away. All of the above the reputation of the states was deeply effected by these
failure.The responsibilities of failure fells on the shoulders of a single individual involved
in the project. The failure of the software is the failure of the management and
engineering practices.
Nature of Software:
It is the nature of software to be complex. It is intangible, invisible and abstract. Software
independence is of no use. For its existence it depends on a system, and exists only as a
part of the system. There exists no physical law to identify the software behavior neither
there exists any physical constraints, questioning the quality of the software. The
software not alike hardware never wears outs which make reliability of the system
hidden. Reverse engineering can be applied on any software to replicate it.
Software Engineering (SE): Computer Science (CS)-Difference:
At the very initial development stages of software engineering it was considered that a
specialist in computer science can be a software engineer. The identity of software
engineering was mixed up with that of computer science [14].Some people thought that it
was a separate discipline which applies the computer science theories [15].While others
were of the view that these disciplines can be interchanged with one another as per the
requirements [15].In 2004 Steve McConnell, The President and Chief Software executive
of Construx Software presented a survey .He stated that there are about 40% of those
individuals which are having computer science degrees and are working as software
engineers. Later he stated that he could hardly figure out any individual software
engineering with a software engineering degree. A small percent of individuals working
as software developers in the industry are having formal knowledge and small education
in engineering.
At such a critical condition licensing was needed. The two different disciplines can not
be considered as same. Criteria must exist. Licensing the software engineers will ensure
that
Safety and mission critical systems are monitored and in charged by individuals having
software engineering background. The individuals will be the one having minimal
competence in software engineering [16].
Engineering-Engineers versus Science-Scientists:
The learning of scientists include what exists, how to carry out the observations, how to
state the hypothesis and how to include the resultant knowledge in their field of science.
4
May 1,
TERM PAPER
2011
Engineers learning include what exist, what is beneficial, how to collect useful
information and how useful knowledge can be brought into practice and problem solving
[17].
Here I give a definition of software engineering which I use in this paper:
“Software Engineering is the application and/or study of a systematic,
disciplined, quantifiable approach to the development, operation, and
maintenance of software that has an impact on the lives, property,
economy, or security of people or the national defense; that is, the
application of engineering to software” (18).
On contrary, here is a definition of computer science:
“Computer Science is the study of computers and algorithmic processes,
including their principles, their hardware and software designs, their
applications, and their impact on society” (19).
Science students extend the knowledge of science, whereas the engineers are prepared to
create the product and techniques by focusing on a specific client or market
[20].Scientists along with science learn the scientific methods to extend the development
of science. On the other hand engineers along with science learn the scientific methods to
apply it on practical problems.
Joint Committee of ACM and IEEE:
In 1993, Associate of Computing Machinery (ACM) and Institute of Electrical and
Electronics Engineering (IEEE) step towards persuading software engineering as a
profession [21].Their joint committee was came to be known as Software Engineering
Coordinating Committee (SWECC) (22).The SWECC developed the Software
engineering body of knowledge (SWEBOK),professional practices, software engineering
code of ethics and guideline for developing initial professional education in software
engineering[23][24][25].Barbara Simon ,the President of ACM in year 1998 formed an
advisory panel. The majority of the committee was of the view that software engineering
is not mature enough to be licensed [25]. They presented their views by saying that
licensing will not solve the problems in software reliability and quality [21]. For this
reason ACM in 1999 back out from the joint committee and openly contradict from
licensing of software engineering [3].
Licensing Software Engineering-Texas implementations:
A panel was formed by the Texas licensing board in 1997 in order to discuss the
licensing for the software engineers [26].The license of those software engineers,
working on safety critical systems was taken under consideration. I came to know that
London Ambulance Service Computer Aided Dispatch (LASCAD) Failure was the result
of a software error. It was a safety critical system that took place of a manual system in
October 26th, 1992, but in the long run it proves to be in efficient. So the manual system
was brought under use again.
In the beginning, the Texas Board takes into consideration the software engineering same
as the electrical engineering. Fortunately there was an advisory committee which guides
the board. As software engineering was the youngest discipline among the matured
discipline, so there was no code of ethics or licensing exam. Software engineering was
then licensed only in Texas, based on these disabilities software engineering was stamped
immature [26].
Progress of Present Software Engineering Licensing:
5
May 1,
TERM PAPER
2011
From the last 14 years software Engineers are licensed in Texas and ACM & IEEE had
spend their 18 years in professionalization of software engineering. Some other states
also started to license the software engineers [4]. They include Australia and the
provinces of Canada. Still there exists no PE license exam for software engineering [27].
The National Society for Professional Engineers (NSPE) set a profession standard for the
qualifying the licensure [26].It includes:
• An esoteric body of knowledge
• Code of ethics
• ABET recognition and accreditation
• Principles and practices of engineering exam
The first version of software body of knowledge was presented by IEEE-CS in 1999,
with its revised version in 2004.On September 2009 a report was presented by IEEE
claiming their organization to be approved by NCEES. They can then develop an exam
on request of state licensure board for software engineers licensing [28].The PE exam
was the only thing left which was heading behind the software engineering from other
disciplines in licensing.
During all this progress ACM stood by its software maturity conflict and was not in favor
of licensing the software engineering.
Is Software Engineering mature enough to be licensed?
A maturity model for software engineering was established by Grad Frod and Norman
E.Gibbs of Carnegie Mellon University. They examine the similarities between the
professions and come up with three practitioner level components and the eight
infrastructure level. They did not found practitioner level helpful in measuring the
maturity [29].They then use the infrastructure level to carry out an analysis of the
potential flaws existing in maturity of a profession.
For a profession to pass the maturity model it first should qualify the initial stages. There
is a scale or ranking for professions to check the qualification:
• Non Existent: Profession components do not exist.
• Ad-Hoc: Components exist but not related to the profession.
• Specific: Components of the related profession exist.
• Maturing: Improving continuously.
An eye should be kept on the professional education of a profession at the initial stages
[45]. For example some schools and colleges maintain a five year program, which
includes both the bachelors and masters degree [29]. It now has been changed to 4 year
program. People demand the five degree education that ends up with both bachelors and
masters degree [30, 31].
An authenticated professional educational program is required for licensing.
Authorization assures the quality of an education for a particular program and its
curriculum [32]. The skills can be developed by training and teaching the knowledge of
the profession. It can be an internship of three months or can be a work experience of six
months [33].
Usually licensing and certification are thought to be serving the same purpose.
Certification is an option where as licensing is not [34].Licenses are provided by
government. They set standards for a profession; profession itself is responsible for
6
May 1,
TERM PAPER
2011
maintaining those standards. The purpose of licensing is to ensure the quality of the
practitioner professional [35].
7
May 1,
TERM PAPER
2011
job.
My Opinion:
Engineering Software is a great responsibility. The engineers must be licensed because
the safety, health, welfare, money and esteems are at risk. In this way those engineers
could be filtered out who have deep knowledge about the engineering principles. They
would feel a sense of responsibility for them. In the mean while there is a fear; that like
other professions if software engineering is licensed, people will believe that software
built by a licensed engineer will never fail or go wrong. But the case is opposite.
Software is complex, unpredictable, invisible and intangible. It can neither be predicted
nor commented that a licensed software engineer will always engineer a flawless system.
The driving force behind the Software Engineering Licensing is that it is mature enough
to be ranked as a profession. Secondly qualified and eligible professionals should come
forward to bring about change in the society.
Summary:
Software Engineering is the development, study, operation and maintenance of the
software which has an impact on the lives, property, security and economy of individuals
and the state. History reveals that there are many disasters due to software errors and
flaws. Software by nature is complex and there by its complexity cannot be reduces or
measured. Licensing software means to permit those professionals which are competent,
qualified and educated. The software disasters also occur under the observation of highly
qualified software engineers. It hence software success cannot be calculated, either it’s
built by a licensed software engineer or not. Software engineering is different from many
other disciplines. It is not a branch of computer science or any other discipline. There are
many debates regarding the maturity of software. ACM still do not consider software as a
mature profession. IEEE Joint committee is working on professionalizing software.
NSPE has presented a standard for qualifying for licensing.
Licensing in now performed at Texas, Austalia and provinces of Canada.
Licensing software will inculcate a sense that the software manufactured will be error
free. How ever the reality is quite different. For the safety and betterment of the members
of society licensing can play a key role.
8
May 1,
TERM PAPER
2011
References:
9
May 1,
TERM PAPER
2011
16. Parnas, David. Software Engineering Programs Are Not Computer Science
Programs. s.l.: IEEE, 1999.
17. McConnell, Steve. Profession Software Development. Boston, MA :
Addison-Wesley, 2004.
18. Software Engineering Licensing Consortium. Recommendation for a Path
to Software Engineering Licensure.
19. Tucker, Allen. A Model Curriculum for K-12 Computer Science: Final
Report of the ACM K-12 Task Force Curriculum Committee. Broadway,
NY : Computer Science Teachers Association, 2003.
20. Dictionary.com. [Online] http://dictionary.reference.com.
21. The Professional Engineering Century. McGuirt, Doug. s.l. : The Magazine
for Professional Engineers, June 2007.
22. Notkin, David. An Assessment of Software Engineering Body of Knowledge
Efforts.Seattle, WA : University of Washington, 2000.
23. Software Engineering Body of Knowledge. [Online] 2004.
http://www.computer.org/portal/web/swebok/html/contents.
24. Gotterbarn, Don, Miller, Keith and Rogerson, Simon. Computer Society
and ACM Approve Software Engineering Code of Ethics. s.l.: IEEE
Computer, 1999
25. Leveson, Nancy and Knight, John. ACM Task Force on Licensing of
Software Engineers Working on Safety-Critical Software. s.l. : ACM, 2000.
26. National Society of Professional Engineers. National Society of
Professional Engineers. [Online] 2009. [Cited: October 8, 2009.]
http://www.nspe.org/index.html.
27. McConnell, Steve. After the Gold Rush: Creating a True Profession of
Software Engineering. Redmond, WA : Microsoft Press, 1999.
28. High, Martin S. and Rossler, Paul. Engineering Malpractice: Avoiding
Liability through Education. s.l. : American Society for Engineering
Education, 2006
29. Ford, Gary and Gibbs, Norman E. A Mature Profession of Software
Engineering.s.l. : Carnegie Mellon University, 1996.
30. Cal Poly State University. Cal Poly. [Online] http://calpoly.edu/.
31. Bucknell University. [Online] http://www.bucknell.edu/x53523.xml.
32. The Basics: Accreditation Assures Quality. ABET. [Online] ABET.
http://www.abet.org/the_basics.shtml.
33. Ribaud, V. and Saliou, P. Roles Transformation Within a Software
Engineering Master By Immersion.
34. Thompson, J. Barrie. It's different on the other side of the pond. But should it
be that way? s.l. : IEEE, 1999.
35. NCEES. Professional Engineer Licensing. [Online] National Council of
Examiners for Engineering and Surveying. [Cited: November 8, 2009.]
http://www.ncees.org/.
36. MacDonald, Chris. Why Have a Code of Ethics? Guidance for Writing a
Code of Ethics. [Online] http://www.ethicsweb.ca/codes/coe2.htm
10