Final Project 1: Team Sprint 1
Due on Gradescope Tuesday, April 11, 2023 11:59pm
This final project homework is to be done and submitted as a team.
Congratulations! Your project has found an investor who expects you to show them an MVP by the end of the semester. You should use the knowledge and experience you gained during the semester to build the MVP and satisfy that investor. We will not set deadlines for you this time. Instead, you must create your own plan. We will monitor your progress. It is your job to manage your time and your team to reach your goals in time.
Final Project Tasks
In this pre-project sprint, you should specify user stories that will be included in your MVP and a plan/timeline to achieve them. This plan should include how many sprints you plan to do, and what you plan to achieve during those sprints, and when they should take place. You must also decide upon your tech stack: front-end and backend frameworks, databases, CI, team communication tools, etc.
You will also create a project home page that displays your project name, list of team members, project logo, pitch deck content (not just a pointer to your slides), and two-sentence elevator pitch for what it's all about. This page should be hosted in your GitHub wiki.
We continue to expect you to make proper use of your Kanban board, especially when assigning tasks to (all) team members.
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 often 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.
You will create 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:
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 accommodate for the fact that project load can get heavier towards the end of the semester.
What platform (s) will your team be using to communicate? What’s 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.
When and how will your team meet? What modality would it be?
A strong recommendation would be to set up a recurring 1hr 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.
How will you divide responsibilities for each project? During meetings, who will be in charge of note taking, organizing & running those meetings?
From past courses, we noticed the natural emergence of a project manager in teams, who ensures the project moves towards completion. We highly suggest that you consider how your team would rotate that role amongst team members over the course of the remaining projects. Throughout the semester, we will ask for documentation of your meeting notes, so be sure to keep them organized (we recommend using a shared Google Drive folder).
Equitable Contribution & Conflict Resolution
What are the steps the team would take among its members to address teammates who are contributing too little? If all attempts to resolve the inequity are unsuccessful, 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 do is ask the team if they have followed the steps on their team contract.
Feel free to seek the assistance of TAs and instructors in drafting this document.
We will ask you to reference, reflect upon, and refine this document throughout this project, 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. Include this document as part of your submission below.
We also highly recommend that you bookmark the teamwork contract in your team’s Slack channel.
A project proposal document containing the following:
- A short intro/motivation for your startup and product (1-2 paragraphs)
- Project home page URL.
- Set of prioritized user stories that will be included in your MVP. (Recall HW2).
- You should have a project backlog in some online tool that your team members can use to collaborate with; e.g., GitHub Projects, GitHub Issues, Trello, Zenhub, etc. Include a printout in PDF format of this backlog with your proposal.
- A list of user interfaces your product should contain, along with wireframes for each (Recall HW3).
- A list of what you will use in your tech stack: backend framework, front-end framework, database, GitHub repository, etc. Agree upon and list your communication tools (e.g., Slack, etc), and development infrastructure (development environment, CI, code style/linting). Agree upon and list where you will deploy your application (e.g., fly.io, Azure, Heroku, AWS, etc).
- Plan/timeline you anticipate following to build the MVP.
- How many sprints will you do? What will you accomplish during each sprint? When will each sprint take place? (Schedule them on a calendar.)
- In this plan, you should include how you plan to divide the workload among team members. Keep in mind that we will evaluate you against your own timeline, so try to be realistic.
- Your team contract
Note: To evaluate your progress for the rest of this project, we will be scheduling regular meetings with your team for the remainder of the semester. Keep this in mind and take care to plan a realistic schedule.