Software Engineering II Reflection

03 May 2022

The Next Progression

This semester of ICS 414 has been a perfect continuation of its predecessor: Software Engineering I. While many of the course's characteristics remain the same, the differences play an essential role of lifting one’s veil of the real world just a little bit further. To elaborate further, the structure of ICS 414: Software Engineering II course is to create a web application in a group of seven as specified by a client. The key elements to note is knowing exactly what each member is working on is next to impossible with this group size. In addition, the client may not know exactly what they want. As a result, a certain amount of creativity and trial-and-error is required. These changes are cornerstone in the development from the school to work mindset.

Seeing is Believing

The textbook advantage of a large group is the fact that each member's strengths cover their teammates' weaknesses. Admittedly, I never believed it because I felt the chances of such a situation were low. However, I was proven wrong. Whether it was by coincidence or something else, the group had complementary skillsets. For instance, there was a person that excelled at back-end and another who had a keen eye for UI design. Additionally, there was a leader figure who was great at presenting our progress. Finally, there were two others that stood out for their usage of packages and resourcefulness, respectively. As a result, when someone experienced an obstacle, the problem would be resolved neatly just by asking the right person. Needless to say, I firmly believe that the project turned out great due to the complementary combination of skills.

A Good Story is Not Smooth

However, this project still had its challenges. For instance, our hasty decision in regards to the application’s back-end collections created problems down the line. The general idea was well-founded but our lack of understanding lead to misinterpretations. In addition, some areas of communication were weak that resulted in some key features being determined as unfeasible towards the end of the project. In both situations, band-aid solutions that could have been avoided altogether were needed.

Lessons for the Future

While I am satisfied with our end product, there are some bugs hidden throughout the application and features that I was not able to complete due to its lower priority and time constraints. Needless to say, this project has been a wealth of experience and knowledge. For future projects, capitalizing on each member’s strengths while learning from both of the aforementioned mistakes is a priority. As they say, “Fool me one, shame on you; Fool me twice, shame on me.”