Isn't Software Enginneering Just Web Dev?

08 May 2026

After taking this class, I now understand that software engineering is more than just building web applications. Web development was the main technology stack we used, but the bigger lesson was learning how software projects are organized, written, tested, and maintained. A web app is only one example of a software system. The same software engineering ideas can apply to many other areas, such as cybersecurity tools, mobile apps, desktop programs, data analysis scripts, or open-source projects. The three topics that stood out to me the most were configuration management, coding standards, and ethics in software engineering because they showed me that good software is not only about whether the code works, but also whether it is reliable, readable, and responsible.

Configuration Management

Configuration management means keeping track of the tools, files, dependencies, versions, and settings needed for a project to run correctly. Before this class, I mostly thought programming was just writing code. However, I learned that software can fail even if the code itself is correct if the environment is not set up properly. Package versions, environment variables, GitHub repositories, Docker files, deployment settings, and configuration files all affect whether a project works. This is why two people can have the same code but get different results if their environments are different.

This idea goes far beyond web application development. Such as, if I were working on a cybersecurity tool, I would need to make sure that the correct language version, libraries, operating system compatibility, and setup instructions were clearly managed. Without that preparation, someone else might not be able to run the tool, test it, or continue working on it. In this class, using tools like Git, GitHub, npm, and deployment configuration helped me understand that managing the project environment is part of software engineering. It is not just extra setup work but is the reason why software is easier to share, reproduce, and maintain.

Coding Standards

Coding standards are rules and conventions that make code more consistent, readable, and easier to maintain. This can include formatting, naming variables clearly, organizing files properly, writing understandable functions, and using tools like ESLint to catch problems. At first, coding standards can feel frustrating because they force you to fix the smallest details that may not seem important. But, I learned that these small details matter, especially when a project grows or when multiple people are working on the same codebase.

Coding standards apply to almost every kind of software project, not just websites. Whether someone is writing a web application, a Python script, a security tool, or a mobile app, clean and consistent code is easier to understand and debug. It also makes teamwork easier because other developers do not have to waste time figuring out unclear formatting or confusing variable names. This class helped me understand that software engineering is not only about making something work once. It is also about writing code that another person, or even my future self, can read, modify, and trust later.

Ethics in Software Engineering

Ethics in software engineering means thinking about the impact software has on people and making responsible decisions while designing, building, and maintaining it. Software can affect privacy, security, fairness, accessibility, and user trust. Because of that, developers have a responsibility to think beyond just whether a feature works. They also need to consider whether the software handles user data safely, whether it could be misused, and whether it treats users fairly.

This topic matters outside of web development because almost all software affects people in some way. In my case ethical software engineering could mean making sure a cybersecurity tool is used for defense and learning rather than harm. In a data project, it could mean being careful with sensitive information and not exposing user’s private data and in a team project, it could mean being honest about contributions, AI usage, bugs, and limitations. This class made me realize that software engineering is not only technical. It also involves judgment, responsibility, and communication.

Conclusion

Overall, ICS 314 taught me that software engineering is much broader than web application development. Building web apps was the way we practiced, but the deeper lessons were about creating software that is reliable, maintainable, and responsible. Configuration management taught me the importance of controlling the environment and dependencies needed to run a project. Coding standards showed me why readable and consistent code matters in both individual and team projects. Ethics in software engineering reminded me that developers have responsibilities to users, teammates, and the larger community. These concepts will be useful beyond this class, whether I am working on future coursework, personal projects, cybersecurity tools, or professional software development.