Experiencing Real-World Software Engineering Through ICS 414

11 May 2025

During my time in ICS 414: Software Engineering II, I had the opportunity to experience what it is like to work on a software engineering team in a low-stakes, collaborative environment. My team, composed of eight members, developed a web application for Spire, which aimed to provide a more user-friendly and accessible version of their financial model. This application was designed to help users visualize financial trends more intuitively.

Our team was split into two subgroups—half focused on the back end and the other half on the front end. I began by contributing to the back-end development, and once the foundational components were completed, I transitioned to assisting the front-end team by refining existing pages and adding new ones. Despite our efforts, the team experienced a lack of organization. Many essential issues were not clearly defined or tracked, which occasionally led to confusion about task ownership and progress.

One of the most rewarding aspects of the course was the opportunity to interact with a real client. Engaging with a representative from Spire allowed us to gather direct feedback and better understand the client’s perspective—particularly how to present a technical product to someone without a background in computer science. The Spire representative was approachable, receptive to questions, and provided constructive feedback in a professional yet encouraging manner. I also appreciated the collaborative nature of the course, where all groups worked on the same project, allowing for cross-team inspiration and idea sharing.

However, there were aspects of the experience I found challenging. In particular, the expectation that each group would define and manage their own issues did not reflect the structure of a typical software engineering environment, where tasks are often organized and delegated by a project manager. The lack of clear task assignments and team communication made it difficult to coordinate efforts and maintain clarity on project goals. Additionally, knowing that the final product would not be used by the client made the project feel more like an academic exercise rather than a meaningful contribution.

Overall, ICS 414 provided a valuable introduction to the dynamics of software engineering in a team-based setting. It highlighted the importance of communication, project organization, and customer interaction. While the experience revealed some of the common challenges in collaborative development, it also offered practical insights into working with real-world stakeholders and reinforced the importance of both technical and interpersonal skills in software engineering. I leave the course with a better understanding of the software development process and feel better prepared for future roles in the industry.