KILowBites Sprint 1
1 Before the Sprint Planning Meeting
Before the Sprint Planning Meeting you must read the
project description and all of the
documents it links to.
Also, you must read and understand the stories in the Initial
Product Backlog. They are contained in the following document:
You should also enter all of the epics and stories (which ScrumBoard
calls issues) into ScrumBoard. This will save a lot of time during
the planning meeting. To add an epic, select the "Epics" tab and
click on the ⊕ next to "New". Then, enter the title, a description,
the size, and an optional color. To add a story/issue to an epic,
select the epic and click on the ⊕ next to "Issues." Then, enter the
title, description, and size (in story points).
Finally, every member of the team must read and understand the
interaction design document.
2 During the Sprint Planning Meeting
During the sprint planning meeting (which may, because of the length
of class meetings, be held over the course of multiple days) there
are several things you must do.
First, you must first determine which features will be included in
the current increment as follows:
- Starting with the highest priority stories, decompose each PBI
into tasks.
- Create effort estimates for each task. (To add a task,
select the story/issue and click on the ⊕ next to "Tasks",
enter the title, an optional description and the effort
estimate in hours)."
- Calculate the total number of person-hours required to complete
all of the tasks that have been identified thus far.
- Repeat these steps until the total hours required to
complete the tasks is greater than the total number of
person-hours the team has available.
- If necessary (i.e., if there are stories that can't be
completed because of time constraints), negotiate the
contents of the sprint backlog with the product owner.
After the team and the product owner have determined what features
will be included in the current increment, the team must:
- Individually commit to (i.e. take responsibility for)
completing specific tasks during this sprint. (To take
responsibility for a task, select the appropriate team
member from the drop-down list.)
- Create acceptance criteria (i.e., "definitions of done")
for each feature that will be completed during this
sprint. (To add an acceptance criterion to a story/issue, enter a
description in the text field under "Acceptance Criteria"
and click on the ⊕.).
- Discuss the acceptance criteria with the product owner to
ensure that there will be no disagreements at the end of the sprint.
After the team and the product owner have agreed on acceptance
criteria, the team must:
- Add a sprint to the project. (To add a sprint, select the
"Planning" tab and click on the ⊕. Then enter a title,
optional goal, and optional description.)
- Add stories/issues to the sprint. (To add stories/issues,
select the sprint, and click on the ⊕ next to
"Issues". Then, select the stories/issues to add and click
on [Done].)
- End the sprint planning meeting and start the sprint. (To
start the sprint, select it and click on the ▶ next to
"State:". Then enter the start date and end date and click
on [Start].)
2.1 Help Decomposing Features/Stories/Issues into Tasks
There are several things to keep in mind when decomposing
features/stories/issues into tasks.
-
Epics span multiple sprints, features/stories/issues can be
completed in a single sprint, and tasks require hours to
complete.
-
Remember that cards are placeholders for conversations. In
other words, unlike when using a heavyweight process in which
most of the details are determined and enumerated/documented
up front, when using scrum, a story contains only a brief
description of the feature. Hence, it is often necessary to
have conversations with the product owner to determine the
details that were omitted from the story.
-
Do not confuse engineering design decisions (e.g., what
classes will be created) and/or implementation decisions
(e.g., what layout manager to use for the GUI, what algorithm
to use) with tasks. Those kinds of decisions should not be made
during the planning meeting.
-
Each feature/story/issue often has some interaction/product
design tasks, some engineering design tasks, some programming
tasks, some unit testing tasks, etc... Many features/stories/issues
also have data acquisition tasks, integration/system testing
tasks, user documentation tasks, etc...
-
Do not forget to include overhead tasks (e.g., research), and
pay particular attention to overhead tasks that are
not related to a particular feature/story (e.g., grooming the
product backlog is a task that should be done in every sprint, and you
should plan for it accordingly).
You've seen several examples that you should use to guide you.
2.2 Help Creating Acceptance Criteria
It is very important that the team (the members of which have technical
knowledge/skills) and the product owner (who often doesn't) agree
before the sprint begins on what will be completed during the
sprint. It is also very important that, at the end of the sprint,
the team and the product owner agree on what was completed.
Since features/stories are often ambiguous, this means that the team
and product owner must agree on acceptance criteria/"definitions of done".
One might think that the tasks could be used for this purpose, but
they can't because they require technical knowledge/skills to
understand. Acceptance criteria must be written so that they can
be understood by both the team members and the product owner. They
must be specific enough so that, at the end of the sprint, there
can't be any disputes about whether a backlog item was or wasn't
completed.
You've seen several examples that you should use to guide you.
2.3 Help Negotiating with the Product Owner
You will be much more effective negotiating with the product owner if
you have specific and detailed data about the amount of time the
team can devote to the sprint and the time required to complete
each of the tasks. You will be ineffective if you just claim to not
have enough time.
Also, remember that the Product Owner is responsible for
maximizing business value. So, in the event that you are able to
convince the Product Owner that all of the stories can't be
completed during the Sprint, the Product Owner will prioritize
the stories based on the information that you provide. In other words,
the team should not argue that a story is unimportant, that is for
the Product Owner to decide.
3 The Remainder of the Sprint
After the sprint planning meeting is over, each member of the team
must complete the tasks that they took responsibility for and
record their progress in the Scrum tool (on the "Execution" tab).
When you start working on a story, you must move it from the "Open" state
to the "In Progress" state. As you complete tasks, you must click on the
associated checkbox. When a story is complete (i.e., when all of the tasks
associated with that story are complete), you must ensure that it moves
from the "In Progress" state to the "Completed" state.
4 What You Will Need for the Review
Obviously, all of your team's code must be in your GitHub repository
and all other sprint-related materials must be in the sprint
planning/management tool (which must be up to date). In addition, on
the day of the review your team must have the following:
- A version of the current increment of the product
that works on one of your machines.
- A printout of an "unused" alpha testing script.
- A printout of at least one "used" alpha testing script.
- A printout of one or more screenshots of the EclEmma view(s)
demonstrating the coverage of your unit tests.
The printouts must clearly identify your team.
5 Resources
You might find the following resources useful.
6 Recipes
You might find the following recipes useful during both the design
and testing phases:
Obviously, the product should be able to work with these and other recipes.
7 Technical Hints and Help
The following hints might help you add some of the functionality
described in the stories.
7.1 Serialization
One way to save objects to a file is to use serialization. This is described
in one of the labs.
7.2 Changing the Look and Feel of the GUI
The "look and feel" (sometimes called the "skin") can be changed
in a variety of different ways. Some help is available on
the
Departmental Wiki.
7.3 Decentralized Control in GUI-Based Applications
For complicated GUI-based applications, the listeners/observers
can get messy. One way to avoid this is to use "actions". This
approach is described in this
lecture from another course.