Reflection on ICS 414 Software Engineering and the Pantry Party Project

19 Dec 2025

ICS 414 is probably one of the most relevant and important courses in my computer science degree here at University of Hawaii at Manoa because it bridges the gap between theory knowledge and real world software development practices. Although we did not go over all the modules in class, we did assignments related to Agile Project Management, Unit Testing, Acceptance Testing, Continuous Integration, and the IDPM Review. Our group project was named Pantry Party, a software designed to keep track of inventory within different pantries to reduce food waste and efficiently plan out grocery trips which saves time and money. Working on Pantry Party required teamwork, planning, testing, iterating, and this has allowed me to gain valuable experience and reflect on how structured software engineering practices shape both the product and the developer’s experience.

Agile Project Management was the foundation of our workflow, and rather than treating the project as a single large task to be completed by the end of the semester, we broke it down into smaller, manageable tasks. There were 7 milestones spread throughout the semester, and each of these milestones we had to do a group stand up to present our progress. While we do have a vision of what the end product should look like, each feedback we received from these milestones were important for us to adjust our implementations and designs. Our group hosted weekly meetings to update one another on everyone’s progress and address any questions or concerns we may have. The project management approach we had definitely helped prevent last minute chaos and made progress visible throughout the project lifecycle.

Unit Testing and Acceptance Testing was another module that reshaped my approach to development. Writing unit tests felt tedious at first, but I soon realized they function like seatbelts in a car. You may not need them every moment, but when something goes wrong, they can save you from serious damage. By testing individual components of Pantry Party, we ensured that each function behaved as expected before integrating it with the rest of the system. Unit testing also improved my confidence when refactoring code, as failing tests immediately signaled when changes introduced errors. Beyond catching bugs, unit testing improved code quality by encouraging modular design. Writing testable code forced me to think more clearly about responsibilities and dependencies. Instead of tightly coupled logic, I learned to design components that could stand on their own, making the overall system more maintainable. While unit tests confirm that the code works, acceptance tests verify that the software does what it is supposed to do from the user’s perspective. In Pantry Party, acceptance testing helped us validate features such as user flows and expected behaviors.

Continuous Integration is one of the most important features that improve the developer’s experience by automating testing and integration. CI/CD highlights the importance of teamwork and discipline because a broken system affects everyone so this enforces shared responsibility. Overall, Pantry Party has helped me gain skills in Agile thinking, testing discipline, and CI workflows. The skills I gained will carry forward into my future career of software development where communication, planning, and adaptability are just as important as coding ability.