The Software Engineering Group Project module at the Department of Informatics of King’s College London employs an approach that aims to provide students with a range of diverse group project experiences, with a view to maximise opportunities to practice the software engineering knowledge, project management skills, collaborative software development tools and techniques and the interpersonal skills students acquire throughout the module. 

Recognising that the experiences of individual students in a group project is, to a significant extent, shaped by the peers they are grouped with, the module requires that student complete three group projects rather than one, each taking place in different team.

The first two projects are smaller projects that take place in Term 1. Students are allocated to different teams based the overall marks obtained in Year 1 programming / software development modules. In one project, students are grouped into homogeneous teams, such that each member of a team has a similar programming ability to other members of that team.

The project involves a collaborative software development exercise, but the assessment criteria for this project are designed to minimise the impact of the allocation method, focusing mostly on the teams’ ability to employ knowledge, skills and tools developed in this module rather than prior technical ability. This project provides an opportunity for students to work with others without having to address significant differences in prior technical experience and ability.

In the other project, students are grouped into heterogeneous teams, such that all teams have a similar range of abilities and technical potential represented within them (and no student is grouped with the same peer twice). In this project, students need to overcome the communication and collaboration barriers that arise from differences in ability. In this project, students are required to learn a new programming language and develop for a platform that is unfamiliar to most.

They are required to learn to work with these technologies that are new to them during the project. This intends to prepare them for the third and final project. It helps to equalise the differences between students somewhat at the start of the project, preventing stronger students in a team from getting an early head start that the weaker ones are unable to overcome.

In order to encourage teams to learn and work collectively (rather than rely on the strongest developers only), teams are given careful guidance on how to organise their work. The development project work takes place in labs, with teaching assistants observing the discussions and work of the teams, supporting them where needed.

The third and final project takes place in Term 2 and builds on the first two projects after these have concluded.  This is a much more substantial, intensive 10-week project, where teams tackle a practical software engineering problem for a real-world client (typically, a non-computer scientist unrelated to the Department of Informatics).

Students form their own teams, and they can choose to work with friends or people they have worked with in the previous two projects. Informed by their previous experiences in the first two projects, students tend to be in a better position to make an informed choice of teammates than they were at the start of the module. Students unable to find a team (typically just over 5% of the class) are allocated manually. 

Throughout and after all three projects, students and teams are monitored carefully using the “Team Feedback” software that was developed for this purpose. During the projects, Team Feedback collects attendance data at team meetings, team meeting minutes, code contribution statistics (from GitHub) and data from a weekly light-touch experience survey. 

After the projects, Team Feedback administers a peer assessment exercise with response phase. This helps us to identify certain common problems in group projects, such as social loafing, lack of communication, unresolvable conflict, and lack of participation, and intervene where necessary.

The above approach has enabled us to provide each student with a range of group work experiences: usually some that are pleasant and productive, and some that are perceived as frustrating. It has also enabled us to reduce individual abuses of group work exercises. While the above approach does not eliminate concerns about assessed group project work among students completely, our approach is mostly perceived to be fair and equitable.