Agile development: iterations and sprints

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Agile development: iterations and sprints

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. Which describes Agile development?
A Building a solution in short repeating cycles, releasing working parts each time
B Finishing every stage once, in order, and releasing the whole solution at the very end
2. In Agile, what is a sprint?
A A short, fixed time period in which the team builds a small working part of the solution
B A final testing phase that happens once after the whole solution is built
3. A client changes a requirement halfway through the project. How does an Agile team respond?
A Refuse the change because the requirements were locked at the start
B Adapt the plan and include the change in an upcoming sprint
4. Which is a user story?
A As a student, I want to see my timetable so that I know where to go
B Create a table called timetable with five fields
5. When does an Agile team gather user feedback?
A Only once, when the finished product is delivered
B Frequently, at the end of each sprint, using a working part of the solution

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1Sprint AThis describes a single long sequential build like Waterfall, not Agile. Agile sprints deliver small working parts and gather feedback after every sprint.
2As a student, I want to reset my password so that I can log back in. BFeedback: 'buttons too small' -> add 'enlarge buttons' to Sprint 2 backlog
3Agile teams release a small working part at the end of each cycle, so users can try it and give feedback early CSprint 1: build login screen -> demo to users -> collect feedback
4Agile adapts to changing requirements: feedback from one sprint changes what is planned for the next sprint DAgile welcomes changing requirements. The backlog is updated after feedback, so later sprints can include new or changed user stories.
5Sprint 1: plan, design, build, test and release the whole app with no user feedback until the end EA user story: a short requirement written from the user's point of view that describes what they need and why
6Requirements are locked in Sprint 1 and cannot change, even if users ask for something different FA short, fixed-length cycle (often 1-4 weeks) in which a team builds and delivers a small working part of the solution

Definitions

Agile development

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
backlog = ["login", "search", "pay"] for story in _______: print("Build", story)
2.
sprint = 1 _____ sprint <= 4: print("Release", sprint) sprint += 1
3.
feedback = input("Any changes? ") if feedback __ "yes": print("Update the backlog")
4.
backlog = ["login", "cart"] backlog.______("search") print(len(backlog))
5.
___ run_sprint(story): print("Releasing", story) run_sprint("login")

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A backlog = ["login", "search"]
B sprint = 1
C while len(backlog) > 0:
D story = backlog.pop[0]
E print("Built", story)
Question 2
A features = 0
B for sprint in range(3)
C features += 2
D print(features)
Question 3
A story = {}
B story["role"] == "student"
C story["want"] = "see my timetable"
D print(story)
Question 4
A feedback = "Make button bigger"
B backlog = []
C if feedback = "":
D backlog.append(feedback)
Question 5
A sprint days = 10
B day = 1
C while day <= sprint_days:
D day = day + 1

Answer Key

Agile development: iterations and sprints
Section A: Quick Questions
Q1
A — Building a solution in short repeating cycles, releasing working parts each time
Q2
A — A short, fixed time period in which the team builds a small working part of the solution
Q3
B — Adapt the plan and include the change in an upcoming sprint
Q4
A — As a student, I want to see my timetable so that I know where to go
Q5
B — Frequently, at the end of each sprint, using a working part of the solution
Section B: Match the Pairs
Q1
Sprint → A short, fixed-length cycle (often 1-4 weeks) in which a team builds and delivers a small working part of the solution
Q2
As a student, I want to reset my password so that I can log back in. → A user story: a short requirement written from the user's point of view that describes what they need and why
Q3
Agile teams release a small working part at the end of each cycle, so users can try it and give feedback early → Sprint 1: build login screen -> demo to users -> collect feedback
Q4
Agile adapts to changing requirements: feedback from one sprint changes what is planned for the next sprint → Feedback: 'buttons too small' -> add 'enlarge buttons' to Sprint 2 backlog
Q5
Sprint 1: plan, design, build, test and release the whole app with no user feedback until the end → This describes a single long sequential build like Waterfall, not Agile. Agile sprints deliver small working parts and gather feedback after every sprint.
Q6
Requirements are locked in Sprint 1 and cannot change, even if users ask for something different → Agile welcomes changing requirements. The backlog is updated after feedback, so later sprints can include new or changed user stories.
Section C: Definitions
Q1
Agile development — Building a solution in short repeating cycles (sprints), releasing working parts and adapting to user feedback and changing requirements.
Section D: Fill in the Blanks
Q1
backlog = ["login", "search", "pay"] for story in backlog: print("Build", story)
Q2
sprint = 1 while sprint <= 4: print("Release", sprint) sprint += 1
Q3
feedback = input("Any changes? ") if feedback == "yes": print("Update the backlog")
Q4
backlog = ["login", "cart"] backlog.append("search") print(len(backlog))
Q5
def run_sprint(story): print("Releasing", story) run_sprint("login")
Section E: Spot the Error
Q1
D — pop is a method, so it must be called with round brackets: backlog.pop(0). Square brackets are for indexing. The loop takes one user story from the sprint backlog at a time.
Q2
B — A for loop header must end with a colon. It should be for sprint in range(3): so each sprint repeats the indented block.
Q3
B — == compares values and does not store anything. To save the user's role in the user story dictionary you need the assignment operator =.
Q4
C — An if condition needs a comparison, not an assignment. It should be if feedback != "": so user feedback is only added to the backlog when it exists.
Q5
A — Variable names cannot contain spaces. Use an underscore: sprint_days = 10, which stores the length of the sprint.