3. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Introduction
⢠"lightweight" software development methods
evolved in the mid-1990s.
⢠In February 2001, published the Manifesto for Agile
Software Development
⢠"Agile Development" is a group term of several
iterative and incremental software development
methodologies.
4. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Why Agile?
Reduced cost, increased output
Greater quality, early and oftenReduced risk, increased predictability
Failure of waterfall model
5. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Principle of agile
⢠The system is an iterative process and developed in
a series of increments.
⢠Priority is to satisfy the customer through early and
continuous delivery of valuable software.
⢠Customer and developers must work together.
⢠Simplicity â the art of maximizing the amount of
work not done- is essential.
6. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Process and toolsProcess and toolsIndividuals and
interactions
Individuals and
interactions
over
Following a planFollowing a planResponding to
change
Responding to
change
over
Comprehensive
documentation
Comprehensive
documentationWorking softwareWorking software over
Contract negotiationContract negotiationCustomer
collaboration
Customer
collaboration
over
7. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠Focus on good people who work well together.
⢠A good team with no process (or, worse, a bad one) is
better than a bad team with a good processâŚ
⢠Ideally the team should be made up of âgeneralizing
specialistsâ â people who specialize in something, but
are conversant in all the disciplines the team needs
over
8. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠Weâre not paid to develop documentation, weâre
paid to develop software.
⢠Of course that doesnât mean that documentation
is unimportant, but it has to be considered
relative to its cost in delivering functionality (ie,
software).
over
9. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠The primary purpose of collaboration is to work
with the customer to make sure that they are
involved in delivering the final product they
need. The primary purpose of a contract is to
cover your posteriorâŚ
⢠âChange managementâ is all-too-often a
euphemism for âchange prevention.â
over
10. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠A changed requirement late in the lifecycle is a
competitive advantage as long as you can act on it.
⢠If you froze requirements 18 months ago and deliver
tomorrow, your software is delivering on the
business needs of 18 months ago.
over
11. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Methods of Agile Development
â Extreme Programming (XP) (Kent Beck, Ward
Cunningham, Ron Jeffries)
â Scrum (Jeff Sutherland, Mike Beedle, Ken
Schwaber)
â DSDM â Dynamic Systems Development Method
(Community owned)
â Crystal (Alistair Cockburn)
â ASD â Adaptive Software Development (Jim
Highsmith)
â FDD-Feature Driven Development(Peter Code)
13. >> 0 >> 1 >> 2 >> 3 >> 4 >>
â˘Scrum is an agile process that allows us to focus on
delivering the highest business value in the shortest
time.
â˘It allows us to rapidly and repeatedly inspect actual
working software (every two weeks to one month).
â˘The business sets the priorities. Teams self-organize
to determine the best way to deliver the highest
priority features.
â˘Every two weeks to a month anyone can see real
working software and decide to release it as is or
continue to enhance it for another sprint.
Scrum in 100 words
16. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Sequential vs. overlapping
development
Rather than doing all of
one thing at a time...
...Scrum teams do a little
of everything all the time
Requirements Design Code Test
19. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Product owner
⢠Define the features of the product
⢠Decide on release date and content
⢠Be responsible for the profitability of the product
(ROI)
⢠Prioritize features according to market value
⢠Adjust features and priority every iteration, as
needed
⢠Accept or reject work results
20. >> 0 >> 1 >> 2 >> 3 >> 4 >>
The ScrumMaster
⢠Represents management to the project
⢠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
21. >> 0 >> 1 >> 2 >> 3 >> 4 >>
The team
⢠Typically 5-9 people
⢠Cross-functional:
â Programmers, testers, user experience
designers, etc.
⢠Members should be full-time
â May be exceptions (e.g., database
administrator)
⢠Teams are self-organizing
â Ideally, no titles but rarely a possibility
⢠Membership should change only between sprints
23. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Sprint planning meeting
Sprint prioritization
⢠Analyze and evaluate product
backlog
⢠Select sprint goal
Sprint planning
⢠Decide how to achieve sprint
goal (design)
⢠Create sprint backlog (tasks)
from product backlog items
(user stories / features)
⢠Estimate sprint backlog in hours
Sprint
goal
Sprint
goal
Sprint
backlog
Sprint
backlog
Business
conditions
Business
conditions
Team
capacity
Team
capacity
Product
backlog
Product
backlog
Techno-
logy
Techno-
logy
Current
product
Current
product
24. >> 0 >> 1 >> 2 >> 3 >> 4 >>
The daily scrum
⢠Parameters
â Daily
â 15-minutes
â Stand-up
⢠Not for problem solving
â Whole world is invited
â Only team members, ScrumMaster, product
owner, can talk
⢠Helps avoid other unnecessary meetings
25. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Everyone answers 3 questions
⢠These are not status for the ScrumMaster
â They are commitments in front of peers
What did you do yesterday?What did you do yesterday?
1
What will you do today?What will you do today?
2
Is anything in your way?Is anything in your way?
3
26. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Sprint retrospective
⢠Periodically take a look at what is and is
not working
⢠Typically 15â30 minutes
⢠Done after every sprint
⢠Whole team participates
â ScrumMaster
â Product owner
â Team
â Possibly customers and others
28. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Product backlog
⢠The requirements
⢠A list of all desired work
on the project
⢠Prioritized by the product
owner
⢠Reprioritized at the start
of each sprint
This is the
product backlog
This is the
product backlog
29. >> 0 >> 1 >> 2 >> 3 >> 4 >>
A sprint backlog
⢠Individuals sign up for work of their own choosing
â Work is never assigned
⢠Estimated work remaining is updated daily
⢠Any team member can add, delete or change the
sprint backlog
⢠Work for the sprint emerges
⢠If work is unclear, define a sprint backlog item with
a larger amount of time and break it down later
⢠Update work remaining as more becomes known
30. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum has been used by:
â˘Microsoft
â˘Yahoo
â˘Google
â˘Electronic Arts
â˘Lockheed Martin
â˘Philips
â˘Siemens
â˘Nokia
â˘IBM
â˘Capital One
â˘BBC
â˘Intuit
â˘Nielsen Media
â˘First American Real Estate
â˘BMC Software
â˘John Deere
â˘Lexis Nexis
â˘Sabre
â˘Salesforce.com
â˘Time Warner
â˘Turner Broadcasting
32. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠XP, originally described by Kent Beck, has emerged
as one of the most popular agile methods.
⢠XP is a disciplined approach to delivering high-
quality software quickly and continuously.
⢠It promotes high customer involvement, rapid
feedback loops, continuous testing, continuous
planning, and close teamwork to deliver working
software at very frequent intervals, typically every 1-
3 weeks.
XP Definitions
33. >> 0 >> 1 >> 2 >> 3 >> 4 >>
The XP release cycle
34. >> 0 >> 1 >> 2 >> 3 >> 4 >>
The Four XP Values
⢠Simplicity
â Simplest thing that
could possibly work
â YAGNI
⢠Communication
â Developers
â Users
â Customers
â Testers
â Code
⢠Feedback
â Testing
â Experimenting
â Delivering
⢠Courage
â Trust
â History
36. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠Planning Game
â Close interaction between the customer and the
developer
⢠Short Releases
â Deliver business value on a very short cycle
⢠Simple Design
â XP Mantra: âThe simplest thing that could possibly workâ.
⢠Testing
â s/w development is test driven.
â Unit test for every entity
37. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠Refactoring
â changing internal structure without changing external
behavior
⢠Pair Programming
â All production code written with 2 programmers at 1
machine
⢠Collective Ownership
â Any programmer can change any code anywhere in the
system at any time
⢠Continuous Integration
â Integrate & build the system several times a day
38. >> 0 >> 1 >> 2 >> 3 >> 4 >>
⢠On-site Customer
â Customer has to be present and available full time for
the team
⢠Sustainable Pace
â Tired programmers often write lower-quality code
â Better to stay fresh, healthy, positive, and effective
⢠Metaphor
â Defines a "system of names" and guides the team's
development and communication
⢠Coding Standards
â Programmers write all code in accordance with rules
emphasizing communication throughout the code
39. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Agile Advantages
⢠Reducing the overall risk associated with
software development.
⢠Easily adapting to changing requirements
throughout the process.
⢠Ensure that value is continuing to be maximized
throughout the development process.
⢠Much more accurate visibility into the actual
progress of projects is available.
40. >> 0 >> 1 >> 2 >> 3 >> 4 >>
Summary
⢠Agile = try, inspect, adapt, repeat
⢠Highly focused, empowered teams
⢠Collaborate with all stakeholders
⢠Optimize and automate feedback
⢠Deliver real value early and often
⢠Use feedback to evaluate, ruthlessly prioritize,
and re-plan
⢠Delivers high quality, ensures flexibility
⢠Evaluate business value of everything