Below is a teamwork contract template adapted from Carnegie Mellon University. It is divided into several sections, and it is expected that each group will spend some time generating at least 5 points for each section that everyone agrees to.
If you are not able to agree on these points, it is a sign that your group may become dysfunctional, and you should seek advice from me (the course instructor) ASAP to resolve and mediate the discussion.
Name | GitHub Handle |
---|---|
Person 1 | @Jagdeep14 |
Person 2 | @Saisree-123 |
Person 3 | @Aliceburg |
Person 4 | @osbprof |
All team members agree to fully participate in all aspects of the project. To accomplish this goal, below are five concrete actions that we all agree to take:
- Action 1: All aspects of the project will be discussed at team meetings (online or in-person).
- Action 2: All roles and responsibilities will be documented for clarity and accountability.
- Action 3: Decisions will be made by consensus; disagreements will be resolved through discussion.
- Action 4: Everyone will share their strengths and assist others as needed.
- Action 5: Everyone agrees to be open-minded to new ideas and flexible regarding changes.
All team members agree to communicate openly and transparently during the project. To accomplish this goal, below are five concrete actions that we all agree to take:
- Action 1: All team members will use the proj-551 channel for day-to-day communication.
- Action 2. All communication will be constructive, polite and respectful.
- Action 3. Team members will encourage each other to share ideas and thoughts.
- Action 4. All verbal agreements will be recorded and shared in the proj-551 slack channel.
- Action 5. All communication shall be public within the team; 'back-channel' communication is discouraged.
All team members agree to meet regularly during the project. To accomplish this goal, below are five concrete ideas that we all agree to regarding scheduling and frequency of meetings:
- Idea 1: Team meetings will be scheduled and held frequently, at minimum weekly.
- Idea 2: Meetings will be scheduled to allow everyone to attend. Attendance is mandatory.
- Idea 3: In-person attendance at meetings is preferred, with virtual attendance as necessary.
- Idea 4: Decisions will be recorded and shared via the team's preferred communication channel.
- Idea 5: Meetings will be unstructured but focused, with a balance between social and productive.
The code of conduct we have chosen is in the Code of Conduct document. All team members agree to following the code of conduct, and below are five concrete escalation steps that we all agree to follow in the event that the code of conduct is violated by any member of the group (Step 1 is the first thing you will do, and Step 5 is the last thing you will do).
- Step 1: Any perceived violation of the code of conduct will be identified publicly within the group.
- Step 2. Perceived violations will be openly discussed and the nature of the violation clarified.
- Step 3. The violator will be provided an opportunity to explain/justify, or to apologize and course-correct.
- Step 4. Violations - if minor and/or quickly corrected - will be discussed but not recorded.
- Step 5. Violations - if significant and/or repeated - will be recorded and shared with the Professor.
N.B. Please do not hesitate to expand beyond 5 steps if needed.
Despite our best intentions, conflict may invariably arise within teammates. Discuss amongst your team some conflict mitigation strategies (feel free to search online if needed) and come up with 5 strategies all members of the team agree to follow in the event there is a conflict within the group. You may also include things you will NOT do in the event a conflict arises.
- Strategy 1: Clarify the nature of the conflict or disagreement (i.e. exactly what it regards) through open discussion.
- Strategy 2: Have team members assist in finding common ground and fresh ideas for a new agreement.
- Strategy 3. Identify a method (i.e. specific steps required) for moving toward the new agreement.
- Strategy 4. Solidify any new agreement by having all teammates voice their approval of the outcome.
- Strategy 5. All teammates will actively assist in creating harmony following conflict.
All team members agree to the following conventions around course deadlines:
- Convention 1: Deadlines and associated milestones will be clearly identified and shared.
- Convention 2: Early warnings will be provided to the team in the case of significantly delayed progress.
- Convention 3: Requests for assistance will be openly shared and discussed.
- Convention 4: Volunteers with the capacity to assist with slipping deadlines are encouraged to step forward.
- Convention 5: The Professor will be made aware of team members who repeatedly miss deadlines.
There are many git workflows possible when working on a team project with many moving parts. I suggest you discuss in your group some possible Git workflows. Here is a brief primer on some common options. I suggest reading them, understanding them, and then selecting one. You can explore and choose any you like, but if you cannot decide, I suggest using the "Feature Branch Workflow".
All team members agree to the Feature Branch workflow, and the following conventions (e.g., master branch protection, at least X reviews before a pull request, at least N days before the deadline etc...):
- Workflow 1: A new branch will be created for each feature and a most responsible person assigned to that branch.
- Workflow 2: Developments in each branch will be regularly added, committed and pushed by the most responsible person.
- Workflow 3: Pull requests will require the agreement of all team members before being accepted.
- Workflow 4: Pull requests will occur at least two days prior to the deadline for that feature.
- Workflow 5: Changes stemming from reviews of the pull request will be openly discussed by the whole group.
** This section should be completed AFTER Milestone 4 is done and submitted! Only one is needed PER group. **
In this section we will ask you to self-report the workload distribution to various categories of tasks. For each of the categories, we want you to report the approximate workload distribution, split by the milestone.
Here are the tables you are expected to complete (the first one is pre-filled in so you can see what we're expecting):
Category | Song Zhang(Alice) | Roger Wheeler | Jagdeep Brar | Saisree GR |
---|---|---|---|---|
Repository Setup | 100% | - | - | - |
Sketch | 5% | 5% | 5% | 85% |
Documentation | 15% | 85% | - | - |
Project Management | 25% | 25% | 25% | 25% |
Troubleshooting | - | - | - | - |
Brief notes/explanations (optional):
- No troubleshooting was needed for Milestone 1
- Song Zhang did most of the repository setup, whereas Roger did most of the documentation
Category | Song Zhang(Alice) | Roger Wheeler | Jagdeep Brar | Saisree GR |
---|---|---|---|---|
Documentation/Reflection | 50% | 50% | - | - |
Writing new code | 20% | 20% | 30% | 30% |
Code Reviews/editing | 20% | 20% | 30% | 30% |
Project Management | 25% | 25% | 25% | 25% |
Testing & Troubleshooting | 25% | 20% | 35% | 20% |
Category | Song Zhang(Alice) | Roger Wheeler | Jagdeep Brar | Saisree GR |
---|---|---|---|---|
Documentation/Reflection | 25% | 25% | 25% | 25% |
Writing new code | 30% | 25% | 25% | 20% |
Code Reviews/editing | 25% | 25% | 25% | 25% |
Project Management | 25% | 25% | 25% | 25% |
Testing & Troubleshooting | 15% | 35% | 40% | 10% |
Category | Song Zhang(Alice) | Roger Wheeler | Jagdeep Brar | Saisree GR |
---|---|---|---|---|
Documentation/Reflection | 25% | 25% | 25% | 25% |
Writing new code | 25% | 25% | 25% | 25% |
Code Reviews/editing | 25% | 25% | 25% | 25% |
Project Management | 25% | 25% | 25% | 25% |
Testing & Troubleshooting | 25% | 25% | 25% | 25% |
Brief notes/explanations (optional):
- Every team member contributed equally to all categories. We were working synchronously.