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