Skip to content

Latest commit

 

History

History
96 lines (69 loc) · 6.01 KB

File metadata and controls

96 lines (69 loc) · 6.01 KB

Team Working Contract

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.

Team Members

Name GitHub Handle
Justine Filion @jufil19
Saisree GR @Saisree-123
Neethu @Neethu
Sara Hall @SaraAnnHall

Participation

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:

  1. We will meet every morning at 9 am to say what we worked on the previous day and what we plan on doing the current day.
  2. We will all update our logs at the end of every day.
  3. We will establish small weekly milestones as a group and then strive to meet them. If it becomes apparent that our milestones are taking longer than expected we will adjust our expections.
  4. We will all document our work as we go so that we don't have to scramble at the end.
  5. We will accept that sometimes progress is slow even though lots of time and work is going into things, and support eachother through the highs and lows.

Communication

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:

  1. We have a private slack channel where we will discuss things like meetings, deadlines, and troubleshooting.
  2. We will keep out Trello board up to date with what needs to be done, what we are working on, and what has been completed.
  3. We will meet at least once a week in person to maintain face to face communication.
  4. We will meet with our client twice a week, Mondays and Fridays at 9 am.
  5. We agree that we are all equal and we promise to always listen to each other respectfully and consider everyone's perspectives.

Meetings

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:

  1. We will meet briefly at the start of every day (9 am) to discuss where everyone is at.
  2. We will meet in person for at least one hour a week to get some face to face communication.
  3. We will all show up to meetings on time.
  4. We will show up to meetings prepared with the necessary information.
  5. We are open to additional impromptu Zoom meetings whenever necessary.

Conduct

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).

  1. Send a message to the team member that violates the code of conduct, mentioning that we think the behaviour is inappropriate.
  2. Give a formal warning to the team member that violates the code of conduct and let the person know what the next consequences will be if the person's behaviour continues.
  3. Request for a public apology for the violation that the person has conducted.
  4. Talk to the lecturer or teaching assistant to help mediate the conflict.
  5. Removing their access to the project repository.

Conflict Management

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.

  1. Don't ignore conflict, communicate if you have any reservations.
  2. Clarify the conflicting issues.
  3. Hold a meeting with the conflicting parties to discuss the issue.
  4. Come up with a solution on how to move forward with the project after the conflict.
  5. Follow-up to ensure the conflict has been resolved and no underlying issues remain.

Deadlines

All team members agree to the following conventions around course deadlines:

  1. We agree to submit all deliverable before or on the day of the deadlines and aim to submit as early as possible.
  2. We commit to deliver our individual task on time so that the project can run smoothly.
  3. We agree to notify the other team members at least two days in advance if we do not think we will make it on time for the deadline.

Git Workflow

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...):

  1. Only add new features in your own branch.
  2. Test all of you code before issuing a pull request.
  3. Issue all pull requests at least 2 days before the deadline.
  4. At least one team member must review before accepting a pull request.
  5. Master branch must have no errors at all times (keep it protected, don't merge bad code!)