Agile Methods and Extreme Programming - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Agile Methods and Extreme Programming

Description:

'Driving is not about getting the car going in the right direction. ... Collective ownership. Continuous integration. 40-hour week ... 8. Collective Ownership ... – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 24
Provided by: marka6
Category:

less

Transcript and Presenter's Notes

Title: Agile Methods and Extreme Programming


1
Agile Methods andExtreme Programming
2
Spectrum of Methods
Source "Get ready for agile methods, with care"
by Barry Boehm, IEEE Computer, January 2002.
3
Agile Manifesto
  • We are uncovering better ways of developing
    software by doing it and helping others do it.
    Through this work we have come to value
  • Individuals and interactions over processes and
    tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the
    right, we value the items on the left more.

4
Some Agile Methods
  • ASD - Adaptive Software Development
  • Crystal
  • FDD - Feature Driven Development
  • DSDM - Dynamic Systems Development Method
  • Lean Software Development
  • Scrum
  • XP - eXtreme Programming

5
II. Extreme Programming
6
Motivation
  • Knobs on a control board
  • Each knob a practice that works well
  • Turn all knobs up to 10

7
Learning to Drive
  • "Driving is not about getting the car going in
    the right direction.
  • Driving is about constantly paying attention,
    making a little correction this way, a little
    correction that way."
  • -- Kent Beck, Extreme Programming Explained

8
Four Values
  • Simplicity
  • create the simplest thing that could work
  • Communication
  • face-to-face, not document-to-face
  • Feedback
  • lots of tests
  • Aggressiveness

9
Four Basic Activities
  • Coding
  • cannot do without it
  • Testing
  • if it cannot be tested it doesn't exist
  • Listening
  • to those with domain knowledge
  • Designing
  • to keep the system from decaying

10
Twelve Practices
  • Pair programming
  • Collective ownership
  • Continuous integration
  • 40-hour week
  • On-site customer
  • Coding standards
  • The Planning Game
  • Small releases
  • Metaphor
  • Simple design
  • Testing
  • Refactoring

11
1. The Planning Game
  • Business people decide
  • scope
  • priority
  • release dates
  • Technical people decide
  • estimates of effort
  • technical consequences
  • process
  • detailed scheduling

12
2. Small Releases
  • Every release should be as small as possible
  • Every release has to completely implement its new
    features

13
Waterfall to XP Evolution
Source "Embracing change with extreme
programming" by Kent Beck,IEEE Computer, October
1999.
14
3. Metaphor
  • Each XP project has its own metaphor
  • naive
  • system is a spreadsheet
  • Metaphor replaces architecture as the view from
    10,000 feet

15
4. Simple Design
  • Runs all the tests
  • Has no duplicated logic
  • States every intention important to programmers
  • Has the fewest possible classes and methods

16
5. Testing
  • Any feature without an automated test does not
    exist.
  • Programmers need confidence in correct operation
  • Customers need confidence in correct operation

17
6. Refactoring
  • Always ask if there is a way to make the program
    simpler
  • When the system requires duplication of code, it
    is asking for refactoring
  • Can always find a series of small, low-risk steps

18
7. Pair Programming
  • All code written with 2 people at one machine
  • Driver
  • thinks about best way to implement
  • Passenger
  • thinks about viability of whole approach
  • thinks of new tests
  • thinks of simpler ways

19
8. Collective Ownership
  • Anybody who sees an opportunity to add value to
    any portion of the code is required to do so
  • Everyone knows something about everything
  • Everyone feels obligated to make improvements

20
9. Continuous Integration
  • Integrate and test every few hours, at least once
    per day
  • All tests must pass
  • Easy to tell who broke the code

21
10. 40-Hour Week
  • People should be fresh and eager every morning
  • Overtime is a symptom of a serious problem
  • XP only allows one week of overtime

22
11. On-Site Customer
  • Real customer will use the finished system
  • Programmers need to ask questions of a real
    customer
  • Customer can get some other work done while
    sitting with programmers

23
12. Coding Standards
  • Everyone edits everyone's code
  • Standard should require least amount of overhead
  • Standard should be adopted voluntarily by the team
Write a Comment
User Comments (0)
About PowerShow.com