In general ...
First, some general principles related to handling teamwork issues:
- tP is graded almost entirely based on individual work. Even when a component is evaluated for the entire team (e.g., product design), each member will be given a mark based on that members' contribution to the component, and the quality of that contribution. This also means your tP grade is determined almost entirely by your own work, not the work of your team members. Even if all other team members are low-performing, you should still be able to get a good grade without increasing your workload significantly than otherwise, in theory.
- Team members are NOT required to do an equal share of work. Following from GP1, every member can decide how much they want to contribute to the project. This gives students the flexibility to control their tP workload based on their own expectations and motivations.
- Managing team issues is a learning outcome. You are recommended to keep the teaching team informed of any teamwork issues you are facing but keep in mind that solving such issues is part of the 'project management' aspect, which is a tP deliverable. So, the teaching team will refrain from direct interventions except in severe cases.
- Be professional, kind, and civil to the team members, even if they are not meeting your expectations. A below par performances in the tP does not make someone a 'bad person'. In some cases, the person might be fighting other battles that we are unaware of (e.g., mental health issues, family problems, financial problems). The best we can do is to be kind and supportive.
Be firm and assertive too, when you need to. Being civil does not mean you let others walk all over you. - Willful negative behaviors will be graded harshly. Willful negative behaviors will be graded harshly. Examples: promising things without intending to deliver, sabotaging others' work, not following what the team agreed on (i.e., going 'rogue'), using offensive language when communicating with team members.
A general strategy for adapting the project based on available manpower
- Ask how much each person is planning to contribute (e.g., how many hours per week can be dedicated to the tP), especially from those who seem to be contributing less. In addition, you can use past conduct to estimate how much you can expect from each person in the future.
- Get some idea about how much value each person is able to produce. Time doesn't always equal value.
- Based on the above, estimate how much 'real' manpower you have and adjust your targets accordingly.
- Stronger programmers in the team can take over the critical parts of the code. Avoid allocating critical tasks to technically-weak or unreliable members.
- Also note that in real software projects, it is not unusual to have less-than-100% members because some people need to divide their time between multiple projects. Treat this as a similar case and adapt accordingly.
More specifically ...
Now, some common problems and guidance on how to deal with them:
How to inform the teaching team about a teamwork problem? Some of the guidelines below ask you to 'inform the teaching team' about the problem. In such cases you can write to the course email cs2103@comp.nus.edu.sg
to do so.