In going into this final semester of college, I decided to take ICS 414 as a means to work towards building my resume into something that I would be comfortable showing employers following my undergraduate graduation from the University of Hawaii at Manoa. As we have completed the semester, I believe that my time in ICS 414 has given me a good amount of experience in terms of working on a life-like software engineering project for a client as well as taught me important lessons regarding working with a large group.
In terms of the project itself, I thought that “The Voluntree” as well as the features that Sara wanted us to implement were fairly doable for the structure of this course. Towards the beginning of the semester, she gave us a lengthy spreadsheet of the different features that she wanted us to implement alongside the rankings of how vital those features were to the overall project. This ranking was a very good metric for us to map out a timeline of how we planned on developing the front and back end of the project, so I felt that aspect of the spreadsheet was nice. Sara also didn’t provide us with any specific guidelines on how she wanted these things implemented outside of the generic functionality of the individual features, which led to a lot of creative decisions being made entirely on our behalf. This was nice as we weren’t constrained by any of the features that she requested and allowed for more learning on our part on how we wanted to implement our creative visions. A specific feature that I found to be very helpful to learn about was the “pricing” page, as this was the project’s version of a subscription page that can be seen throughout many of the modern-day subscription services like Netflix, Prime, and Disney+.
As for the group portion of the project, I think I learned a lot about leadership and taking initiative within a group. Around the same time that we were introduced to the project idea and our client, the class was divided into groups and my group consisted of 7 people. This was one of the largest group projects that I have ever worked on so I thought that it would be interesting to see how everyone worked together throughout the semester; I assumed that since there would be so many people working on the project, we would be finished with the main requirements relatively quickly. Unfortunately, the group’s motivation was its highest at the very beginning of the semester, and would sharply plummet immediately after the first customer milestone. Some of my group members would slowly start not showing up to class, not responding to the discord messages I would send regarding the upcoming milestones and requirements we had for them, and at the end of the semester did not contribute to the project at all whatsoever. One group member completely dropped the project after realizing that his grade was not salvageable, which may have also led to others taking up that same notion. This unfortunately led to me completing a lot of the work for the project and presenting what I did to Sara directly; instead of a group presentation, it often felt like a solo presentation of the features that I implemented. Although this could have been avoided if I had been able to choose my own group members, I do feel like this was a good reflection of how in the actual job force, there is often little say that I may have in the quality of the people I am assigned to work with.
Finally, the bi-weekly milestone meetings with Professor Moore and Sara were probably my favorite portion of the course that I feel I will be able to retain with me when working with the software engineering industry as a whole. This is because I have heard from a lot of individuals working in the software engineering industry that there are a lot of “code reviews” and weekly presentations in which software engineers have to discuss their progress toward whatever it is they are working on. This is something that we have never been trained or prepared to do in any other ICS course outside of maybe ICS 314, in which we had to present directly to Professor Moore about our individual project ideas and progress. In this case, however, we presented to our client Sara, who had a predetermined idea of what she was looking for in our projects and on her website, so it was wonderful to be able to discuss what we had contributed towards her idea and if those contributions aligned with what she wanted. Furthermore, I feel as if I was able to improve my presentation skills during this period, as I was often the sole presenter of the updates in my group’s project.
All in all, I felt like I gained a lot from this project despite having smaller group member issues. At face value, I still gained the software engineering hard and soft skills that can be applied in the industry and my contributions to the project allow me to have a better understanding of the code that I can relay to interviewers in an actual interview environment. As such, I plan on touching up on the project code a bit more, updating the github.io page for the project, and including it in my resume which I will be using towards upcoming job opportunities.