ICS414 - A New Perspective

03 Dec 2023

When I signed up for this class, ICS 414, I initially thought that this class would be exactly the same as ICS 314 which I had a few semesters ago. However, after taking this class this semester, I can confidently say that I was wrong and that there are many differences between ICS 314 and ICS 414. The main differences are that the groups for the project are bigger (6-7 people in a group instead of 3-4 people), there are weekly code reviews for the team, and for this semester we are maintaining and updating an existing project instead of creating a new one. These three differences are also the topics I want to reflect on in this essay.

The More People In a Group, The Better?

Typically, in a group project, the perception is that the more people working on a project, the faster the project will be completed. This perception was not true in the early stages of the assigned project. My group had 7 members, and our speed was definitely not that of 7*1 person for the first few milestones. Initially, there were many challenges in setting up the project. Everyone had different dependencies and project versions, so we spent a lot of time synchronizing everyone’s development environment and making sure there was only one version of the project. Project management was another problem with more people. When we first started working on the project, everyone had different ways of making a commit and merging into the main, which caused some confusion and slowed down overall progress. We all needed to agree on a way to do things and maintain a consistent coding style. Overall, more people working on the project is faster and better. But it takes the right setup at the beginning to reap the benefits of having more people working on the project. After completing the project, I learned a lot more about project management and working with others.

The Weekly Code Reviews

In ICS 314, we did not have weekly code review meetings for our project, and I did not have to do code reviews throughout my programming journey. So the whole experience was very new to me. After conducting 11 weekly code reviews, I learned a lot about the review process and its benefits. The code review process that my group followed can be found here. There are many benefits to conducting a code review, especially in a group project environment. It helped us establish a consistent coding style throughout the project, it improved our coding skills by showing us the right and wrong way to code. It also helped us significantly reduce the number of bugs and make the overall code in the project easier to read and understand. After this course, code review is something I will continue to do in my future projects.

Being An Maintainer Instead of A Creator

This semester’s ICS 414 differs from previous semesters in that the assigned project is not to create a new project but to maintain an existing project HACC-HUI. To maintain and update an existing project, the programmer must understand the existing code base and make adjustments as needed to update the code. This is the first time I have had to update and maintain a project, and it is definitely more difficult to maintain a project because you did not write the code, someone else did. However, because I had previous experience working with React and Bootstrap, the transition was not too difficult and I was able to get up to speed quickly. Being the maintainer of this project this semester has given me a realistic perspective of what it’s like to be a software developer, where most of the work is mainly working with an existing codebase from the company and has given me some useful insights.

Conclusion

This semester of ICS 414 has given me a new perspective on software engineering and development. Working on the HACC-HUI web application has taught me how to work in a larger team, how to conduct code reviews on projects, and how to be a maintainer of an existing code base.