Agile Part II: Scrum
Youssef Ghatas
Agenda
Recap: Why agile?
Scrum:
Introduction
Scrum Teams
Scrum Events
Scrum Artifacts
Values
Recap: Why Agile?
3
[Link]
Scrum
Scrum is considered the most popular agile development methodology.
Scrum is an agile method that provides a framework for agile project
organization and planning. It does not mandate any specific technical
practices.
Plans always change so anything apart from short-term plans
are unreliable.
Companies using Scrum
Artifacts
Scrum framework
• Product backlog
• Sprint backlog
Scrum Team
• Increment
• Product owner
• ScrumMaster Scrum pillars
• Developers • Transparency
• Inspection
Scrum Events • Adaptation
• Sprint Scrum Values
• Sprint planning
• Sprint review • Commitment, Focus,
Openness, Respect,
• Sprint retrospective
and Courage
• Daily scrum meeting
Artifacts
Scrum framework
• Product backlog
• Sprint backlog
Scrum Team
• Increment
• Product owner
• ScrumMaster Scrum pillars
• Developers • Transparency
• Inspection
Scrum Events • Adaptation
• Sprint Scrum Values
• Sprint planning
• Sprint review • Commitment, Focus,
Openness, Respect,
• Sprint retrospective
and Courage
• Daily scrum meeting
Scrum team
Characteristics
Cross functional: has all skills needed for an increment.
Self Organizing: internally decides who does what, when, and how.
Accountable as a whole: The entire Scrum Team is accountable for creating a
valuable, useful Increment every Sprint
Roles
The Product Owner is responsible for ensuring that the development team are
always focused on the product they are building rather than diverted into
technically interesting but less relevant work.
The ScrumMaster is a Scrum expert whose job is to guide the team in the effective
use of the Scrum method. The developers of Scrum emphasize that the
ScrumMaster is not a conventional project manager but is a coach for the team.
They have authority within the team on how Scrum is used.
Development team
A small of (typically less than or equal 8 people) who are responsible for
developing the product.
10
In scrum there is no traditional product manager
Artifacts
Scrum framework
• Product backlog
• Sprint backlog
Scrum Team
• Increment
• Product owner
• ScrumMaster Scrum pillars
• Developers • Transparency
• Inspection
Scrum Events • Adaptation
• Sprint Scrum Values
• Sprint planning
• Sprint review • Commitment, Focus,
Openness, Respect,
• Sprint retrospective
and Courage
• Daily scrum meeting
Scrum Events and Artifacts
Artifact Commitment
Scrum terminology
Product
The software product that is being developed by the Scrum team.
Sprint
A short period, one month or less, when a product increment is developed.
Sprints should produce a ‘shippable product increment’. This means that the
developed software should be complete and ready to deploy.
Potentially shippable product increment
The output of a sprint which should be of high enough quality to be
deployed for customer use.
Velocity (Not mentioned in current guideline)
An estimate of how much work a team can do in a single sprint.
14
Scrum Events
Planning [Once/Sprint]:
At the start of the sprint
3 main Questions:
Why is this Sprint valuable? ➔ Spring Goal
What can be Done this Sprint? ➔ Items
How will the chosen work get done? ➔ Plan
Goal + items + Plan ➔ Sprint Backlog!
Scrum Stand-up [Daily]:
Focuses on progress toward the Sprint Goal and produces an actionable plan
for the next day of work
Review [Once/Sprint]:
inspect the outcome of the Sprint and determine future adaptations
Include: Stakeholders
Retrospective [Once/Sprint]
inspects how the last Sprint went with regards to individuals, interactions,
processes, tools, and their Definition of Done.
identifies the most helpful changes to improve its effectiveness
15
Scrum Artifacts
They are designed to maximize transparency of key information
Each artifact contains a commitment
Product Backlog [ ➔ Product Goal]
A list of all TODOs
Prioritized by product owner
Estimated by developers
Sprint Backlog [ ➔ Sprint Goal]
Contains:
Sprint Goal (why)
The set of items selected from the Product Backlog for the Sprint (what)
An actionable plan for delivering the Increment (how).
16
Scrum Artifacts
Increment [ ➔ Definition of Done]
Each Increment is additive to all prior Increments
The Increment must be usable
Multiple Increments may be included in one Sprint.
17
Key Scrum practices
Timeboxed sprints
Fixed-time (less than a month) periods in which items from the product
backlog are implemented,
Self-organizing (Self-managing) teams
Coordinates the work by discussing issues and making decisions by consensus.
Make their own decisions on schedules and deliverables
Cross-functional teams
“meaning the members have all the skills necessary to create value each
Sprint.” Scrum Guide
18
In Depth: Product Backlog
Product backlogs
The product backlog is a list of what needs to be done to complete the
development of the product.
The items on this list are called product backlog items (PBIs).
The product backlog may include a variety of different items such as
product features to be implemented,
user requests,
essential development activities and
desirable engineering improvements.
The product backlog should always be prioritized so that the items that be
implemented first are at the top of the list.
22
Examples of product backlog items
1. As a teacher, I want to be able to configure the group of tools that are
available to individual classes. (feature)
2. As a parent, I want to be able to view my childrens’ work and the assessments
made by their teachers. (feature)
3. As a teacher of young children, I want a pictorial interface for children with
limited reading ability. (user request)
4. Establish criteria for the assessment of open source software that might be used
as a basis for parts of this system. (development activity)
5. Refactor user interface code to improve understandability and performance.
(engineering improvement)
6. Implement encryption for all personal user data. (engineering improvement)
23
Product backlog item states
Ready for consideration
These are high-level ideas and feature descriptions that will be
considered for inclusion in the product. They are tentative so may radically
change or may not be included in the final product.
Ready for refinement
The team has agreed that this is an important item that should be
implemented as part of the current development. There is a reasonably
clear definition of what is required. However, work is needed to understand
and refine the item.
Ready for implementation
The PBI has enough detail for the team to estimate the effort involved and
to implement the item. Dependencies on other items have been identified.
24
Product backlog activities
25
Product backlog activities
Creation
New items are added to the backlog.
Refinement
Existing PBIs are analysed and refined to create more detailed PBIs.
This may lead to the creation of new product backlog items.
Estimation
The team estimate the amount of work required to implement a PBI
and add this assessment to each analysed PBI.
Prioritization
The product backlog items are reordered to take new information
and changed circumstances into account.
26
PBI estimation metrics (Sample
methods)
Effort required
This may be expressed in person-hours or person-days i.e. the number of hours or
days it would take one person to implement that PBI. Several people may work on
an item, which may shorten the calendar time required.
Story points
Story points are an arbitrary estimate of the effort.
They were derived originally by comparing user stories, but they can be used for
estimating any kind of PBI.
Story points are estimated relatively. The team agree on the story points for a
baseline task and other tasks are estimated by comparison with this e.g. more/less
complex, larger/smaller etc.
27
In Depth: Sprint
Benefits of using timeboxed sprints
29
Sprint activities
+ Sprint Retrospective 30
Sprint planning
Establish an agreed sprint goal
Sprint goals may be focused on software functionality, support or performance and
reliability,.
Decide on the list of items from the product backlog that should be
implemented
Create a sprint backlog.
This is a more detailed version of the product backlog that records the work to be
done during the sprint
32
Daily Scrums
A daily scrum is a short daily meeting that is usually held at the
beginning of the day. During a scrum, all team members share
information:
describe their progress since the previous day’s scrum,
problems that have arisen and
plans for the coming day.
Scrum meetings should be short and focused. To dissuade team
members from getting involved in long discussions, they are
sometimes organized as ‘stand-up’ meetings where there are no
chairs in the meeting room.
33
Sprint reviews
At the end of each sprint, there is a review meeting, which involves the
whole team [& PREFERABLY: STAKEHOLDERS]. This meeting:
reviews whether or not the sprint has met its goal.
Discuss the progress and what is next.
34
Sprint retrospective
The purpose of the Sprint Retrospective is to plan ways to increase quality
and effectiveness.
individuals,
interactions,
processes,
tools,
Definition of Done
The team identifies the most helpful changes to improve its effectiveness and may add
them to backlog
35
Artifacts
Scrum framework
• Product backlog
• Sprint backlog
Scrum Team
• Increment
• Product owner
• ScrumMaster Scrum pillars
• Developers • Transparency
• Inspection
Scrum Events • Adaptation
• Sprint Scrum Values
• Sprint planning
• Sprint review • Commitment, Focus,
Openness, Respect,
• Sprint retrospective
and Courage
• Daily scrum meeting
Scrum Values
Scrum Values
“The Scrum Team commits to achieving its goals and to supporting each other.
Their primary focus is on the work of the Sprint to make the best possible
progress toward these goals. The Scrum Team and its stakeholders are open
about the work and the challenges. Scrum Team members respect each other
to be capable, independent people, and are respected as such by the people
with whom they work. The Scrum Team members have the courage to do the
right thing, to work on tough problems.” Scrum Guide 2020
Scrum Theory: Three Pillars of
Empiricism
[NOT MANDATORY] Extra activities of Scrum:
Test automation & Continuous integration
Scrum does not suggest the technical agile activities that should be used.
However, I think there are two practices that are beneficial to be used in a
sprint.
Test automation
As far as possible, product testing should be automated. You should develop a
suite of executable tests that can be run at any time.
Continuous integration
Whenever anyone makes changes to the software components they are
developing, these components should be immediately integrated with other
components to create a system. This system should then be tested to check
for unanticipated component interaction problems.
40
[NOT MANDATORY] Extra activities: Code
completeness checklist
Reviewed
The code has been reviewed by another team member who has checked that it meets agreed coding
standards.
Unit tested
All unit tests have been run automatically and all tests have executed successfully.
Integrated
The code has been integrated with the project codebase and no integration errors have been
reported.
Integration tested
All integration tests have been run automatically and all tests have executed successfully.
Accepted
Acceptance tests have been run if appropriate and the product owner or the development team
have confirmed that the product backlog item has been completed.
41
In Depth: Tips for Teams
Team size and composition
The ideal Scrum team size is <= 8 people.
Different skills, such as networking, user experience, database design and so on.
Different levels of experience.
Should be
large enough to be diverse
small enough to communicate effectively.
The advantage of a self-organizing team is that it can be a cohesive team that
can adapt to change.
Because the team rather than individuals take responsibility for the work, they can
cope with people leaving and joining the team.
Good team communication means that team members inevitably learn something
about each other’s areas
43
Tips for Managing external interactions
44
Project management
In all but the smallest product development companies, there is a need for
development teams to report on progress to company management.
A self-organizing team has to appoint someone to take on these
responsibilities.
Because of the need to maintain continuity of communication with people
outside of the group, rotating these activities around team members is not a
viable approach.
The developers of Scrum did not envisage that the ScrumMaster should also
have project management responsibilities.
Inmany companies, however, the ScrumMaster has to take on project
management responsibilities.
They know the work going on and are in the best position to provide accurate
information and project plans and progress.
45
Project management responsibilities
46
Should we make our college projects
Scrum?
Are all companies strict in implementing
Scrum? If not, are they right?
References
The 2020 Scrum Guide: [Link]
Engineering Software Products: An Introduction to Modern Software Engineering, Ian
Sommerville.
[Link]
[Link]