The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
This presentation is about Scrum methodology. First it reviewed traditional SDM and then talk about Agile and Scrum
2. Content
› SDM definition
› Review traditional SDM
› Agile methodology
– Definition
– Type
› Scrum
– roles
– Artifacts
– Process
2
3. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
3
4. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
› How to develop a software?
– Just code and fix
4
5. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
› How to develop a software?
– Just code and fix
› No overhead , Requires little expertise
› No process, QC, Highly risky
5
1950s Code & fix
6. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
› How to develop a software?
– Design, Code, Test, Maintain
6
1950s Code & fix
1960s Design-code-test-Maintain
7. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
› Software Development Life Cycle
7
1950s Code & fix
1960s Design-code-test-Maintain
9. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
› Software Development Life Cycle
– Waterfall
9
1950s Code & fix
1960s Design-code-test-Maintain
1970s Waterfall model
11. 11
Waterfall model
You don’t realize any value until the end of the project
You leave the testing until the end
You don’t seek approval from the stakeholders until late in
the day
changes
Takes too long
skipped
13. SDM
› Software Development Methodology
› A framework that is used to structure, plan, and control
the process of developing an information system
13
1950s Code & fix
1960s Design-code-test-Maintain
1970s Waterfall model
1980s Spiral Model
1990s
V-model/Rapid application
development
2000s Agile methods
15. RUP
› Inception: defining the scope and objectives of the project, as
› well as the business case
› Elaboration: capturing the crucial requirements, developing
and validating the architecture of the software system, and
planning the remaining phases of the project
› Construction: implementing the system in an iterative and
incremental fashion based on the architecture developed in
the
› previous phase
› Transition: testing and releasing the system
15
19. What is agile
› Agile
– readiness for motion, nimbleness, activity, dexterity in motion
› Agility
– The ability to both create and respond to change in order to
profit in a turbulent business environment
– Companies need to determine the amount of agility they need to
be competitive
19
20. Agile method
› The aim of agile methods is to reduce overheads in the
software process (e.g. by limiting documentation) and to
be able to respond quickly to changing requirements
without excessive rework
› Light Weighted methodology
› Small to medium sized teams
› One of the most common methodologies
20
22. The principles of agile methods
22
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
27. Agile benefits
› Faster time to market
› Minimize risk (short iteration)
› Reduce overhead
› Agile team
› Better response to customer requirement
27
28. Agile challenges
› Keep the interest of customers
› Team members
› Prioritizing changes can be difficult where there are
multiple stakeholders.
› Maintaining simplicity requires extra work.
28
29. Agile Methods
› Agile methods:
– Scrum
– Extreme Programming (XP)
– Adaptive Software Development (ASD)
– Dynamic System Development Method (DSDM)
– …
› Agile Alliance
– A non-profit organization promotes agile development
› http://www.agilealliance.org/
29
31. Why Talk About Scrum?
› Popular
› Powerful
› Easy to learn
31
32. Scrum has been used by:
• Microsoft
• Yahoo
• Google
• Amazon
• Electronic Arts
• High Moon Studios
• Lockheed Martin
• Philips
• Siemens
• Nokia
• Capital One
• Intuit
• Intuit
• Nielsen Media
• First American Real Estate
• BMC Software
• Ipswitch
• John Deere
• Lexis Nexis
• Sabre
• Salesforce.com
• Time Warner
• Turner Broadcasting
• Oce
32
33. Scrum
› SCRUM is an agile, lightweight process for managing and
controlling software and product development in rapidly
changing environments.
– Iterative, incremental process
– Team-based approach
– developing systems/ products with rapidly changing
requirements
– Controls the chaos of conflicting interest and needs
– Improve communication and maximize cooperation
– Protecting the team form disruptions and impediments
– A way to maximize productivity
33
35. Requirements Design Code Test
Time
Rather than doing all of one
thing at a time...
Scrum teams do a little of
everything all the time
Shippable
Scrum Overview
39. Product Owner
› What is the essence of the product owner role?
– a product owner should own the product on behalf of the
company.
– You can think of the product owner as the individual who
champions the product
– who facilitates the product decisions
– and who has the final say about the product,
39
41. Scrum Master
› Responsible for enacting Scrum values and practices
› Removes impediments
› Ensure that the team is fully functional and productive
› Enable close cooperation across all roles and functions
› Shield the team from external interferences
› A Scrum Master should never be the Product owner
42. Team
› Typically 7 people (+/- 2)
› Cross-functional
› self-organizing
› Membership should change only between sprints
› Turns the product backlog into increments of potentially
shippable functionality
› Show the deliverables to the product owner
43. Role; The Scrum Team
Scrum Teams are self-organizing and cross-functional.
The team model in Scrum is designed to optimize
1. Flexibility
2. Creativity
3. productivity.
Scrum Team
53. Product Backlog Item, PBI
A Product Backlog is a list of top-level requirements that are usually associated with a single
Project or Product.
54. Product Backlog
› Is the list of requirements per product.
› Is dynamic and in constantly evolution. (alive
document)
› Prioritized by the product owner
– Risk, value, and necessity.
› Reprioritized at the start of each sprint.
› Product Backlogs items are usually stated as user
stories.
› Should take around 10% of each sprint to review the
product backlog
55. Product Backlog
Backlog item Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a reservation. 3
As a hotel employee, I can run RevPAR reports (revenue-
per-available-room)
8
Improve exception handling 8
... 30
... 50
65. User story
› User story essentials
› Telling stories about the user experience
› Mapping user stories based on experience
– using this useful template:
As a [type of user]
I want to [perform some task]
so that I can [reach some goal]
65
67. Product Backlog Item, PBI
A Product Backlog is a list of top-level requirements that are usually associated with a single
Project or Product.
68. Sprint backlog
› Consists of the tasks the Team performs to turn Product
Backlog items into a “done” increment.
› It is developed during the Sprint Planning Meeting.
› It is all of the work that the Team identifies as
necessary to meet the Sprint goal.
› One day or less is a usual size for a Sprint Backlog item
that is being worked on.
› Only the Team can change its Sprint Backlog during a
Sprint
69. Tasks Estimate Assignee Sat Sun Mon Tue Wed Thurs
Code the user interface 16 8 4 4
Code the middle tier 50 16 12 10 4
Test the middle tier 40 6 7 9 11 8
Write online help 20 12
Write the food class 36 6 6 6 6 6 6
Add error logging 10 6 3
…. ..
70. Sprint Burn Down Chart
› Is a graph of the amount of Sprint Backlog work
remaining in a Sprint across time in the Sprint
Hours
40
30
20
10
0
Mon Tue Wed Thu Fri
50
79. Scrum Process
Sprint
1- Sprint Planning Meeting (2-4 Hours)
Part One: What will be done this Sprint?
Part Two: How will the chosen work get done?
1
2- Daily Scrum Meeting (15 m)
What has been accomplished since the last meeting?
What will be done before the next meeting?
What obstacles are in the way?
2
3 - Sprint Review (1-2 Hours)
Release “Done” Backlog
3
4 - Sprint Retro (1-2 Hours)
4
80. Sprint Planning Meeting
Sprint Planning
Meeting
Product Backlog
Team Capabilities
Business Conditions
Technology
Current Product
Sprint Backlog
Sprint Goal
We should use 5% of our sprint time on this.
At most workplaces, 10% of the sprint is time boxed for this meeting.
81. Daily Scrum
15 minutes
What have you
done since the
last meeting
What will you do
before next
meeting
What is in your
way
Decisions
Do not digress
beyond
answering the
three questions
Product owner
gives updates
82. Sprint review meeting tasks
Scrum Master
• Set the Agenda
• Project reporting
• Snapshot of sprint
retrospect
• Address the stake
holders
Team
• Present the product
increment
• Present individual
stories
• For every story –
demo development,
QA and
documentation
Product owner
• Evaluate
functionality
• Confirm the stories
that have fulfilled the
DONE criteria
• Include surprises (if
any)
85. 85
Product Owner Responsibilities
Organize the backlog into
incremental releases
Specify objective acceptance criteria for
stories
• Communicate Business Goals, Customer Goals, End User Goals
• Coordinate involvement of SMEs, users, and business stakeholders
• Coordinate with other product owners to insure coherence of product and releases
Create and maintain the product
backlog
Participate daily
Be available to answer questions
and clarify details on user stories
Verify stories are done based on
acceptance criteria
Evaluate product at end of
Sprint and add or remove
stories from backlog as
necessary
86. Definition of “Done”
This is the “Definition of Done” for the Scrum Team and is used to assess when work
is complete on the product Increment.
Although this varies significantly per Scrum Team,
members must have a shared understanding of
what it means for work to be complete, to ensure
transparency.
89. Scrum of Scrums / Meta-Scrum
Scrum Master Product OwnerScrum team member
90. When to use
› requirements are not clearly defined.
› work is delivered in increments
› work is measured and controlled
› productivity is maximized by applying known
technologies
› organizations are willing to do anything and everything
for a project to succeed
› project is important and no one has confidence that any
existing approach will work.
› control and management is Empirical
90
91. When to avoid
› there isn’t a flexible environment
› corporate culture isn’t conducive to this of development
environment
› teams of developers are more than 10. Six is ideal.
› Cost is a major issue
› No management support
› No formal training available
91
92. Ref
› Mike Cohn, User Stories Applied: For Agile Software
Development, 2004
› Mike Cohn , Succeeding with Agile : Software
Development Using Scrum, 2009
› Iian Goldstein, Scrum Shortcuts without Cutting Corners:
Agile Tactics, Tools, & Tips, 2013
› Kenneth S. Rubin, Essential Scrum: A Practical Guide to
the Most Popular Agile Process, 2012
› Rachel Davies, Liz Sedley, Agile Coaching, 2009
Waterfall Development is another name for the more
traditional approach to software development
You complete one phase (e.g. design) before moving on to the next phase (e.g. development)
You rarely aim to re-visit a ‘phase’ once it’s completed. That means, you better get whatever you’re doing right the first time!