Posted on November 14, 2021 by Gabe Parmer
When in an academic environment you’re often forced to interact with your peers, in labs, in groups, and in homework teams. You might be paired with friends, or with peers that you don’t enjoy. Regardless, your team has to make the collaboration work.
Communication. Working with your peers means understanding that team communication is necessary and a high priority. Fast communication is really important. When quick coordination is required, or issues in the code-base need sorting out, questions should be stated tersely, and replies should be provided quickly (within a couple of hours). To set up meetings, reply quickly. You should not wait to finish some work to reply to queries about when to set up meetings. For longer-term coordination, planning, and more in-depth discussions that require reading and thinking, a 24 hour turnaround can be expected.
Communication is the only means to ensure that team members are on the same page. Sometimes that means that one needs to communicate that they are behind, so that the group can assess options.
Also please put effort into communicating clearly. It is very easy to write ambiguous English that your teammates might not interpret correctly.
You must adhere to the online social contract in all group communication (where relevant, including offline communication).
Mutual respect. All interactions with all group members, and with peers outside the group, should show respect for your group members. In the “real world”, this is called “being professional”. You can think whatever you’d like about others, but when it comes to how you interact with your peers, avoid slander and negativity.
Each team member must
Doing tasks assigned to another group member without a group decision to do so is disrespecting that member. Not doing your assigned tasks in time, and not communicating this promptly is disrespecting all of your other’s team member’s commitment to the shared project.
Detailed planning. When going into a group project, each team should meet as soon as possible after it is assigned. Each group member should go to that meeting having read and digested the assignment. The purpose of this meeting is to agree on
All of these must be written down, and where they are changed throughout a project, the old plan should not be modified, instead a new plan developed. Thus, the set of plans captures the changing relationship of the group with the project, including who did what, and what they agreed to do.
Each subsequent meeting should assess where progress is at, and discuss ways to compensate for any slips in schedule. This requires that all members communicate clearly and honestly about their progress. Note that mutual respect means that these meetings should not be accusatory, rather focused on where the group’s work is at, and how to continue to make progress. See the template meeting agenda below for a structure for these meetings.
If a plan cannot be agreed upon by all team members (consensus is required), the instructor must be notified immediately.
Work allocation. All team work allocation should be equal in the sense that the work items initially agreed to should be completed by the corresponding member. The exception is where work items weren’t properly assigned in the plan and planned work items ended up containing more work than expected. Mutual respect means that you respect the allocations made to each group member, unless discussion requires rebalancing work. In that case, if there is genuinely more work than expected, and the plan was wrong, it is the group’s responsibility to compensate. If rebalancing work is due to a team member not doing their work, this issue should be raised with the instructor.
Prompt progress and avoiding procrastination. Group projects, more-so than solo homeworks, require that work be done steadily before the deadline. Some “spare” time should exist near the deadline for any work that went longer (often due to mispredicting how long it would take). The core reason why many groups fail is procrastination. If you only identify issues without time left to adjust, the only remaining option is failure.
Equally important, you must make steady progress from the time an assignment is put out so that if any team member is not active in the group, not communicating well, or not completing their work items, the instructor can be informed.
Raise warnings early. Any lapses in the other principles, or concerns about group should be brought to the instructor with enough time for actions to be taken. In my experience, most problems are due to not coming up with a shared plan, team member(s) not communicating with the group when they aren’t going to meet group goals, or team members not honoring other’s work items. Procrastination simply exacerbates these issues.
Maintain clear documentation about the initial plan, and how the plan changes over time. It should be very clear from this plan if anyone is not pulling their weight, is not communicating, or is “stealing” other’s work items.
Flexible work style. Not everyone should be expected to have the same schedule, nor to be able to make progress at the same time. Scheduling the work for an assignment must adhere to the actual schedules of each individual. That said, each team member must devote the necessary time to the project for its success. Where there are disagreements about how much time each member can/should spend, keeping in mind the shared set of goals agreed to in the planning is essential. The group must agree together if these goals are to be changed (i.e. due to schedule slips) – no single member can unilaterally change the scope of goals as doing so disrespects the other group member’s contributions.
Professionalism. Flexibility has to be moderated with professionalism. Group meetings should be in neutral, public environments such as the SEH, the library, or cafeterias. Discussions between group members should center around shared work. As such, conversations should not include value judgements nor negative/derogatory remarks about other team members. You should also avoid making negative comments about your team members to other peers. Should you have issues with team members, you should raise them (promptly, and before they turn into “blow ups”) with your Instructor.
No type casting. Specific group tasks should never be assigned (implicitly or explicitly) to any team member. Communicating to set up meetings, setting up deadlines, development, testing, discussing design issues – these are all roles that everyone in the team needs to do. Even if someone “steps up” at one point to make sure the project is moving forward, it doesn’t mean that others can relinquish that duty from then on.
The goal of meetings should be to as efficiently as possible identify the group’s progress, understand any potential issues, and to agree on corrective measures. When you meet as a group, physically or digitally, the meeting should be structured as such:
Each team member should understand what each other team member is expressing at each stage. The only way to understand the plan as a group, is for each team member to understand the high-level description of where each other member is at.
Create a brief document (appending it to your planning document) that summarizes the above points, and records who was present at the meeting, and if anyone was not present whom didn’t communicate clearly that they couldn’t attend with sufficient notification.
When group members don’t adhere to the core principles above, or they are slipping on their schedule in a way that impairs the group’s functioning, or ability to complete a project, the instructor must be notifed promptly. Such a communication should include
Often these communications are just to make sure that the instructor knows of potential problems down the line (someone is slipping on work, and there’s a concern they might continue to do so).
For issues that students believe need action, the instructor might contact the team member(s) in question, and understand their perspective. This might require a broader group discussion, or might be able to be handed with individual members. It is up to the instructor how grading will be impacted by this, but it is always fair to ask them.
Radio silence. Students who don’t promptly communicate with their team members are being counterproductive, are not communicating and are being disrespectful of their other members. A prompt reply should be provided, even if it is only “I haven’t been able to make progress on my task, and won’t be able to”, “I’m going to spend 4 hours this evening on it, and will give you all more information after that”, or “I can’t make the group meeting, and you should feel free to make decisions without me there”. The goal is to enable your group members to make progress, or to understand the state of progress. There is an impulse to avoid communicating until you finish some work item. This is wrong, and should not be tolerated.
Do the documentation. or Do the project management. Some team members might be assigned by the group to do the documentation or to do the project management. This violates no type casting. Everyone should be responsible for these tasks. Everyone must make sure that they occur productively.
I’ll just do it all. If a subset of team members decide that they should do many work tasks before a plan is made, or consisting of tasks belonging to others without a consensus decision to rebalance are being disrespectful of their team-member’s learning and capabilities, are ignoring thorough group planning, and are not communicating properly. This is as serious an issue as a team member not doing their work.
I’ll have it done tomorrow. When a team member’s schedule slips, if they continuously promise to “get it done in X days”, but never do the work, they are disrespecting their team-mates ability to coordinate the group, are not communicating that they are not making progress (and won’t), and are not adhering to the consensus-driven plan. Communicate clearly when you cannot complete a task, and communicate early.
Fixing other’s code. When working on bug fixes or “improvements” to other’s code, you should generally do so with them “in the loop”. This might mean doing so through pull-requests and code reviews, or by communicating with them explicitly about the proposed changes. Changing their code style or fixing their code without their agreeing to it is generally not acceptable as you’re disrespecting their productive output. Communicating clearly with each other team member about where you see issues, and having either them fix them, or agreeing to create a new work item for you to fix them, are the only acceptable conditions to modify other’s code.
Their code, your commit. If a team member changes a commit’s ownership, manually pulls someone else’s code into their commit, or otherwise removes/changes a record of authorship is committing an egregious act. Not only is this massively disrespectful of other people’s time and work, but it is actively attempting to hurt someone else’s grade by inflating your own. This might violate academic honesty which an have severe repercussions.
Not keeping up, but maintaining responsibility. When a group member falls behind, and cannot complete their tasks in time, they must communicate as such with their team members as soon as possible so that corrective actions can be taken – i.e. breaking up work items, or moving work to other group members. Where this means that some group members are doing too much, and others are doing too little, a record of this should be in the plans, and commit record. The instructor should be notified if imbalances are created due to these corrective actions.
Gossip. Saying negative things about your teammates behind their back to your peers is never appropriate. Complaining to management or your instructor are the typical remedial means of addressing any inappropriate teammate shortcomings.
Asserting organization. Asserting that meetings must be in a specific location, or at a specific time is not appropriate. Meetings must be organized and coordinated seeking consensus. This does not excuse not meeting, or setting up meetings being “too hard”. It simply points out that effort must be put into finding times and places that work for everyone.