This semester I decided to take ICS 414 - Software Engineering II. There were no exams, no lectures, no assignments, and no quizzes. One may even question if anything was learned in this class. As it turns out, this class proved to be one of the most valuable classes I have ever taken. In this class, our group created a web application for an actual client based on their request and their needs. The client was The Hawaii Homeless Outreach and Medical Education Project (H.O.M.E), and their request was to have an inventory application created to help manage their medications and supplies.
Throughout the semester, our team worked together to meet the clients needs by setting up bi-weekly milestones to achieve a threshold for that time period. At the end of the semester, we were able to create a nearly fully functional inventory website that allows users to add supplies, remove supplies, view the status of supplies, and manage user supplies. However, along with such a big project came a lot of issues.
Because this was such a large project to work on, our class was split up into large teams of 7-8 people. Being used to working in smaller groups of 3-4 people, I was unprepared for the challenges that awaited me. Because of the large teams, it became difficult to distrubute work evenly, and a few team members seemed confused on what issues they could work on to help improve the application. At the beginning of the semester, one of our teamates also ended up dropping the class, which resulted with more work for the rest of the team to try and accomplish.
Due to the busy schedule that many of our group members had throughout the semester, a few of our group members were not able to meet their assigned issues throughout the early and middle stages of our development process. This resulted with more work being done by the other team members, leading to an unfair workload. Eventually, our team was able become more verbal on what issues should be worked on and prioritized, resulting with a more even workload later in the semseter. I felt that during this time, I should have taken intitiative and used more communication to address the issues that were present in our group, and to also help everyone come to a mutual understanding. This is something that I will definitely work on imporving in the future, along with working on my confidence to speak up to group members when needed.
Another issue that needed to be adapted to throughout the semester was the ability to learn independently. Because there were no lectures for ICS 414, a lot of the code and implementations used for our web application had to be self taught through research and problem solving. Being so accustomed to the traditional class with lectures and note taking, I originally struggled with this style of learning. The clients would also sometimes be very vague in their requests, making it even more difficult to implement their requests into our website. However, as the semester went on, I could tell that my problem solving skills and self-learning skills were improving. By the end of the semester, I was completely comfortable with doing the necessary research to implement new features into our website, and my problem solving skills had increased dramatically. The time spent troubleshooting code had decreased as the semester went on, and my confidence with my ability to be able to solve a problem had increased.
Even though ICS 414 did not have any lectures, no exams, and no assignments, I feel like this probably has been my most valuable class yet. With my interest being in software engineering, being able to take a class that provides a realistic approach as to how software engineering is actually done in the tech world has been very beneficial to me and my computer science career. From running into communication issues with the client, to having issues within the development group, to improving my problem-solving skills and self learning skills, I feel like I have gained valuable experience on how a career in software engineering may be like. Because of this, I feel a lot more confident in my ability to become a software engineer, and I feel like I have a significant advantage over my peers trying to get into the same career choice. With all the problems and lessons learned while taking this course, I really feel like ICS 414 provided me a glimpse into my future, and I have never been more excited for it.
For more information, you can visit our teams Github Repository and our project home page.