Policies for Teamwork
As you solve an assignment, follow these instructions:
-
Designate a coordinator, monitor, and checker for each programming assignment. If you have a 4-person team, one person will go without a role; you could simply call them a developer, though of course everyone is expected to help develop the solution. Rotate these roles for every assignment.
-
Agree on a common meeting time and what each member should have done before the meeting—for example, readings, a design or implementation sketch, fully implementing and testing a function, etc.
-
Do the required individual preparation.
-
Before the meeting, the coordinator checks with other team members to remind them of when and where they will meet and what they agreed to do.
-
Meet and work, perhaps several times.
-
The coordinator keeps everyone on task and makes sure everyone is involved. The coordinator takes notes on what topics are discussed, what decisions are made, and what tasks are assigned to team members. Think of the coordinator as a team leader.
-
The monitor ensures that the team is implementing the functionality required by the assignment handout. Though of course all team members will need to understand the handout, the monitor is the expert on it. Think of the monitor as a representative of the client who hired your development team.
-
The checker is in charge of delivering the solution in CMS, including making sure that the proper group has been formed in CMS. The checker ensures that
make check
always passes, that any ZIP files were constructed correctly, that the uploaded files are exactly what the team intends, and that everything is uploaded before the deadline. If the checker fails at this task, the entire team will bear the consequences. Think of the checker as a very focused quality assurance specialist.ADDED 9/20/18: The checker also is in charge of checking that the rest of the team is following the Coding Standards, including that documentation and tests are being written by the people who implement functions, and that coding style is consistent throughout the codebase. The checker is not responsible for fixing inconsistencies themselves, but rather pointing them out to the people who created the inconsistencies so that the original authors can fix the mistakes.
-
You may be inclined to ignore these role assignments and just do the work in any way that comes to mind, or maybe one team member will actually do the coordinating all semester no matter who is supposed to be doing it for a given assignment. That’s a mistake. We strongly advise you to take the roles seriously. Your work will go more smoothly and turn out better if you do. Also, the roles each involve different skills, all of which you’ll need to function effectively as professionals. Now is the time to start picking up those skills—and you can’t do it if you never take on the roles.
-
-
Review returned assignments. Make sure everyone understands why points were lost and how to correct errors. Consult with the grader as necessary. On exams your grade will depend on how well you understand the entire assignment, not just the parts that you worked on closely.
Dealing with Non-cooperative Team Members
If a team member fails to cooperate and contribute to the completion of an assignment, the other team members should first meet with that non-cooperative team member to have an honest conversation about how their expectations are not being met. If the problem still continues, the cooperating team members may send an email to the professor, cc’ing the non-cooperative member, to summarize the situation and request a meeting. The professor will read the team’s expectation document, then meet with everyone, hoping to resolve the problem. Most of the time, that does succeed.
But if the problem does not resolve after that meeting, the cooperating team members may warn the uncooperative member by email that they are contemplating asking the professor to remove the non-cooperating member from the team. This email must be written with the utmost professionalism. The professor must be cc’d on that email. If there is still no subsequent improvement, the cooperating team members may send an email to the professor, cc’ing the non-cooperating member, requesting that the non-cooperating member be removed from the team. The professor will make the final call.
A student who is consistently doing all the work for their team without any help from their teammates may follow the same process to quit from their team.
Removal and quitting carry serious consequences. Students who leave a team in this way must either find another (3-person) team willing to add them as a member, or complete the remaining assignments by themselves with a penalty. The reason for the penalty is that the student has failed to complete the teamwork objectives for this course. The amount of the penalty will be determined by the professor based on the details of the situation.