Software Engineering Code of Ethics and Professional Practice
What is a code of ethics?
- A set of moral principles or values
- Governs by an individual or a group
- Deals with what is good and bad with moral duty and obligation
What is a code of ethics in software Engineering?
The Software Engineering Code of Ethics and Professional Practice is the
international standard for professional software development and ethical
responsibility.
The short version of the code summarizes aspirations at a high level of abstraction. The clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code. Software engineers shall commit themselves to making the analysis, specification, design, development, testing, and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety, and welfare of the public, software engineers shall adhere to the following eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
How did we come across the issues in implementing the system using code of ethics ?
As I am involving in a project which has three members in the group for the course SCS 3007 - Professional Issues, some issues that we had to come across and how we faced them using the code of ethics are stated below.
(1) Following the ethic,"1.08. Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline", we decided to do a software of a Library system for a rural school which had the necessity of having an automated system contributing our skills and valuable time.
(2) Observing the principle, "2.01. Provide service in their areas of competence, being honest and forthright about any limitations of their experience and education", we had to pay more attention on the user friendliness. When gathering requirements, we knew that the library staff had not used this kind of system earlier. Therefore we worked for a familiar system for them enhancing simplicity and friendliness.
(3) When we asked for student details for the purpose of creating functions and finishing the database, school authorities did not consent providing details. And we did not also get the book details as all the record books cannot be found at that moment. Therefore we used sample data for the testings and agreed to hand over the system adhering the ethic "2.03. Use the property of a client or employer only in ways properly authorized, and with the client's or employer's knowledge and consent".
(4) According to the code of ethics "3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose", and also as we were informed to do an application which would not spend time but should identify issues in software engineering, we implemented a fully functional library system. But we did not enhance the scope. Therefore system can be used by only the library staff not the students. We have designed the functions as we would be able to finish the system and handover it in a very short time of period.
(5) Since we implemented a system where we have main functionalities such as borrowing, returning, adding book details, member registration etc, there was a problem if a student leave the school, how it is going to be recorded. But as the student records won't be used, it won't be an issue having those information in the database. Following the code of ethic says "3.14. Maintain the integrity of data, being sensitive to outdated or flawed occurrences." we had to consider the data integrity and we added the deletion function as well. So then they can delete student's details when in need.
(6) "7.02. Assist colleagues in professional development." code of ethics had been used when we decided to implement the system by using .Net (C#). Because we did not experienced in that language as we learned Java, C, HTML etc in the university. But we chose C#, because it was matched with the nature of our system. And we thought that we would be able to finish in a short time duration using .Net. Therefore we were assisted by our colleagues for the developing phase. And we helped each and every group member in facing issues which we had to cope up with.
(7) As we faced more difficulties in connecting the database to the system observing "7.08. In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area." we got help from a outside professional who is a software engineer and skilled in .Net. So that we could acquire more knowledge too in that area.
(1) Following the ethic,"1.08. Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline", we decided to do a software of a Library system for a rural school which had the necessity of having an automated system contributing our skills and valuable time.
(2) Observing the principle, "2.01. Provide service in their areas of competence, being honest and forthright about any limitations of their experience and education", we had to pay more attention on the user friendliness. When gathering requirements, we knew that the library staff had not used this kind of system earlier. Therefore we worked for a familiar system for them enhancing simplicity and friendliness.
(3) When we asked for student details for the purpose of creating functions and finishing the database, school authorities did not consent providing details. And we did not also get the book details as all the record books cannot be found at that moment. Therefore we used sample data for the testings and agreed to hand over the system adhering the ethic "2.03. Use the property of a client or employer only in ways properly authorized, and with the client's or employer's knowledge and consent".
(4) According to the code of ethics "3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose", and also as we were informed to do an application which would not spend time but should identify issues in software engineering, we implemented a fully functional library system. But we did not enhance the scope. Therefore system can be used by only the library staff not the students. We have designed the functions as we would be able to finish the system and handover it in a very short time of period.
(5) Since we implemented a system where we have main functionalities such as borrowing, returning, adding book details, member registration etc, there was a problem if a student leave the school, how it is going to be recorded. But as the student records won't be used, it won't be an issue having those information in the database. Following the code of ethic says "3.14. Maintain the integrity of data, being sensitive to outdated or flawed occurrences." we had to consider the data integrity and we added the deletion function as well. So then they can delete student's details when in need.
(6) "7.02. Assist colleagues in professional development." code of ethics had been used when we decided to implement the system by using .Net (C#). Because we did not experienced in that language as we learned Java, C, HTML etc in the university. But we chose C#, because it was matched with the nature of our system. And we thought that we would be able to finish in a short time duration using .Net. Therefore we were assisted by our colleagues for the developing phase. And we helped each and every group member in facing issues which we had to cope up with.
(7) As we faced more difficulties in connecting the database to the system observing "7.08. In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area." we got help from a outside professional who is a software engineer and skilled in .Net. So that we could acquire more knowledge too in that area.