Ultimate Collaboration in Extreme Software Engineering

10 Dec 2023

I started college with the broad intention of becoming a software engineer, but through many project experiences, I’ve discovered that I can invest myself more fully into projects which I find interesting or which require ingenuity and creativity. During Fall Semester 2023, I completed 3 courses primarily consisting of semester-long group projects as well as an independent study on cybersecurity. While all of these courses were worthwhile and educational, I found myself preferring some over others, which has helped me develop a better idea of the type of work I might like to explore in the future. Regardless, I love every project I work on, and I enjoy the process of software engineering itself. I am glad to have been able to get so much experience with it in a single semester.

Software Engineering 2

One course I took this semester was Software Engineering 2 (ICS 414). This course primarily consisted of modernizing and improving a web application that was developed by a prior class. During this course, I worked within a group of 7 people, which is the largest group I’ve been a part of for a school project. Throughout this project, we would conduct weekly code reviews every Monday at 9 AM as well as present project milestones in class every other Wednesday. Besides these scheduled meetings and presentations, we conducted all of our communication through a Discord server which we created for this project. The version control we used was Github, and we implemented issue-driven-project-management (IDPM). Most people in our group had not known or worked with each other before, but internal friction was low, and the project ended up being a success. Though the hard work and collaborative efforts of our team played a major role in the completion of this project, I found greatest value in our team’s project management strategies.

Project Management Strategies

Conclusion

The task of developing any piece of software is a large enough one that it will usually require collaboration among multiple people. Working in a group by its very nature poses challenges which aren’t present in individual projects. I believe that these challenges can largely be alleviated by implementing a communication strategy and good project management. The strategies which I found particularly valuable were regular code reviews and IDPM. These are practices which I would implement whenever possible for group projects of any size due to their effects on easing collaboration and maintaining code quality.