SlideShare a Scribd company logo
Extreme Programming & Pair
       Programming
Extreme Programming (XP)

 Formulated in 1999 by Kent Beck, Ward
  Cunningham and Ron Jeffries
 Agile software development
  methodology (others: Scrum, DSDM)
 Developed in reaction to high ceremony
  methodologies
XP: Why?
 Previously:
   Get all the requirements before starting design
   Freeze the requirements before starting
    development
   Resist changes: they will lengthen schedule
   Build a change control process to ensure that
    proposed changes are looked at carefully and no
    change is made without intense scrutiny
   Deliver a product that is obsolete on release
XP: Embrace Change
 Recognize that:
   All requirements will not be known at the beginning
   Requirements will change
 Use tools to accommodate change as a
  natural process
 Do the simplest thing that could possibly work
  and refactor mercilessly
 Emphasize values and principles rather than
  process
XP Practices




  (Source: http://www.xprogramming.com/xpmag/whatisxp.htm)
XP Values

 Communication
 Simplicity
 Feedback
 Courage
XP Criticism

 Unrealistic--programmer centric, not business
  focused
 Detailed specifications are not written
 Design after testing
 Constant refactoring
 Customer availability
 12 practices are too interdependent
The Way Forward?

 ‘High ceremony’ software engineering
  methodologies in disfavor
 Agile software development methodologies in
  increasing use, but with significant criticism
 Formal methods will never have a significant
  impact until they can be used by people that
  don’ t understand them. T. Melham
Pair Programming Overview

 Two programmers work side-by-side at
  one computer
 Continuously collaborate on same
  design, algorithm, code, test, etc.
 Continuous informal review
 Two guys working on the same task
 Both have the same target
 Both have different expertise
 One executes the task , other watches for
  external factors, evaluates the situation,
 Corrects him and validates success after
  execution
 Two guys working as a team
Share everything

 Two programmers are assigned to jointly
  produce one artifact
 One person typing or writing, the other
  continuously reviewing
 Both equal participants
 Both partners own everything
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
How does it Help?
 Continuous Review.
 Less Defects caught early.
 Better Problem Solving.
 More Economical.
 “Pair-Pressure” ensures timely delivery.
 Rapid Hands-on Approach to Learning.
 Better Induction of new Team Members.
Extreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
What is NOT pair programming?
 Splitting up the work
 Taking turns doing the work
 One person doing all the work
 Being located in different places
 Sitting at different computers
 (Exception – it’s ok to use remote
  shared desktop technology, such as
  VNC, if absolutely necessary)

More Related Content

Extreme & pair programming Slides ppt

  • 1. Extreme Programming & Pair Programming
  • 2. Extreme Programming (XP)  Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries  Agile software development methodology (others: Scrum, DSDM)  Developed in reaction to high ceremony methodologies
  • 3. XP: Why?  Previously:  Get all the requirements before starting design  Freeze the requirements before starting development  Resist changes: they will lengthen schedule  Build a change control process to ensure that proposed changes are looked at carefully and no change is made without intense scrutiny  Deliver a product that is obsolete on release
  • 4. XP: Embrace Change  Recognize that:  All requirements will not be known at the beginning  Requirements will change  Use tools to accommodate change as a natural process  Do the simplest thing that could possibly work and refactor mercilessly  Emphasize values and principles rather than process
  • 5. XP Practices (Source: http://www.xprogramming.com/xpmag/whatisxp.htm)
  • 6. XP Values  Communication  Simplicity  Feedback  Courage
  • 7. XP Criticism  Unrealistic--programmer centric, not business focused  Detailed specifications are not written  Design after testing  Constant refactoring  Customer availability  12 practices are too interdependent
  • 8. The Way Forward?  ‘High ceremony’ software engineering methodologies in disfavor  Agile software development methodologies in increasing use, but with significant criticism  Formal methods will never have a significant impact until they can be used by people that don’ t understand them. T. Melham
  • 9. Pair Programming Overview  Two programmers work side-by-side at one computer  Continuously collaborate on same design, algorithm, code, test, etc.  Continuous informal review
  • 10.  Two guys working on the same task  Both have the same target  Both have different expertise  One executes the task , other watches for external factors, evaluates the situation,  Corrects him and validates success after execution  Two guys working as a team
  • 11. Share everything  Two programmers are assigned to jointly produce one artifact  One person typing or writing, the other continuously reviewing  Both equal participants  Both partners own everything
  • 20. How does it Help?  Continuous Review.  Less Defects caught early.  Better Problem Solving.  More Economical.  “Pair-Pressure” ensures timely delivery.  Rapid Hands-on Approach to Learning.  Better Induction of new Team Members.
  • 23. What is NOT pair programming?  Splitting up the work  Taking turns doing the work  One person doing all the work  Being located in different places  Sitting at different computers  (Exception – it’s ok to use remote shared desktop technology, such as VNC, if absolutely necessary)