Skip to content

Project 0: Team Contract

This homework is worth 110 points. There is an extra credit option worth an additional 10 points.

It should be done as a group and turned in by one group member who tags the others in Gradescope.

P0 is due on Gradescope Tuesday, February 3, 2026 11:59pm.

Submission

Submit P0 as a PDF file to Gradescope.

If you prepare the response in some other software (like Tex), please export as PDF before submitting. Include your name and Andrew ID at the top of the document.

To receive full credit for the teamwork contract, we expect:

  • All sections listed above are addressed in a roughly 1-2 page PDF document submitted to Gradescope
  • Document demonstrates a clear process outline that was discussed between and agreed upon by the teammates
  • All group members’ signatures at the end of the document

Learning Goals

  • Make initial decisions on a team process, and reflect on your experience with the process
  • Define version control and development best practices within the context of a group assignment

Project Context

You have just been assigned to a team to work on your startup. Now, you need to come together to discuss one another's backgrounds and skills, negotiate your team norms, and write up a team contract. These include communication standards, time expectations, division of labor, a definition of equitable contribution, and procedures for managing conflicts within the team.

Team Setup

Slack Channel

In the 17-356/776 Slack workspace, create a new private Slack channel that includes all your team members and all of the instructors (Andrew Begel, Austin Henley, Eryn Ma, Sai Ravi Teja Gangavarapu).

Use this Slack channel to collectively decide on a team name. Your team name should be unique, pronounceable, short, and something you would be proud to shout in your team cheer on the streets of Pittsburgh in the presence of small, impressionable, multilingual children. Once you have a team name, rename your team Slack channel to #team-<teamname>.

Use this Slack channel for subsequent project-team related discussions or specialized Q&A with your instructors for the rest of the semester.

Each team will be advised by one of the two TAs, Eryn or Ravi, whomever leads your recitation section.

Project Deliverables Repositories

As you work on your project, you will generate a set of deliverables. You must store these deliverables in appropriate repositories.

  1. Specifications and other written documents must be stored in a Google Drive folder. Create a new Google Drive folder, invite the other team members to it, and be sure to provide view access to all of the course staff. If we can't access content on your Google Drive, you will receive a zero on your assignment.
  2. Designs and presentations may be developed in a variety of tools, but often in Canva, Figma, Google Slides, or PowerPoint. For anything stored in the cloud, be sure to provide view access to all of the course instructors in addition to your teammates, or you will receive a zero on your assignment.
  3. Software code must be stored in a GitHub repository to ensure that it can be versioned and never lost. You must use this repository for all of your developed code. Be sure to use good development practices, including keeping your commits cohesive and your commit messages informative. You must give access to all of the course instructors through their GitHub usernames (abegel, azhenley, eryn-y, floreador.
  4. Project management must be done with professional tools like Asana, Trello, Basecamp, Jira, Smartsheet, GitHub Issues, or another tool of your choice. You should create items for feature improvements and bug fixes. You should assign these items to particular team members and tag them with appropriate labels. When making changes to your code repository, you must reference the project management issue you are working on. Invite the course staff to your project management tool.

Main Deliverable

Teamwork Contract

When working with a team, it is important to discuss each team member’s background, and establish common expectations of the team. Miscommunication or the general lack of communication are the most common causes of team conflict.

Team Conflict Example

A common conflict in working style is when there are team members who always want to get a headstart on their work, while there are team members who are fine with doing work a few days before the deadline. It causes panic in the former team members, while the latter team members feel frustrated as to why they are being rushed.

As such, your first process task of the semester will be creating a teamwork contract with your teammates. It is a 1 - 2 page document containing information that all teammates agree to follow. You should work on the contract with all members present. We recommend that you keep it to around 1 page, 2 pages is a hard limit.

Additionally, it is more important that you only include statements that the team will adhere to than it is to fulfill the length requirement (quality over quantity!) You do not need to write full sentences (bullet points are okay), but your decisions must be clearly conveyed in the document.

You are free to include anything that your team deems necessary, but you should minimally address the following sections:

  1. Expectations
    How much time is each team member expected to be putting into working on projects? Punctuality? How would your team accommodate when unexpected commitments come up for a team member (e.g. interviews, sickness, competitions)?

    Do account for the fact that project load can get heavier towards the end of the semester.

  2. Communication
    What platform(s) will your team be using to communicate? What is the expected time to get a response?

    For any communication platforms you decide on, please test that everyone can receive notifications. We highly recommend using apps (Slack, Discord) over browser-based sites.

    Who should be in charge of tracking down teammates that may be ghosting you? Assign someone to
    make sure that everyone communicates regularly.

  3. Meeting Schedule
    When and how will your team meet? What modality would it use?

    A strong recommendation would be to set up a recurring 1 hour meeting blocked out for the rest of the semester, so that your team does not have to scramble to find a common meeting time each week. Teams that have recurring meetings are generally more successful in the class.

  4. Responsibilities
    How will you divide responsibilities for each part of the project? During meetings, who will be in charge of note taking, organizing & running those meetings?

    Often, a natural project manager will emerge, who will ensure the project moves towards completion. Throughout the semester, we will ask for documentation of your meeting notes, so be sure to keep them organized (we recommend using a shared Drive folder).

  5. Equitable Contribution & Conflict Resolution
    What are the steps the team would take to address teammates who are contributing too little, and when will the team bring this up to the instructors? What are the steps to bring up and discuss potential teamwork issues?

    The first thing the staff will ask the student when they mention that they are facing team issues is if they have followed the steps on their team contract.

    How will you continue to work in the case of an irresolvable conflict between team members? We recognize that intra-team conflict occurs, but we also need to see results. Write down a set of practices you will follow to enable team members in a fight to continue to contribute without interfering with the functioning of the rest of the team.

Feel free to seek the assistance of TAs and instructors in drafting this document.

Note

We will ask you to reference, reflect upon, and refine this document throughout this semester, and we will evaluate your team's process strategies and interactions through what you outline in this contract. Please ensure that everyone on your team thoroughly discusses each of the above sections and agree with the final decisions.

Once you have completed the contract itself, have all members sign and date the document as an indicator that all members have read the document and agreed to uphold all outlined items. Then, save the file as a PDF and upload it to Gradescope. Only one team member needs to make the submission; they can then add the rest of the teammates as group members for a group submission.

We also highly recommend that you bookmark the teamwork contract in your team’s Slack channel.

Extra Credit

Getting to know your colleagues in a friendly context can often lead to more effective collaboration; for example, healthy teams often get lunch together. To incentivize this, we will give your team extra credit for this assignment if you meet for a team bonding experience outside of a working session.

You might want to eat together, go out for boba, or hold a board game session. If someone on your team is not feeling well, you may also do a virtual activity such as an online gaming session (Drawphone, Skribbl.io, etc.) or social "Zoom lunch".

To receive extra credit, share the photo or screenshot of your team activity in your team's Slack channel before the deadline. We encourage you to do these types of meetings often throughout the semester!