Software engineering professionalism

Last updated

Software engineering professionalism is a movement to make software engineering a profession, with aspects such as degree and certification programs, professional associations, professional ethics, and government licensing. The field is a licensed discipline in Texas in the United States [1] (Texas Board of Professional Engineers, since 2013), Engineers Australia [2] (Course Accreditation since 2001, not Licensing), and many provinces in Canada.

Contents

History

In 1993 the IEEE and ACM 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. [3] 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 1990s (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 licensed by any engineering association. [4]

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. [5] The Panel issued recommendations to create a Software Engineering Accreditation Board, but the task force created to carry out the recommendations were unable to get the various stakeholders to agree to concrete proposals, resulting in separate accreditation boards. [6] [7]

Ethics

Software engineering ethics is a large field. In some ways it began as an unrealistic attempt to define bugs as unethical.[ citation needed ] 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, EGBC [8] and Institute for Certification of Computing Professionals (ICCP) [9] 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 [10] [11] 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.

Opinions on ethics

Bill Joy 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.[ citation needed ] In his book Code and Other Laws of Cyberspace, Lawrence Lessig argues that computer code can regulate conduct in much the same way as the legal code. Lessig and Joy urge people 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.[ citation needed ]

Independent licensing and certification exams

Since 2002, the IEEE Computer Society offered the Certified Software Development Professional (CSDP) certification exam (in 2015 this was replaced by several similar certifications). A group of experts from industry and academia developed the exam and maintained it. Donald Bagert, and at later period Stephen Tockey headed the certification committee. Contents of the exam centered around the SWEBOK (Software Engineering Body of Knowledge) guide, with the additional emphasis on Professional Practices and Software Engineering Economics knowledge areas (KAs). The motivation was to produce a structure at an international level for software engineering's knowledge areas. [14] [15]

Criticism of licensing

Professional licensing has been criticized for many reasons. [3]

Licensing by country

United States

The Bureau of Labor Statistics (BLS) classifies computer software engineers as a subcategory of "computer specialists", along with occupations such as computer scientist, Programmer, Database administrator and Network administrator. [16] The BLS classifies all other engineering disciplines, including computer hardware engineers, as engineers. [17]

Many states prohibit unlicensed persons from calling themselves an Engineer, or from indicating branches or specialties not covered licensing acts. [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] In many states, the title Engineer is reserved for individuals with a Professional Engineering license indicating that they have shown minimum level of competency through accredited engineering education, qualified engineering experience, and engineering board's examinations. [28] [29] [20] [21] [22] [23] [24] [25] [26] [27]

In April 2013 the National Council of Examiners for Engineering and Surveying (NCEES) began offering a Professional Engineer (PE) exam for Software Engineering. The exam was developed in association with the IEEE Computer Society. [30] NCEES ended the exam in April 2019 due to lack of participation. [31]

The American National Society of Professional Engineers provides a model law and lobbies legislatures to adopt occupational licensing regulations. The model law requires:

  1. a four-year degree from a university program accredited by the Engineering Accreditation Committee (EAC) of the Accreditation Board for Engineering and Technology (ABET),
  2. an eight-hour examination on the fundamentals of engineering (FE) usually taken in the senior year of college,
  3. four years of acceptable experience,
  4. a second examination on principles and practice, and
  5. 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.

Canada

In Canada, the use of the job title Engineer is controlled in each province by self-regulating professional engineering organizations who are also tasked with enforcement of the governing legislation. The intent is that any individual holding themselves out as an engineer has been verified to have been educated to a certain accredited level and their professional practice is subject to a code of ethics and peer scrutiny. It is also illegal to use the title Engineer in Canada unless an individual is licensed.

IT professionals with degrees in other fields (such as computer science or information systems) are restricted from using the title Software Engineer, or wording Software Engineer in a title, depending on their province or territory of residence.[ citation needed ]

In some instances, cases have been taken to court regarding the illegal use of the protected title Engineer. [32]

Most Canadians 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 Columbia, The Limited Licence is granted by the Engineers and Geoscientists of British Columbia. Fees are collected by EGBC for the Limited Licensee.

Ontario

In Ontario, the Professional Engineers Act [33] stipulates a minimum education level of a three-year diploma in technology from a College of Applied Arts and Technology or a degree in a relevant science area. [34] However, engineering undergraduates and all other applicants are not allowed to use the title of engineer until they complete the minimum amount of work experience of four years in addition to completing the Professional Practice Examination (PPE). If the applicant does not hold an undergraduate engineering degree then they may have to take the Confirmatory Practice Exam or Specific Examination Program unless the exam requirements are waived by a committee. [35] [36]

A person must be granted the “professional engineer” licence to have the right to practise professional software engineering as a Professional Engineer in Ontario. To become licensed by Professional Engineers Ontario (PEO), one must:

  1. Be at least 18 years of age.
  2. Be a citizen or permanent resident of Canada.
  3. Be of good character. Applicants will be requested to answer questions and make a written declaration on the form as a test of ethics.
  4. Meet PEO's stipulated academic requirements for licensure.
  5. Pass the Professional Practice Examination.
  6. Fulfill engineering work experience requirements.

Many graduates of Software Engineering programs are unable to obtain the PEO licence since the work they qualify for after graduation as entry-level is not related to engineering i.e. working in a software company writing code or testing code would not qualify them as their work experience does not fulfill the work experience guidelines the PEO sets. Also Software Engineering programs in Ontario and other provinces involve a series of courses in electrical, electronics, and computers engineering qualifying the graduates to even work in those fields.

Quebec

A person must be granted the “engineer” licence to have the right to practise professional software engineering in Quebec. To become licensed by the Quebec order of engineers (in French : Ordre des ingénieurs du Québec - OIQ), a candidate must:

  1. Be at least 18 years of age.
  2. Be of good character. The candidate will be requested to answer questions and make a written declaration on the application form to test their ethics.
  3. Meet OIQ's stipulated academic requirements for licensure. In this case, the academic program should be accredited by the Canadian Engineering Accreditation Board - CEAB)
  4. Pass the Professional Practice Examination.
  5. Fulfill engineering work experience requirements.
  6. Pass the working knowledge of French exam

Software engineering (SEng) guidelines by Canadian provinces

The term "engineer" in Canada is restricted to those who have graduated from a qualifying engineering programme. Some universities’ "software engineering" programmes are under the engineering faculty and therefore qualify, for example the University of Waterloo. Others, such as the University of Toronto 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. [37]

Europe

Throughout the whole of Europe, suitably qualified engineers may obtain the professional European Engineer qualification.

France

In France, the term ingénieur (engineer) is not a protected title and can be used by anyone, even by those who do not possess an academic degree.

However, the title Ingénieur Diplomé (Graduate Engineer) is an official academic title that is protected by the government and is associated with the Diplôme d'Ingénieur , which is one of the most prestigious academic degrees in France.

Iceland

The use of the title tölvunarfræðingur (computer scientist) is protected by law in Iceland. [38] Software engineering is taught in Computer Science departments in Icelandic universities. Icelandic law state that a permission must be obtained from the Minister of Industry when the degree was awarded abroad, prior to use of the title. The title is awarded to those who have obtained a BSc degree in Computer Science from a recognized higher educational institution. [39]

New Zealand

In New Zealand, the Institution of Professional Engineers New Zealand (IPENZ), which licenses and regulates the country's chartered engineers (CPEng), recognizes software engineering as a legitimate branch of professional engineering and accepts application of software engineers to obtain chartered status provided they have a tertiary degree of approved subjects. Software Engineering is included whereas Computer Science is normally not. [40]

See also

Related Research Articles

Software engineering is an engineering-based approach to software development. A software engineer is a person who applies the engineering design process to design, develop, test, maintain, and evaluate computer software. The term programmer is sometimes used as a synonym, but may emphasize software implementation over design and can also lack connotations of engineering education or skills.

<span class="mw-page-title-main">Engineer</span> Professional practitioner of engineering and its subclasses

Engineers, as practitioners of engineering, are professionals who invent, design, analyze, build and test machines, complex systems, structures, gadgets and materials to fulfill functional objectives and requirements while considering the limitations imposed by practicality, regulation, safety and cost. The word engineer is derived from the Latin words ingeniare and ingenium ("cleverness"). The foundational qualifications of a licensed professional engineer typically include a four-year bachelor's degree in an engineering discipline, or in some jurisdictions, a master's degree in an engineering discipline plus four to six years of peer-reviewed professional practice and passage of engineering board examinations.

<span class="mw-page-title-main">Computer engineering</span> Engineering discipline specializing in the design of computer hardware

Computer engineering is a branch of computer science and electronic engineering that integrates several fields of computer science and electronic engineering required to develop computer hardware and software. Computer engineering is referred to as computer science and engineering at some universities.

<span class="mw-page-title-main">Certified Public Accountant</span> Title of qualified accountants in many countries

Certified Public Accountant (CPA) is the title of qualified accountants in numerous countries in the English-speaking world. It is generally equivalent to the title of chartered accountant in other English-speaking countries. In the United States, the CPA is a license to provide accounting services to the public. It is awarded by each of the 50 states for practice in that state. Additionally, all states except Hawaii have passed mobility laws to allow CPAs from other states to practice in their state. State licensing requirements vary, but the minimum standard requirements include passing the Uniform Certified Public Accountant Examination, 150 semester units of college education, and one year of accounting-related experience.

<span class="mw-page-title-main">Admission to the bar in the United States</span> Registration to practice law in a US jurisdiction

Admission to the bar in the United States is the granting of permission by a particular court system to a lawyer to practice law in the jurisdiction. Each U.S. state and jurisdiction has its own court system and sets its own rules and standards for bar admission. In most cases, a person is admitted or called to the bar of the highest court in the jurisdiction and is thereby authorized to practice law in the jurisdiction. Federal courts, although often overlapping in admission standards with states, set their own requirements.

Regulation and licensure in engineering is established by various jurisdictions of the world to encourage life, public welfare, safety, well-being, then environment and other interests of the general public and to define the licensure process through which an engineer becomes licensed to practice engineering and to provide professional services and products to the public.

A Bachelor of Engineering or Bachelor of Science in Engineering (BSE) is an undergraduate academic degree awarded to a college graduate majoring in an engineering discipline at a higher education institution.

Computer ethics is a part of practical philosophy concerned with how computing professionals should make decisions regarding professional and social conduct.

The American Institute of Certified Planners (AICP) is the American Planning Association's professional institute. AICP certifies professionals in the United States in the field of town planning and assists planners in the areas of ethics, professional development, planning education, and the standards of planning practice. Members of AICP pledge to adhere to a detailed Code of Ethics and Professional Conduct. Once certified, professional planners may place the designation "AICP" after their name to indicate their membership in AICP, and their mastery of the principles, skills, knowledge, and experience determined by the organization as essential for a professional planner.

The Certified Financial Planner certification is a professional certification mark for financial planners conferred by the Certified Financial Planner Board of Standards in the United States, and by 25 other organizations affiliated with Financial Planning Standards Board (FPSB), the owner of the CFP mark outside of the United States. The certification is generally considered the gold standard in the financial planning industry. The certification is managed by the Certified Financial Planner Board of Standards, Inc., which was founded in 1985 as a 501(c)(3) non-profit organization; it is neither a government designation nor an accredited degree.

Certified Software Development Professional (CSDP) is a vendor-neutral professional certification in software engineering developed by the IEEE Computer Society for experienced software engineering professionals. This certification was offered globally since 2001 through Dec. 2014.

Engineering ethics is the field of system of moral principles that apply to the practice of engineering. The field examines and sets the obligations by engineers to society, to their clients, and to the profession. As a scholarly discipline, it is closely related to subjects such as the philosophy of science, the philosophy of engineering, and the ethics of technology.

<span class="mw-page-title-main">Association of Professional Engineers and Geoscientists of Alberta</span> Canadian engineering society

The Association of Professional Engineers and Geoscientists of Alberta (APEGA) is an engineering society that regulates the practices of professional engineering and geoscience in Alberta.

Certified engineering technologist (CET) is a Canadian professional certification awarded on the basis of academic qualification and work experience. Abbreviated as C.E.T., most Canadian provincial engineering and applied science technology associations offer this certification. Certification is voluntary and does not represent a provincial regulatory requirement or a statutory required license.

<span class="mw-page-title-main">Electrical engineering technology</span>

Electrical/Electronics engineering technology (EET) is an engineering technology field that implements and applies the principles of electrical engineering. Like electrical engineering, EET deals with the "design, application, installation, manufacturing, operation or maintenance of electrical/electronic(s) systems." However, EET is a specialized discipline that has more focus on application, theory, and applied design, and implementation, while electrical engineering may focus more of a generalized emphasis on theory and conceptual design. Electrical/Electronic engineering technology is the largest branch of engineering technology and includes a diverse range of sub-disciplines, such as applied design, electronics, embedded systems, control systems, instrumentation, telecommunications, and power systems.

<span class="mw-page-title-main">Engineering education</span> Educational activity of teaching knowledge and principles of engineering

Engineering education is the activity of teaching knowledge and principles to the professional practice of engineering. It includes an initial education, and any advanced education and specializations that follow. Engineering education is typically accompanied by additional postgraduate examinations and supervised training as the requirements for a professional engineering license. The length of education, and training to qualify as a basic professional engineer, is typically five years, with 15–20 years for an engineer who takes responsibility for major projects.

Engineer in training, or EIT, is a professional designation from the National Council of Examiners for Engineering and Surveying (NCEES) used in the United States to designate a person certified by the state as having completed two requirements:

A professional technologist (P.Tech) is a class of certification of engineering technologist and professional technologist in Canada and Malaysia respectively.

This article gives an overview of professional ethics as applied to computer programming and software development, in particular the ethical guidelines that developers are expected to follow and apply when writing programming code, and when they are part of a programmer-customer or employee-employer relationship. These rules shape and differentiate good practices and attitudes from the wrong ones when creating software or when making decisions on a crucial or delicate issue regarding a programming project. They are also the basis for ethical decision-making skills in the conduct of professional work.

<span class="mw-page-title-main">Geoscientist In Training</span>

Geoscientist in Training, or GIT is a professional designation from the National Association of State Boards of Geology (ASBOG) and other organizations, used in U.S. States which regulate the practice of Geology and related earth science fields.

References

  1. "Software Engineering".
  2. "Program accreditation | Engineers Australia".
  3. 1 2 A Summary of the ACM Position on Software Engineering as a Licensed Engineering Profession (PDF), July 17, 2000
  4. "Software Engineering". Archived from the original on 2008-06-25. Retrieved 2008-07-30.
  5. "Accreditation of Software Engineering Programs is Good News". www.engineerscanada.ca. Archived from the original on 2008-01-30.
  6. "Software Engineering | Canada's Association of Information Technology Professionals". www.cips.ca. Archived from the original on 2011-07-15.
  7. "Archived copy". Archived from the original on 2019-03-28. Retrieved 2016-03-31.{{cite web}}: CS1 maint: archived copy as title (link)
  8. APEGBC
  9. Institute for Certification of Computing Professionals (ICCP),
  10. Software Engineering Code of Ethics and Professional Practice
  11. Computer Society and ACM Approve Software Engineering Code of Ethics
  12. Association of Professional Engineers and Geoscientists of British Columbia (APEGBC)
  13. Association of Professional Engineers and Geoscientists of Alberta (APEGA)
  14. Moore, Melody M. (2003). A License to Practice Software Engineering. IEEE Software, 20(3), 112-113.
  15. For more information, see:
  16. U.S Department of Labor and Statistics The 2000 Standard Occupational Classification (SOC) System: 15-0000 Computer and Mathematical Occupations
  17. U.S Department of Labor and Statistics The 2000 Standard Occupational Classification (SOC) System: 17-0000 Architecture and Engineering Occupations
  18. Florida Board of Professional Engineering. "The 2019 Florida Statutes".
  19. PROFESSIONAL ENGINEERS AND LAND SURVEYORS. "O.C.G.A. § 43-15-1" (PDF).
  20. 1 2 NJ Engineering Board. "NEW JERSEY ADMINISTRATIVE CODE TITLE 13 LAW AND PUBLIC SAFETY CHAPTER 4 0" (PDF).
  21. 1 2 SC Engineering Law. "Code of Laws - Title 40 - Chapter 22 - Engineers and Surveyors".
  22. 1 2 AL Engineering Law. "Alabama Law Regulating Practice of Engineering and Land Surveying" (PDF).
  23. 1 2 VW Engineering Law. "West Virginia Engineering Law Statutes and Rules" (PDF).
  24. 1 2 OK Engineering Law. "Oklahoma Statutes, Rules and Ethics for Professional Engineers" (PDF).
  25. 1 2 NV Engineering Law. "NRS: Chapter 625 - Professional Engineers and Land Surveyors". Unlawful practice of engineering.
  26. 1 2 MS Engineering Law. "Part 901: Rules and Regulations of the Mississippi Board of Licensure for Professional Engineers and Surveyors" (PDF).
  27. 1 2 IL Engineering Law. "225 ILCS 325/ Professional Engineering Practice Act of 1989".
  28. Florida Board of Professional Engineering. "Chapter 471" (PDF).
  29. GEORGIA BOARD OF PROFESSIONAL ENGINEERS AND LAND SURVEYORS. "O.C.G.A. § 43-15-1" (PDF).
  30. "New Software Engineering Exam Approved for Licensure". IEEE Computer Society. 4 May 2012. Retrieved 6 August 2018.
  31. "NCEES discontinuing PE Software Engineering exam". National Council of Examiners for Engineering and Surveying. 13 March 2018. Retrieved 6 August 2018.
  32. 'Professional Engineers of Ontario'"Quebec Engineers win court battle against Microsoft"
  33. "Professional Engineers Act". July 24, 2014.
  34. "Academic Requirements". www.peo.on.ca.
  35. "Confirmatory Exam Program". www.peo.on.ca.
  36. "mybtechdegree.ca". mybtechdegree.ca.
  37. Excerpt taken from GOV.ON.CA, See also:
  38. "Lög um löggildingu nokkurra starfsheita sérfræðinga í tækni- og hönnunargreinum" (in Icelandic). Parliament of Iceland – Althing. March 11, 1996. Retrieved August 25, 2014.
  39. "Lög um breytingu á lögum nr. 8/1996, um löggildingu nokkurra starfsheita sérfræðinga í tækni- og hönnunargreinum, með síðari breytingum". Alþingi. Retrieved 2016-10-03.
  40. "Good Practice Guidelines for Software Engineering in New Zealand" (PDF). IPENZ.