CompSci 308
Spring 2023
Advanced Software Design and Implementation

Managing Your Sprints

As a team, take some time to prioritize, organize, clarify, and assign the project's features that will be done this Sprint. In industry, Sprints often end with a demo to stakeholders, and progress is measured by how many features (i.e., things a customer would see as a reason for buying your product) were completed in the Sprint, rather than how much of the data structure was set up (or some other "technical" goal). It is your responsibility to ensure those features are well-designed and tested so that needs to be factored into how many features a team would "promise" to deliver each Sprint.

Submitting your Work

Submit your discussion summary to the file doc/MANAGING_SPRINT_N.md of the master branch of your team's provided Gitlab repository using the commit message "lab_managing_sprint_N - participating NETIDs".

Additionally, update your Gitlab project to reflect the new and updated Issues made during the Planning steps.

Resources

This series of short blog posts describes how to think about building software differently using GIT, in general, and Gitlab, specifically, to support managing your project:

The quick summary is:

Starting the Sprint

Groom your Backlog by considering the following:

The result of this planning should be an updated BACKLOG.md file in Gitlab

Planning Collaboratively

Refine your goals so that they can be reasonably estimated and turned into Gitlab Issues:

The result of a Sprint should be running code that is demonstrably improved over the last Sprint (ideally well tested and robust against crashing).

Documenting the Plan

Estimating the complexity of your tasks can be challenging so try making them as small as possible by breaking big tasks down into sub-tasks (since most programmers start with tasks that are too big). For each task planned for this Sprint, break it down further such that it is:

The result of this planning should be a Milestone in Gitlab, populated with Issues, that accurately reflect each team member's velocity (independent of pressure from the team or others in class).

During the Sprint

By breaking tasks down to this level of detail your team (and other stake holders) will see the following benefits during the Sprint:

This is only effective if you update your progress regularly by changing an Issue's status online through Gitlab's Issue Board or using keywords in your GIT commit messages.