>> 0 >> 1 >> 2 >> 3 >> 4 >>
Agile Software Development
BY : RAKESH RANJAN KUMAR
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Agenda
 Introduction
 Why Agile ?
 Principle of Agile Development
Agile manifesto
 Methods of Agile Development
Scrum
Extreme programming (XP)
 Advantages
 Summary
 Q&A
>> 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.
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Why Agile?
Reduced cost, increased output
Greater quality, early and oftenReduced risk, increased predictability
Failure of waterfall model
>> 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.
>> 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
>> 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
>> 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
>> 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
>> 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
>> 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)
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum Workflow
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum
Cancel
Gift wrap
Return
Sprint
2-4 weeks
Return
Sprint goal
Sprint
backlog
Potentially shippable
product increment
Product
backlog
CouponsGift wrap
Coupons
Cancel
24 hours
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum framework
•Product owner
•Scrum Master
•Team
Roles
•Sprint planning
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Scrum framework
•Sprint planning
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
•Product owner
•ScrumMaster
•Team
Roles
>> 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
>> 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
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
•Product owner
•ScrumMaster
•Team
Roles
Scrum framework
•Product backlog
•Sprint backlog
Artifacts
•Sprint planning
•Sprint retrospective
•Daily scrum meeting
Ceremonies
>> 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
>> 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
>> 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
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
•Product owner
•ScrumMaster
•Team
Roles
Scrum framework
•Sprint planning
•Sprint retrospective
•Daily scrum meeting
Ceremonies
•Product backlog
•Sprint backlog
Artifacts
>> 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
>> 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
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Extreme Programming (XP)
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
The XP release cycle
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
Twelve XP Practices
>> 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
>> 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
>> 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
>> 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.
>> 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
>> 0 >> 1 >> 2 >> 3 >> 4 >>
>> 0 >> 1 >> 2 >> 3 >> 4 >>

Agile

  • 1.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Agile Software Development BY : RAKESH RANJAN KUMAR
  • 2.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Agenda  Introduction  Why Agile ?  Principle of Agile Development Agile manifesto  Methods of Agile Development Scrum Extreme programming (XP)  Advantages  Summary  Q&A
  • 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)
  • 12.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Scrum
  • 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
  • 14.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Scrum Workflow
  • 15.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Scrum Cancel Gift wrap Return Sprint 2-4 weeks Return Sprint goal Sprint backlog Potentially shippable product increment Product backlog CouponsGift wrap Coupons Cancel 24 hours
  • 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
  • 17.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Scrum framework •Product owner •Scrum Master •Team Roles •Sprint planning •Sprint retrospective •Daily scrum meeting Ceremonies •Product backlog •Sprint backlog Artifacts
  • 18.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Scrum framework •Sprint planning •Sprint retrospective •Daily scrum meeting Ceremonies •Product backlog •Sprint backlog Artifacts •Product owner •ScrumMaster •Team Roles
  • 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
  • 22.
    >> 0 >>1 >> 2 >> 3 >> 4 >> •Product owner •ScrumMaster •Team Roles Scrum framework •Product backlog •Sprint backlog Artifacts •Sprint planning •Sprint retrospective •Daily scrum meeting Ceremonies
  • 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
  • 27.
    >> 0 >>1 >> 2 >> 3 >> 4 >> •Product owner •ScrumMaster •Team Roles Scrum framework •Sprint planning •Sprint retrospective •Daily scrum meeting Ceremonies •Product backlog •Sprint backlog Artifacts
  • 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
  • 31.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Extreme Programming (XP)
  • 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
  • 35.
    >> 0 >>1 >> 2 >> 3 >> 4 >> Twelve XP Practices
  • 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
  • 41.
    >> 0 >>1 >> 2 >> 3 >> 4 >>
  • 42.
    >> 0 >>1 >> 2 >> 3 >> 4 >>