The more reflective you are, the more effective you are.
This class, ICS 414 Software Engineering 2, is the sequel to ICS 314 Software Engineering 1. The knowledge and coding practices developed in ICS 314 carried over to ICS 414, which manifested itself throughout the independent-style project management and development nature of this course. Working as part of an eight-person team has bolstered my collaboration skills through efficient task specification through clear issue descriptions and a consistent communication via Discord.
This semester, our team worked on a project for Spire Hawaii LLP, where we were tasked with managing ourselves and to develop these projects with minimal interference. The weekly code reviews were our method of quality assurance as all of us decided upon two source code files a week to perform a comprehensive review and add these suggested changes to the project board. Through the issues, project board, and the group discussions about task division and deadlines, I learned a lot about how important dedicated roles are in project development. I believe that in industry, without clearly defined roles in a software project, the intertwined desires of the group will stifle project development. If we had a dedicated project manager to function as a medium to resolve team communication conflicts, help assign fairly weighted tasks, and ensure that the deadlines are met, our project development process would have been more streamlined.
Maintaining a consistent naming convention and adhering to good coding practices is crucial when working in a team to maintain consistency, readability, and extensibility. We used GitHub to store our project’s source code and we used it for version control. Our team’s unconventional naming of commits, pull requests, and issues convoluted the project development process as we had to spend a considerable amount of time resolving these issues and standardizing our methods. I learned that working in a team is difficult without a strict standard expected by all team members for consistency and ease of access when extending upon each other’s code.