Rules of Software Engineering

13 May 2025
Programming Illustration

Introduction

In ICS 314 Software Engineering, I learned how to create web applications. However, ICS 314 is more than mastering HTML, CSS, Typescript, React, and other coding languages. It is about understanding fundamental software engineering concepts. So, without further ado, here are two key concepts that I resonate with.

Idea 1: Coding Standards

Coding standards are rules on how code should be written, formatted, and organized. It is similar to the guidelines we follow when writing an essay. These rules may be as universally accepted as capitalizing the first letter of a name or a place, or as controversial as the oxford comma, or seemingly-optional, like indenting the first sentence of a paragraph, or rather even writing your essay in paragraph form. It is harder to read a blob of words with no signals of shifts in topics. Similarly, the purpose of coding standards is code readability and consistency.

In ICS 314, we applied coding standards while writing code that could be read by other classmates or teaching assistants. In a more general sense beyond web application development, we can use similar if not the exact same coding standards when working on different project contexts. Whether you are coding a game application, or contributing to machine learning, or automating some task, coding standards are just as useful in any other field of coding as they are in web development. Especially when multiple people are contributing to the same project, it is better for each person to follow the same standards to avoid confusion or unnecessary time trying to understand how a piece of code works. So to make my life and the lives of my peers easier, I follow coding standards. If you wish to not give your future coworkers headaches while reading your code, you should too.

Idea 2: Ethics in Software Engineering

Ethics are a set of principles a person follows when decision making. It has been studied for quite some time, and there exist numerous ethical frameworks which provide various perspectives on what action provides the most moral outcome. You may be wondering how ethics relates to software engineering.

Unlike doctors or engineers, software engineers are not required to be licensed. Yet the systems we build can affect numerous people. Keeping all this in mind, do you think there is any way this could go downhill? It sure has. Whether we like it or not, we will be faced with ethical dilemmas in the future. Some examples:

There are many dilemmas out there that software engineers may face, and a question is posed of what is the best course of action to take that follows morality most closely. It is important that as software engineers we understand what we are contributing to with our code, and how it could help or hurt others.

Conclusion

To conclude, I learned a lot about software engineering in this class. I am thankful for the experience I gained from attending lectures and completing assignments. Thanks for a fun ICS 314.