Monitoring and evaluating individual team members in a software engineering course

A one-semester software engineering course is becoming quite common in undergraduate computer science curriculums. The goal of this type of course is to expose students to modern software engineering techniques and provide them with a software development team experience. Although the team experience is extremely valuable to the students, it often poses significant problems for the instructor attempting to monitor and evaluate the progress of individual team members, This paper presents an approach to alleviating this problem developed and refined while teaching this course over a five year period, lntrcxlucUon Over the last several years, there has been an increasing awareness of the need for software engineering education. In an attempt to satisfy this need many universities offer a course in software engineering at the senior / graduate level. Typically, such a course will cover the different phases of the life cycle, introduce some management principles and expose the students to some of the software engineering literature [Kantfl, Coil83], In addition, the course usually requires each student to participate in a one-semester project in which the principles learned in the classroom are applied, There are many logistic problems associated with this project. These include the selection of the pro-~ect, tracking the lectures with the pro)err activities, .organizing the teams and evaluating the teams. Although these are all difficult questions, they have already been addressed somewhat in the literature [KantSl, Coi182, Cell83]. This paper will focus instead on the specific problem of monitoring and evaluating the progress of individual team members, The progress of individual team members may vary greatly for a number of reasons. For instance, a common reason for a team member to get behind on his schedule is pressure from other classes. The team member may delay his project work while performing a more pressing task in another class, thus, hindering the progress of his team. Another explanation for differences in team members stems from the actual ability of the student to perform quality work at the required level of difficulty. This ability has been shown to vary by a factor of 10 in professional programmers Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association …