Projects

All projects in this course are sprints in a semester-long effort to create a usable piece of software for a client. These sprints will be done in teams of four or five. Students are permitted to select their own teams, which will be fixed for the entire semester. Students should select their teams through Brightspace.

Initial Product Backlog

Before the sprints can begin, each team must create an initial product backlog. Although the contents of this backlog will eventually be added to Trello, the initial backlog must be provided as a Word or PDF file in a docs folder in your GitHub repository.

At the top of this backlog document, write a single sentence describing, as clearly as possible, the product vision. This vision is a short statement of what the entire product is supposed to do.

Next, the initial backlog should contain a listing of all major features the product should have and an estimate of how much work each one is. The backlog items are not yet sprintable stories; thus, the estimates of effort will likely be fuzzy. I recommend using the following levels:

  • Very Low: A few days to implement
  • Low: Less than a full sprint to implement
  • Medium: Takes a full sprint to implement
  • High: Takes multiple sprints to implement

There are many guides on the Internet to creating a product backlog, but this blog post gives an overview of the process with a number of good ideas to keep in mind for future refinement and creating sprintable stories.

Initial Product Backlog Grading

Criteria Description Weight
Product Vision Statement Meaningful, succinct statement of product goals 25%
Product Backlog Items PBIs covering all major features of the product, with reasonable effort estimates 75%

Sprints

Sprints each have a length of two weeks and will follow the schedule below:

Sprint Start Date Due Date
1 1/27/2025 2/07/2025
2 2/10/2025 2/21/2025
3 2/24/2025 3/07/2025
4 3/17/2025 3/28/2025
5 3/31/2025 4/11/2025
6 4/14/2025 4/25/2025

One member of each team is the Product Owner. Another member of the team is the Scrum Master. All other members of the team are Developers. Below is a table listing the duties of each role.

Role Duties
Product Owner
  • Communicating with the client
  • Updating PBIs based on client feedback
  • Documenting the sprint review
Scrum Master
  • Making sure everyone has tasks assigned to them
  • Running story poker
  • Updating Trello as work gets done
  • Documenting the sprint retrospective
Developer
  • Researching tools, platforms, and algorithms as needed
  • Implementing code
  • Writing tests

Because your teams are small, Product Owner and Scrum Master are not full-time positions. In other words, the Product Owner and Scrum Master are expected to use 50% of their time doing their own roles. During the other 50% of their time, they should be working in a Developer role.

Sprint Grading

Each sprint will be graded according to the following criteria. The Source column describes the source of the data used to determine the score. Even if they're not ready to sprint, all cards in Trello should have an effort estimate and a priority. If some cards are dependent on other cards as prerequisites, that should be noted as well. Sprintable stories should have acceptance criteria so that it's possible to be sure when each story has been completed.

Criteria Description Source Weight
User Stories Selected Selecting high-priority user stories Trello board 10%
User Stories Completed Completing user stories selected for this sprint Trello board 20%
Quality of Implementation Writing effective and efficient code with good style and formatting GitHub repository 30%
Testing Providing appropriate tests for completed user stories GitHub repository 10%
Client Satisfaction Meeting the client's expectations Direct communication between instructor and client 10%
Review Review with client is done to assess state of the product and decide the direction for the next sprint Sprint review document 10%
Retrospective Team retrospective is done to assess what went well on this sprint and what could be done better in the future Sprint retrospective document 10%

Product Owner Grading

The grade for Developers will be a weighted version of the sprint grade. 50% of the Product Owner grade will also be a weighted version of the sprint grade, but the remaining 50% will be based on the following criteria:

Criteria Description Source Weight
Client Communication Communicating with the client throughout the sprint process Direct communication between instructor and client 15%
Updating PBIs Adding, removing, and refining PBIs based on client and team feedback Direct communication between instructor and client as well as team feedback on Sprint Reflections 20%
Documenting Sprint Review Reporting what the goal of the sprint was, why it was important, what stories were completed, and what stories were not completed Sprint review document 15%

Scrum Master Grading

Like the Product Owner, 50% of the Scrum Master grade will be a weighted version of the sprint grade, and the remaining 50% will be based on the following criteria:

Criteria Description Source Weight
Team Organization Making sure that everyone on the team has something to work on and ways of overcoming challenges that are preventing work Team feedback on sprint reflections 12.5%
Story Poker Running the story poker session to select stories and estimate their point value Team feedback on sprint reflections 12.5%
Updating Trello Updating Trello to assign team members to user stories, to record story point values, and to mark stories done Trello board and team feedback on Sprint Reflections 12.5%
Documenting Sprint Retrospective Reporting what went well about the sprint, what went poorly, what new ideas the team has, and what actions the team will take to have better sprints in the future Sprint retrospective document 12.5%

Turning in Projects

Teams are responsible for dividing their workload. Each member of the team will receive a grade for each project based on the overall grade, weighted by that member's participation. The files for each submission should be part of a tagged release on a private repository on GitHub created before the due date. Each release is due before midnight on the last day of each sprint. If the project is late, the group will receive a score of 0.

The tagged release must include a zipped archive containing the following deliverables:

  • Current source code, including tests
  • Compiled executables (if appropriate)
  • Sprint review document
  • Sprint retrospective document

Sprint Review Document

Although the sprint review document is necessary for every sprint, it does not have to be long. It must list the following, in a readable format:

  • Goal of the sprint
  • Why the goal was important
  • What stories were fully completed
  • What stories were not completed
  • Client feedback

Sprint Retrospective Document

Like the sprint review document, the sprint retrospective document does not have to be long or complicated. It must list the following, in a readable format:

  • What about the sprint went well
  • What about the sprint went poorly
  • What new ideas the team has
  • What actions the team will take to have better sprints in the future

Sprint Reflection Form

In addition to the deliverables provided by the group for each sprint release, each team member must complete a sprint reflection form. A blank form is provided below:

This form must be turned in individually by every team member for every sprint via Brightspace. These reflections are confidential and allow students to communicate to the instructor how teams are functioning. The ratings on the sprint reflection form are used to weight the contributions to the sprint grade as well as provide feedback on the Product Owner and the Scrum Master. Each sprint reflection is due by midnight on the Monday following the end of a sprint. Sprint reflections are graded for completion only.

Final Presentation

During the time scheduled for the final exam, your team must demo your project for the class and for the clients. You should give a brief overview of your product, explain its purpose, show off its most impressive features, and take questions. Your presentation should be polished and smooth and take about 10 minutes. Use of a presentation tool such as PowerPoint is expected. Team members who do not participate in the final presentation will score a 0 on it.