Reflecting on Software Engineering

14 May 2025

Reflecting on Software Engineering

Throughout this course, I’ve realized that software engineering isn’t just about writing code for web apps. It’s actually about how we approach building software, from working with others and managing responsibilities to keeping code readable and ethical. Out of all the concepts we explored, the three that stood out to me the most were Open Source Software Development, Ethics in Software Engineering, and Coding Standards. These are all things I not only learned about in theory, but also experienced during our final group project.

Open Source Software Development

Open Source Software Development is a way of building software where the code is made public and shared so that anyone can view, use, or contribute to it. It is more than just posting code online. It is a collaborative system that relies on good communication, clear documentation, and a strong structure so everyone can work together without stepping on each other’s toes.

In our final project, I basically took on the role of the team manager. At first, I struggled because I accidentally assigned overlapping issues to people, which meant they were editing the same files. That created merge conflicts and slowed us down. But once I learned to divide the work better so each person worked on different parts of the codebase, things went way smoother. Everyone could push their changes without causing problems, and because everything was in the open on GitHub, it was easy to track what people were doing and stay in sync. When done right, open source makes collaboration efficient and clear. It completely changed the way I think about team coding.

Ethics in Software Engineering

Ethics in Software Engineering means making choices that are fair, responsible, and respectful. It applies not just to the code, but to how you work with people too. I used this website as my basis for understanding ethics in this class: IEEE/ACM Code of Ethics. It talks about values like honesty, respect, and accountability, and I tried to apply those ideas during our final project.

As the project lead, I had to be fair when assigning tasks and make sure everyone had a voice. It was not just about getting the project done. It was also about creating a team environment where people felt comfortable and respected. I made sure to check in with team members, get their feedback, and take responsibility when I made mistakes, like the overlapping file issues I mentioned earlier. This part of the project helped me see that being a good software engineer also means being a good teammate and communicator.

Coding Standards

Coding standards are guidelines that help make code more consistent, clean, and readable. One tool we used was ESLint, which checks our code to make sure it follows certain rules. And honestly, it drove me crazy sometimes. It would fail over the tiniest things, like a missing space or the wrong type of quotation marks.

But even though it was annoying at times, I get why it is important. Looking back at older code I wrote before using ESLint, it is messy and hard to read. Without any enforced style, the code just looks all over the place. ESLint made me write cleaner and more consistent code, which makes a huge difference when reading it later or working with others. It might seem strict, but it actually helps a lot in the long run.

Conclusion

This class taught me a lot about web development, but even more about what software engineering really means. Open Source Software Development helped me understand collaboration better. Ethics showed me how important respect and fairness are when working in a team. And Coding Standards taught me how to write code that is actually readable and organized. These lessons will stick with me beyond just web apps and into any software I work on in the future.