The discipline of software engineering has been discussed in academic and professional circles since the 1960s but has become more in the public eye as software systems have become so much more prevalent and are entrusted to make safety-critical decisions in more and more aspects of our daily lives. With the current proliferation of technologies such as autonomous vehicles, engineering regulators have had to grapple increasingly with the implications of what constitutes software engineering proper and what permits someone to use the title of “software engineer.” Autonomous vehicles, for example, must be designed in a manner that weighs serious ethical decisions around the protection of drivers, passengers, and others on the road, while also taking into account broader considerations regarding the public interest, industry, and society.
In 2016, the Canadian Engineering Qualifications Board’s (CEQB) developed the White Paper on Professional Practice in Software Engineering to assist regulators in defining and enforcing against individuals using the title of engineer or engaging in the practice of software engineering without being licensed. The document outlines information and guidance to engineering regulators regarding the discipline of software engineering, providing an introductory rationale that addresses the nature of engineering practice in software engineering, in comparison with common software development.
“There is a growing recognition of the need for regulation in this area, so that the public can trust that the practitioners are adequately trained and are legally bound by a code of professional ethics,” says Dennis Peters, the past-chair of the CEQB who oversaw the development of the white paper. “The CEQB recognized this change and struck a task force, which produced the white paper. As the task force developed the white paper, they sought input from experts in the field from across the country, as well as all of the engineering regulators.”
Historically, software engineering is a discipline that has proven challenging for the engineering profession to recognize and, therefore, regulate. For the purposes of regulation and enforcement, the paper defines the scope of software engineering in a way that’s consistent with the existing definition of engineering, provided in National Guideline on the Practice of Engineering in Canada, which states:
The "practice of engineering" means any act of planning, designing, composing, evaluating, advising, reporting, directing or supervising, or managing any of the foregoing, that requires the application of engineering principles, and that concerns the safeguarding of life, health, property, economic interests, the public welfare, or the environment.
To be considered a work of engineering, then, that a piece of software (or a software-intensive system) must meet two conditions:
- The development of the software has required “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
- There is a reasonable expectation that failure or inappropriate functioning of the system would result in harm to life, health, property, economic interests, the public welfare, or the environment
The paper outlines what these mean in greater detail and then goes on to provide examples from, among others, nuclear power, biomedical devices, avionics, and even video games.
As software plays an increasingly important role in our society, in everything from social media to medical devices, cars, and airplanes, the engineering regulators will find that they must be vigilant in ensuring that the practice of software engineering is carried out by qualified professionals. This white paper will help them to identify those activities fall in the scope of engineering.
To read more white papers on engineering, please visit Engineers Canada’s National engineering guidelines.