Reflect on Software Engineering

08 May 2026

One thing I learned from this class is that software engineering is much broader than just building websites. Even though we used web technologies throughout the semester, the main focus was really on learning how to work on larger projects in a structured and professional way. One topic that stood out to me was configuration management. Before this class, I mostly thought programming was just writing code until it worked, but now I understand how important it is to manage changes carefully when multiple people are working on the same project. Configuration management includes things like GitHub repositories, branches, pull requests, version control, and deployment setup. During the semester, these tools became part of our normal workflow and helped prevent people from overwriting each other’s work or introducing bugs into the project. I also noticed myself applying these same ideas to personal projects outside of class, especially when working on my server and deploying applications. This class helped me realize that maintaining and organizing software is just as important as creating it.

Another important topic from the course was Agile Project Management, especially Issue Driven Project Management. Agile project management is a style of development where projects are divided into smaller tasks that can be completed and improved gradually over time. Issue Driven Project Management uses GitHub issues to organize tasks, bugs, and features so the team always knows what needs to be worked on. At first I thought the process seemed overly detailed for a class project, but by the end of the semester I understood why teams use it. It made communication much easier and helped prevent confusion about responsibilities and deadlines. Instead of everyone randomly working on different things, we had a clear system for assigning tasks and tracking progress. I could also see this working outside of web development. Even projects involving hardware, networking, or embedded systems could benefit from having organized issue tracking and planning. The class showed me that project management is a major part of software engineering, not just coding.

I also learned about design patterns and why they are useful in larger software projects. A design pattern is a common way of organizing code to solve problems in a cleaner and more reusable way. Before taking this class, most of my projects were focused on simply getting the code to function. During this semester, I started paying more attention to how software is structured and why organization matters. In our group project, separating different parts of the application helped make the code easier to debug and expand later. I learned that good software engineering is not just about making something work once. It is about designing systems that are easier to maintain, easier for teammates to understand, and easier to improve over time. Overall, this class changed the way I think about programming because it focused much more on teamwork, organization, and long term development practices instead of only writing code.