I finally reached the end of my introductory software engineering course and looking back to the beginning of the semester, I’m amazed at how much knowledge of coding and software engineering concepts I gained from the course. At the beginning of the course, I was one of the students who thought software engineering was simply about coding web pages and user interface applications, as seen in my first essay. Admittedly, I had no clue what software engineering was.
Incrementing each week, I learned and experienced new fundamental software engineering concepts: Open-Source Software Development, Configuration Management, Functional Programming, Development Environments, Coding Standards, User Interface, Frameworks, Agile Project Management, Design Patterns, and Ethics in Software Engineering. These concepts revealed that software engineering is more than merely web application development. Due to time restrictions, I will discuss two topics, coding standards and ethics in software engineering, and what these concepts mean beyond web application development.
Before, my code lacked structure and cleanliness. For instance, my indentations were not consistent, so I had a difficult time aligning and closing brackets, affecting the result of my code. Coding standards is defined as a set of guidelines to produce consistent, high-quality code. The overall goal of coding standards is to develop cleaner code and increase the efficiency of the code with minimal errors. Knowing coding standards specifically improve the quality and efficiency of software development, what do coding standards mean outside of web development?
The purpose behind coding standards can be utilized outside of web development. As stated previously, coding standards are a set of guidelines and initially, I did not know that coding had guidelines. Now, with these guidelines, my code is organized, and I wish I had known about these guidelines before. Thus, outside of web development, coding standards can be seen as a set of guidelines. Especially in team collaborations, having a set of guidelines is beneficial when working with others since everyone will be on the same track. In addition to team collaborations, having a set of guidelines is a valuable tool in educational settings. By providing a structured framework for students, these standards contribute to fixing old habits and building new habits.
The study of ethics can be found in a range of fields like philosophy, community life, personal levels, medicine, business, etc., and software engineering is one of the fields too. In the broadest sense, ethics refers to the concern that humans have always had for figuring out how best to live. Ethics in terms of medicine, philosophy, and business is understandable but how is ethics applied in software engineering?
As a given, software engineers code but the cause they code and work for reflects the ethics of their profession. According to the Code of Ethics, by developing software systems, software engineers have opportunities “to do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm.” For instance, an in-class discussion about the ethics of facial recognition sparked my interest in this concept. The class was divided into two groups, whether it is ethical or unethical to work as a software engineer for a facial recognition system that markets to law enforcement agencies across the country. The inaccuracies resulting in false accusations of facial recognition are unethical. But, by reviewing the general ethical principles for software, the inaccuracies do not indicate that the cause is unethical. However, I did not analyze the situation thoroughly to conclude whether the overall situation was ethical or unethical. In addition to coding, as a software engineer, I need to make decisions to determine whether I am coding a software system for an ethical or unethical purpose. Therefore, ethics in software engineering is an important concept that has a significant purpose outside of web development.
From a novice perspective, I began with a narrow perception of software engineering, associating it primarily with web page development and user interface applications. However, each passing week brought forth a wealth of knowledge, exposing me to a spectrum of fundamental software engineering concepts. Delving into coding standards and ethics in software engineering, these concepts illuminated software engineering as a field that is not only coding but also ethics, collaboration, education, and more!