Software engineering professionalism
Encyclopedia
Software engineering professionalism regards software engineering
's struggle to be considered as a profession. It was hampered by the common perception that it's merely the application of computer science
. The goal of making software engineering into its own profession spurred a great deal of debate about what is a profession
.
Currently, software engineering has been granted the distinction of being a designated professional engineering discipline in Texas, in the US, Australia(since 2001), and many provinces in Canada.
To claim to be a profession, software engineering needs to be widely recognized as such. Such things are having undergraduate degrees, licences that are recognized by state governments, their own codes of ethics, and so on are symbols of that recognition.
began a joint effort called JCESEP, which evolved into SWECC in 1998 to explore making software engineering into a profession. The ACM pulled out of SWECC in May 1999, objecting to its support for the Texas professionalization efforts, of having state licenses for software engineers. ACM determined that the
state of knowledge and practice in software engineering was too immature to warrant licensing,
and that licensing would give false assurances
of competence even if the body of knowledge were mature.
The IEEE continued to support making software engineering a branch of traditional engineering.
In Canada
the Canadian Information Processing Society established the Information Systems Professional
certification process. Also, by the late 90's (1999 in British Columbia) the discipline of software engineering as a professional engineering discipline was officially created. This has caused some disputes between the provincial engineering associations and companies who call their developers software engineers, even though these developers have not been licenses by any engineering association.
In 1999, the Panel of Software Engineering was formed as part of the settlement between Engineering Canada and the Memorial University of Newfoundland over the school's use of the term software engineering in the name of a computer science program. Concerns were raised over inappropriate use of the name software engineering to describe non-engineering programs could lead to student and public confusion, and ultimately threaten public safety.
is a large field. In some ways it began as an unrealistic attempt to define bugs as unethical. More recently it has been defined as the application of both computer science and engineering philosophy, principles, and practices to the design and development of software systems. Due to this engineering focus and the increased use of software in mission critical and human critical systems, where failure can result in large losses of capital but more importantly lives such as the Therac-25
system, many ethical codes have been developed by a number of societies, associations and organizations. These entities, such as the ACM
, IEEE, APEGBC and Institute for Certification of Computing Professionals
(ICCP) have formal codes of ethics. Adherence to the code of ethics is required as a condition of membership or certification. According to the ICCP, violation of the code can result in revocation of the certificate. Also, all engineering societies require conformance to their ethical codes; violation of the code results in the revocation of the license to practice engineering in the society's jurisdiction.
These codes of ethics usually have much in common. They typically relate the need to act consistently with the client's interest, employer's interest, and most importantly the public's interest. They also outline the need to act with professionalism and to promote an ethical approach to the profession.
A Software Engineering Code of Ethics has been approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering.
Examples of Codes of Conduct
The following are examples of Codes of conduct for Professional Engineers. These 2 have been chosen because both jurisdictions have a designation for Professional Software Engineers.
Interesting comments regarding software engineering:
Both of these comments show the express need to think about the consequences of the software being developed, not only in a functional way, but also in how it affects the public and society as a whole.
Overall, due to the youth of software engineering, many of the ethical codes and values have been borrowed from other fields, such as mechanical and civil engineering. However, there are many ethical questions that even these, much older, disciplines have not encountered. Questions about the ethical impact of internet applications, which have a global reach, have never been encountered until recently and other ethical questions are still to be encountered. This means the ethical codes for software engineering are a work in progress, that will change and update as more questions arise.
Responsibilities for Engineering and Geoscience Software
Some states require continuing education.
In Texas Donald Bagert of Texas became the first professional software engineer in the U.S. on September 4, 1998 or October 9, 1998. As of May 2002, Texas had issued 44 professional engineering licenses for software engineers. Rochester Institute of Technology granted the first Software Engineering bachelor’s degrees in 2001. Other universities have followed.
Professional licensing has been criticized for many reasons.
Licensing and Certification Exams
The IEEE offers the Certified Software Development Professional certification exam. A group of experts from industry and academia developed the exam and maintain it. Donald Bagert heads the certification committee. Contents of the exam center around the SWEBOK (Software Engineering Body of Knowledge) guide. The motivation was to produce a structure at an international level for software engineering’s knowledge areas.
Right to Practice in Ontario
A person must be granted the “professional engineer” license to have the right to practice professional software engineering in Ontario.
To become licensed by Professional Engineers Ontario (PEO), you must:
Right to Practice in Quebec
A person must be granted the “engineer” license to have the right to practice professional software engineering in Quebec. To become licensed by the Quebec order of engineers (in french : Ordre des ingénieurs du Québec - OIQ), you must:
Software Engineering (SEng) Guidelines by Canadian Province
"Engineer" in Canada is restricted because it requires you to have graduated from an engineering programme, per se. Some Universities’ “software engineering” programmes are under the engineering faculty and therefore qualify (i.e. Waterloo). Others, such as UToronto have “software engineering” in the computer science faculty which does not qualify. This distinction has to do with the way the profession is regulated. Degrees in “Engineering” must be accredited by a national panel and have certain specific requirements to allow the graduate to pursue a career as a professional engineer. Computer Science degrees, even those with specialties in software engineering, do not have to meet these requirements so the computer science departments can generally teach a wider variety of topics and students can graduate without specific courses required to pursue a career as a professional engineer.
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
's struggle to be considered as a profession. It was hampered by the common perception that it's merely the application of computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
. The goal of making software engineering into its own profession spurred a great deal of debate about what is a profession
Profession
A profession is a vocation founded upon specialized educational training, the purpose of which is to supply disinterested counsel and service to others, for a direct and definite compensation, wholly apart from expectation of other business gain....
.
Currently, software engineering has been granted the distinction of being a designated professional engineering discipline in Texas, in the US, Australia(since 2001), and many provinces in Canada.
To claim to be a profession, software engineering needs to be widely recognized as such. Such things are having undergraduate degrees, licences that are recognized by state governments, their own codes of ethics, and so on are symbols of that recognition.
History
In 1993 the IEEE and ACMAssociation for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
began a joint effort called JCESEP, which evolved into SWECC in 1998 to explore making software engineering into a profession. The ACM pulled out of SWECC in May 1999, objecting to its support for the Texas professionalization efforts, of having state licenses for software engineers. ACM determined that the
state of knowledge and practice in software engineering was too immature to warrant licensing,
and that licensing would give false assurances
of competence even if the body of knowledge were mature.
The IEEE continued to support making software engineering a branch of traditional engineering.
In Canada
Canada
Canada is a North American country consisting of ten provinces and three territories. Located in the northern part of the continent, it extends from the Atlantic Ocean in the east to the Pacific Ocean in the west, and northward into the Arctic Ocean...
the Canadian Information Processing Society established the Information Systems Professional
Information Systems Professional
The Information Systems Professional , or Informaticien professionnel agréé , is a professional designation issued by the Canadian Information Processing Society . Introduced in 1989, the professional designation is recognised by legislation in most provinces of Canada...
certification process. Also, by the late 90's (1999 in British Columbia) the discipline of software engineering as a professional engineering discipline was officially created. This has caused some disputes between the provincial engineering associations and companies who call their developers software engineers, even though these developers have not been licenses by any engineering association.
In 1999, the Panel of Software Engineering was formed as part of the settlement between Engineering Canada and the Memorial University of Newfoundland over the school's use of the term software engineering in the name of a computer science program. Concerns were raised over inappropriate use of the name software engineering to describe non-engineering programs could lead to student and public confusion, and ultimately threaten public safety.
Ethics
Software engineering ethicsEthics
Ethics, also known as moral philosophy, is a branch of philosophy that addresses questions about morality—that is, concepts such as good and evil, right and wrong, virtue and vice, justice and crime, etc.Major branches of ethics include:...
is a large field. In some ways it began as an unrealistic attempt to define bugs as unethical. More recently it has been defined as the application of both computer science and engineering philosophy, principles, and practices to the design and development of software systems. Due to this engineering focus and the increased use of software in mission critical and human critical systems, where failure can result in large losses of capital but more importantly lives such as the Therac-25
Therac-25
The Therac-25 was a radiation therapy machine produced by Atomic Energy of Canada Limited after the Therac-6 and Therac-20 units ....
system, many ethical codes have been developed by a number of societies, associations and organizations. These entities, such as the ACM
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
, IEEE, APEGBC and Institute for Certification of Computing Professionals
Institute for Certification of Computing Professionals
The Institute for the Certification of Computing Professionals is an institution for professional certification in the Computer engineering and Information technology industry...
(ICCP) have formal codes of ethics. Adherence to the code of ethics is required as a condition of membership or certification. According to the ICCP, violation of the code can result in revocation of the certificate. Also, all engineering societies require conformance to their ethical codes; violation of the code results in the revocation of the license to practice engineering in the society's jurisdiction.
These codes of ethics usually have much in common. They typically relate the need to act consistently with the client's interest, employer's interest, and most importantly the public's interest. They also outline the need to act with professionalism and to promote an ethical approach to the profession.
A Software Engineering Code of Ethics has been approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering.
Examples of Codes of Conduct
The following are examples of Codes of conduct for Professional Engineers. These 2 have been chosen because both jurisdictions have a designation for Professional Software Engineers.
- Association of Professional Engineers and Geoscientists of British Columbia (APEGBC): All members in the association's code of Ethics must ensure that government, the public can rely on BC's professional engineers and Geoscientists to act at all times with fairness, courtesy and good faith to their employers, employee and customers, and to uphold the truth, honesty and trustworthiness, and to safe guard human life and the environment. This is just one of the many ways in which BC’s Professional Engineers and Professional Geoscientists maintain their competitive edge in today’s global marketplace.
- Association of Professional Engineers, Geoscientists and Geophysicists of Alberta(APEGGA): Different with British Columbia, the Alberta Government granted self governance to engineers, Geoscientists and geophysicists. All members in the APEGGA have to accept legal and ethical responsibility for the work and to hold the interest of the public and society. The APEGGA is a standards guideline of professional practice to uphold the protection of public interest for engineering, Geoscientists and geophysics in Alberta.
Interesting comments regarding software engineering:
- Bill JoyBill JoyWilliam Nelson Joy , commonly known as Bill Joy, is an American computer scientist. Joy co-founded Sun Microsystems in 1982 along with Vinod Khosla, Scott McNealy and Andy Bechtolsheim, and served as chief scientist at the company until 2003...
argued that "better software" can only enable its privileged end users, make reality more power-pointy as opposed to more humane, and ultimately run away with itself so that "the future doesn't need us." He openly questioned the goals of software engineering in this respect, asking why it isn't trying to be more ethical rather than more efficient. - Lawrence LessigLawrence LessigLawrence "Larry" Lessig is an American academic and political activist. He is best known as a proponent of reduced legal restrictions on copyright, trademark, and radio frequency spectrum, particularly in technology applications, and he has called for state-based activism to promote substantive...
argued that computer code can regulate conduct in much the same way as the legal code.
Both of these comments show the express need to think about the consequences of the software being developed, not only in a functional way, but also in how it affects the public and society as a whole.
Overall, due to the youth of software engineering, many of the ethical codes and values have been borrowed from other fields, such as mechanical and civil engineering. However, there are many ethical questions that even these, much older, disciplines have not encountered. Questions about the ethical impact of internet applications, which have a global reach, have never been encountered until recently and other ethical questions are still to be encountered. This means the ethical codes for software engineering are a work in progress, that will change and update as more questions arise.
Professional Responsibilities in Developing Software
Who’s Responsible?- The developers work with client and user to define requirement and specify what the whole purpose of system do. Once system is built, if there is any accidents happened, such as harms or kill someone physically, who is responsible?
- If there is an independent QA team does integration testing and did not discover a critical fault in the system after testing is complete, who is ethically responsible for damage caused by that fault?
Responsibilities for Engineering and Geoscience Software
- Developing software is a highly risky proposition. The software development process is a complex undertaking consisting of specifying, designing, implementing, and testing. Any small mistake or fault will cause the unlimited damage to society. Professional Members contribute to the success of software development projects. However, Association of Professional Engineering and Geoscience is primarily concerned with their responsibility for minimizing the risk of failure and protecting the public interest.
Licensing
The National Society of Professional Engineers provides a model law and lobbies legislatures to adopt licensing regulations. The model law requires:- a four-year degree from a university program accredited by the Engineering Accreditation Committee (EAC) of the Accreditation Board for Engineering and Technology (ABET),
- an eight-hour examination on the fundamentals of engineering (FE) usually taken in the senior year of college,
- four years of acceptable experience,
- a second examination on principles and practice, and
- written recommendations from other professional engineers.
Some states require continuing education.
In Texas Donald Bagert of Texas became the first professional software engineer in the U.S. on September 4, 1998 or October 9, 1998. As of May 2002, Texas had issued 44 professional engineering licenses for software engineers. Rochester Institute of Technology granted the first Software Engineering bachelor’s degrees in 2001. Other universities have followed.
Professional licensing has been criticized for many reasons.
- The field of software engineering is too immature
- Licensing would give false assurances of competence even if the body of knowledge were mature
- Software engineers would have to study years of calculusCalculusCalculus is a branch of mathematics focused on limits, functions, derivatives, integrals, and infinite series. This subject constitutes a major part of modern mathematics education. It has two major branches, differential calculus and integral calculus, which are related by the fundamental theorem...
, physicsPhysicsPhysics is a natural science that involves the study of matter and its motion through spacetime, along with related concepts such as energy and force. More broadly, it is the general analysis of nature, conducted in order to understand how the universe behaves.Physics is one of the oldest academic...
, and chemistryChemistryChemistry is the science of matter, especially its chemical reactions, but also its composition, structure and properties. Chemistry is concerned with atoms and their interactions with other atoms, and particularly with the properties of chemical bonds....
to pass the exams, which is irrelevant to most software practitioners. Many (most?) computer science majors don't earn degrees in engineeringEngineeringEngineering is the discipline, art, skill and profession of acquiring and applying scientific, mathematical, economic, social, and practical knowledge, in order to design and build structures, machines, devices, systems, materials and processes that safely realize improvements to the lives of...
schools, so they are probably unqualified to pass engineering exams. - In CanadaCanadaCanada is a North American country consisting of ten provinces and three territories. Located in the northern part of the continent, it extends from the Atlantic Ocean in the east to the Pacific Ocean in the west, and northward into the Arctic Ocean...
, most people who earn professional software engineering licenses study software engineering, computer engineering or electrical engineering. Many times these people already qualified to become professional engineers in their own fields but choose to be licensed as software engineers to differentiate themselves from computer scientists. - In British ColumbiaBritish ColumbiaBritish Columbia is the westernmost of Canada's provinces and is known for its natural beauty, as reflected in its Latin motto, Splendor sine occasu . Its name was chosen by Queen Victoria in 1858...
, The Limited Licence is granted by the Association of Professional Engineers and Geoscientists of British Columbia. Fees are collected by APEGBC for the Limited Licence.
Licensing and Certification Exams
The IEEE offers the Certified Software Development Professional certification exam. A group of experts from industry and academia developed the exam and maintain it. Donald Bagert heads the certification committee. Contents of the exam center around the SWEBOK (Software Engineering Body of Knowledge) guide. The motivation was to produce a structure at an international level for software engineering’s knowledge areas.
Right to Practice in Ontario
A person must be granted the “professional engineer” license to have the right to practice professional software engineering in Ontario.
To become licensed by Professional Engineers Ontario (PEO), you must:
- Be at least 18 years of age.
- Be a citizen or permanent resident of Canada.
- Be of good character. You will be requested to answer questions and make a written declaration on your application form to test your ethics.
- Meet PEO’s stipulated academic requirements for licensure.
- Pass the Professional Practice Examination.
- Fulfill engineering work experience requirements.
Right to Practice in Quebec
A person must be granted the “engineer” license to have the right to practice professional software engineering in Quebec. To become licensed by the Quebec order of engineers (in french : Ordre des ingénieurs du Québec - OIQ), you must:
- Be at least 18 years of age.
- Be a citizen or permanent resident of Canada.
- Be of good character. You will be requested to answer questions and make a written declaration on your application form to test your ethics.
- Meet OIQ’s stipulated academic requirements for licensure. In this case, the academic program should be accredited by the Canadian Engineering Accreditation Board - CEAB)
- Pass the Professional Practice Examination.
- Fulfill engineering work experience requirements.
Software Engineering (SEng) Guidelines by Canadian Province
"Engineer" in Canada is restricted because it requires you to have graduated from an engineering programme, per se. Some Universities’ “software engineering” programmes are under the engineering faculty and therefore qualify (i.e. Waterloo). Others, such as UToronto have “software engineering” in the computer science faculty which does not qualify. This distinction has to do with the way the profession is regulated. Degrees in “Engineering” must be accredited by a national panel and have certain specific requirements to allow the graduate to pursue a career as a professional engineer. Computer Science degrees, even those with specialties in software engineering, do not have to meet these requirements so the computer science departments can generally teach a wider variety of topics and students can graduate without specific courses required to pursue a career as a professional engineer.
See also
- Software engineerSoftware engineerA software engineer is an engineer who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything containing software, such as computer chips, work.- Overview :...
- Software engineeringSoftware engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
- List of software engineering topics
- Software engineering demographicsSoftware engineering demographicsThere are many software engineers. Canada, the European Union, Japan, and Australia will probably find corresponding numbers of SE practitioners.- India :There has been a healthy growth in the number of India's IT professionals over the past few years...
- Software engineering economics
- Bachelor of Science in Information TechnologyBachelor of Science in Information TechnologyA Bachelor of Science in Information Technology, , is a bachelor's degree awarded for the completion of an undergraduate course or program in information technology....
- Bachelor of Software EngineeringBachelor of Software EngineeringA Bachelor of Software Engineering is an undergraduate academic degree awarded for completing a program of study in the field of software development for computers in information technology....