Final Project: Final Team Sprint (3)
300 points
Group assignment is due on Gradescope Thursday, May 2, 2023 11:59pm
Individual assignment is due on Gradescope Thursday, May 2, 2023 11:59pm
The largest portion of this final project is to be done and submitted as a team.
The final reflection writeup will be submitted individually.
Learning Goals
After over a month of relentless effort, it's time to impress your investors. You'll unveil an end-to-end MVP that captures your vision and gets them excited about what's to come.
Final Project Report
Although your investors are not interested in the technical details of your work, they respect its importance. Therefore they have hired a technical team to assess the quality of your work and process. Submit a report which includes all important decisions you have made and explain why you have selected one option over another. The assessment team will make judgments based on this report and the content of your team's codebase and Kanban board.
Your report should highlight the work you did that we will see during the demo. This could include, but is not limited to:
- Why are these features the minimum viable product for this idea?
- What did you choose to use this technology stack?
- What was your integration testing plan (link an example of an end-to-end test)?
- What changed from your original plan?
- What are your predicted performance bottlenecks?
- What are 2 potential pivot ideas?
- What metrics are you collecting and monitoring?
- What is your strategy for quality assurance/testing?
- How did your team self-organize? What roles did everyone play?
- What would be your next 3 features you would implement given more time?
- How would test viability for your MVP concept?
Note: We expect that each of these questions can be answered in one paragraph or less.
Final Project Presentation
In this presentation, you will show your investors (the class!) a walkthrough of your end-to-end MVP. You do not need to include details related to the backend. Your investors are mostly interested in seeing the progress and functionality of your product. Your presentation should be 10-15 minutes and include a demo. You may use slides but are not required to. All team members must participate with each speaking for at least 2 minutes of time.
The following presentation elements are required (but may be combined as appropriate):
- Introduce your team name, team members, each person's assigned role, and the roles they actually ended up playing in the project.
- Introduce the main concept of your MVP.
- A walkthrough of your MVP, organized by user stories, not by features.
- A demo of your MVP, with everything connected.
- Describe any external feedback (from outside your team) that you received on your MVP.
- Point out the coolest part of your MVP.
- Point out the part of the MVP of which you are most proud.
- Explain the most important lesson you learned.
Note: All presentations will occur during our final exam slot, Tuesday, April 30, 8:30am-11:30am.
MVP/Rubric
Each of your projects is different, so we would like for you to develop a rubric describing how your project should be graded. This rubric should cover each feature of the project/MVP you are delivering; we will grade your presentation and report separately. Your rubric should total 80 points and should describe how those points should be allocated across the various features of your MVP. A good rubric describes what you have to do to earn full credit, as well as what you would do to earn partial credit. Note: We reserve the right to modify the rubric for the final evaluation, however our goal is to be able to use these rubrics to grade each project in a way that is fair and transparent.
Team Post-Mortem
The post-mortem is the place where you can talk as a team about how your software development process worked out during the release cycle. In this class, the post-mortem starts with a team meeting and ends with an individual writeup (for every individual on the team) of the things that went right, the things that went wrong, the things that must be changed for next time, and the lessons you learned from the experience.
Here's how it's going to play out.
Post-Mortem Logistics
- You will schedule a meeting for all of your team's members sometime between Tuesday April 30th, 11:30am and Thursday, May 2, 11:59pm. It has be after your team is done with your project and presentation so you can reflect on everything you have been through together this semester.
- The meeting will be between 1-2 hours long. No more. No less. People have trouble taking criticism after 2 hours. They'll leave. Less than 1 hour won't cover everything you should be talking about.
- Individually, before you come to the meeting, think of 3-5 of your top issues (positive and negative) that you want to discuss at the meeting.
- One of you should bring a pad of post-it notes, one pad for every team member. Also, bring a large sheet of paper (8.5x11" will be too small). Be sure everyone has a pen. Don't allow the use of any computers or smartphones during the meeting.
- Choose one person, not the team's CEO, to be the post-mortem facilitator. Usually it's best to pick someone who you feel has been a good listener throughout the project and that everyone (still) respects and likes.
Agenda
-
Group Reflection
- For each team role that someone played on your team (e.g. frontend developer, backend developer, tester, project CEO, project manager, designer, etc.), do the following, one team role at a time. Note: your team probably had 5-10 team roles being played by its 4-5 team members.
- Analyze: Fill out post it notes (as many as you want or have) silently with anything that went wrong with the actions of the people while playing that team role.
- Praise: Fill out post-it notes silently with everything that the people playing that team role did right or did well.
- Solve: Cluster the post-it notes (analyses and praise) into topic categories. If you do this on a whiteboard wall, it'll be like affinity diagramming!
- For each topic cluster, brainstorm together potential solutions (don't go too deep, but don't rule anything out). Brainstorm means listen to one another's suggestions and write them down. Do NOT shoot any ideas down. Brainstorming is supportive, even if you are the subject of discussion.
- Assign each team member to a set of topic clusters and brainstormed solutions. Each team member should now silently flesh out two unique composite ideas for each topic cluster out of the solutions you are reading. It's ok to be inspired to come up with more, but try not to exceed three.
- For each team role that someone played on your team (e.g. frontend developer, backend developer, tester, project CEO, project manager, designer, etc.), do the following, one team role at a time. Note: your team probably had 5-10 team roles being played by its 4-5 team members.
-
Spidergraph
- On a large sheet of paper, draw a spidergraph. Basically, it's a 9-pointed star made of 9 lines that meet in the middle. At the end of each point of the star, write the following concepts (definitions in the links come from a class previously taught by Andrew Begel at the University of Washington):
- Pick one concept to begin. Leave the paper in the middle of the group, and pass the pen to a random person. Ask that person to individually (without discussion) rate the team on the concept from 1 to 5 at the end of one of the axes of the star. Draw a small circle on the line where closest to the center is 1 and 5 is at the endpoint of the axis.
- Pass the pen to the next person, and ask them to individually rate the team on the same concept. Repeat until each person has rated the team on that single concept.
- Discuss the rankings that everyone gave for that concept. Do you all agree? What does it mean? Is there a spread of values? In response to any differences, or particular values, come up with a list of things that your team could to do improve your ratings for that concept. Write down that list.
- Once you've finished discussing that word, pick another one, and repeat the process. Once you've finished all 9 points of the star, take a picture of the spidergraph for posterity, and you're done.
- Share Out
- Now, take everything you've written down for the team post-mortem (e.g., post it notes, brainstorming, and fleshed out solutions) and the Spidergraph (don't forget the picture of the Spidergraph) and email it to everyone on the team, so that they can refer to it for their individual post-mortem deliverable. Note: there is no graded deliverable for the team post-mortem.
Team Deliverables
- Final Project Presentation (85 points)
- Final Project Peport (85 pts)
- MVP/Rubric (80 pts)
Present your final project on April 30, between 8:30am-11:30am. We expect everyone to be there!
Submit your Final Project Report and MVP/Rubric on Gradescope.
Individual Deliverables
Individual Post-Mortem (40 points)
- For each team role you discussed in your group reflection, pick your top two analyses and top two praises from the entire set of post its and write them down. Then, pick one brainstormed, worked-through solution that you believe will best address the analyses and preserve the praise. Explain how this solution will help you personally to ensure (or be assured) that your next team experience related to this team role (even if it's never going to be your team role) turns out better.
- Make a list of the value words, one for each point of the 9-pointed spidergraph star.
- Next to each word, write down the person on your team who you personally believe epitomizes that value the most on your team (i.e., from their actions, behavior, and character alone would earn them the highest score) and the score (1-5) they would earn.
- Compute the average score your team received for that word and write it down.
- Write down what you believe your own score was at the beginning of the semester, before you worked with your team.
- Write down what you believe your own score is now, at post-mortem time.
- If your score improved, tell a story of one experience during this class that helped you become better at that teamwork skill, or helped you realize you were already better at that teamwork skill (the word at the end of that point on the star). The experience does not need to have been related to your class project.
- Repeat this process for the remaining eight words on the spidergraph star.
- Finally, you will vote for your team Most Valuable Person.
- Write down the full name of person on your team who you believe epitomizes the highest scores on the particular points of the spidergraph that you personally feel were most important to your team's success, morale, friendship, and who always made you feel like you were an important, integral part of the team.
- What value did you gain from the team contract that you created in the previous assignment?
- Did any situation occur in which your team found the answer in the processes defined by the team contract? Describe what happened.
- Were there any situations that could have benefitted from a more complete team contract? Describe them.
- Was the team contract ever detrimental to the effective functioning of your team?
- Did you ever have to update the contract during the course of the final project?
- What are your main takeaways from this class?
- What should we keep next time we offer this class? What should we do differently?
Individual Contributions (10 points)
All team members should be making pull requests (PRs) when adding/pushing new code. As you progress toward your MVP, every individual team member should have a
- At least 1 PR merged with at least one +1 from a reviewer.
- At least 1 constructive comment on other team member’s PR.
We will visit your GitHub repo to check that these have occurred with timestamps before the assignment deadline of May 2nd and after the last deadline of April 18th. If GitHub fails to show any evidence of your work, you will lose points from the individual portion of your grade.
Submit your Individual Post-Mortem and links to your 1 PR / 1 Comment on Gradescope.
Bonus
Any team which fully completes its user stories on time will receive a 10% bonus for the final project portion of this class.
- 8 percentage points will be divided evenly among the team members (e.g. if there are 4 people on the team, each person gets 2 percentage points. If the team has 5 people, each person gets 1.8 percentage points.)
- The team’s most valuable person (MVP) will receive 2 percentage points.
- Your team may choose at most one person to be MVP. If no one is chosen, your team will forfeit those 2 percentage points.
To help with the computation, note that the final project is worth 500 points (FP1 was 100 points, FP2 was 100 points, and this assignment is 300 points). The total 10% bonus is therefore worth 50 points. The team's most valuable person receives 10 points. The remaining 40 points will be distributed evenly among all team members (even the team's most valuable person).