Computer | 2021
Not Teaching Software Engineering Standards to Future Software Engineers-Malpractice?
Software engineering standards are essential sources of codified knowledge for all software engineers. Could the professors, that are not teaching software engineering standards to software engineering students, be accused of malpractice? During a roundtable at the New Delhi meeting of the ISO committee responsible for software and systems engineering standards1, a member of the audience asked if software engineering professors that do not teach software engineering standards to software engineering students could be accused of malpractice. By malpractice we mean any inappropriate, wrong, illegal or careless actions that a professional does while working. As we well know, engineering domains such as mechanical, chemical, electrical or engineering are based on the laws of nature as discovered by scientists. Figure 1 illustrates some of the many laws of nature. Unfortunately, software engineering, unlike other engineering disciplines, is not based on the laws of nature. Would it be conceivable that a professor teaching electrical engineering would not teach Ohm’s law or a professor teaching chemistry would not teach the Boyle-Mariotte’s law? By teaching we mean not only showing a few slides but requiring students to solve some problems and perform a lab experiment about this law. Figure 1. Laws of Nature that support engineering disciplines . The development of software is based only on the laws of logic and mathematics. Software Engineering, like other engineering disciplines, is based on the use of well-defined practices for ensuring the quality of its products. In Software Engineering, there are several standards which are 1 ISO/IEC JTC1 SC7 Software and systems engineering, https://www.iso.org/committee/45086.html C. Y. Laporte and M. Munoz, Not Teaching Software Engineering Standards to Future Software Engineers-Malpractice ? in Computer, vol. 54, no. 5, pp. 81-88, May 2021, doi: 10.1109/MC.2021.3064438 actually guides for management practices. A rigorous process is the framework for the way standards are developed and approved including, among others, international ISO standards and standards from professional organizations such as IEEE. As written by Moore a few years ago  “Standards are important, not because they represent best practices, but because they represent good enough practices. Courts generally view the application of standards as important evidence that engineers perform their work with appropriate diligence and responsibility. If accused of negligence or reckless conduct, an engineer can cite the standards used when he or she conducted the work to demonstrate that it was performed in accordance with codified professional practices”. If an engineer could be accused of negligence, why professors teaching to future software engineers, that ignore or do not teach software engineering standards could not be accused of malpractice? SAD OBSERVATIONS ABOUT SOFTWARE ENGINEERS In a recent article of the Impact column of IEEE Software , the authors wrote that «We had been hoping that would follow the same trajectory as its older established cousins, such as civil engineering, but we have seen no real evidence of this. » The authors also wrote that we cannot call ourselves an engineering discipline unless we begin to systematically learn from our mistakes and, in software we seem to have an aversion to measurement. This is quite a paradox, since on one side software people are not learning from their mistakes and, on the other side, hundreds of experts around the world have been working since the 80’s in documenting in standards knowledge gained from successful and failed software projects. The portfolio of software engineering standards now covers the full spectrum, i.e., from “cradle to grave”, of software engineering. Another paradox is the fact that those software engineering standards, that document codified knowledge and are publicly available are not used, or ignored, by a large number of professors that are mandated to transfer software engineering practices to their software engineering students. Consequently, those students will end up in software development organization with a large deficit of essential knowledge. Is this a case of negligence or malpractice? WHY BOTHER WITH STANDARDS? Standards are sources of codified knowledge and studies have demonstrated the benefits of them, such as product interoperability, increased productivity, market share gains, and improved interaction with stakeholders such as enterprises, government organizations and the public. Standards and associated technical documents could be considered as a form of technology transfer and, if the right standards are selected and used correctly, they should have an economic impact in an organization . The contribution of standards to the economy of a few countries is illustrated in Table 1. Table 1. Comparative contribution of standards to national economies (adapted from ) C. Y. Laporte and M. Munoz, Not Teaching Software Engineering Standards to Future Software Engineers-Malpractice ? in Computer, vol. 54, no. 5, pp. 81-88, May 2021, doi: 10.1109/MC.2021.3064438 Germany (DIN) UK (DTI) Standards Council of Canada Australia Standards France (AFNOR) Period subject to analysis 1961-199