SlideShare a Scribd company logo
Extreme Programming & Pair
Programming

Lior Shalom
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
Pair Programming Overview
 Two programmers work side-by-side at
one computer
 Continuously collaborate on same
design, algorithm, code, test, etc.
 Continuous informal review
Pair Programming Overview (cont.)
 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
Pair Programming - roles

Developer
(navigator)

Developer
(driver)
Pair Programming - roles
Isn’t it a waste?
 Two developers will do the work of one
 Junior guys will slow down seniors
 Less work will get done
 My cost will double
 Why would I put two people on a job that
just one can do?
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.
Pair Programming rules
 Think Out Loud
 Ten seconds rule
Think out loud (rule 1)
 The driver “thinks out loud” as he/she’s
coding
 This helps keep the navigator in the
loop, and communicates the intent better
 It’s certainly not a technique that most
people practice without suggestion
Ten seconds rule (rule 2)
 The navigator should wait 10 seconds
before pointing out a typo
 Generally that’s long enough for the
driver to correct a typo that’s already
noticed
 Excessive interruptions are distracting
Pair Programming - practices
 Ping Pong
 Chess Clock Pair Programming
(Kitchen Clock)
Ping Pong Pair Programming
 The navigator writes a failing unit test
 The driver modifies the code to pass the
unit test(s)
 The navigator writes a new unit test, and
so on
 This loop continues as long as the
navigator is able to write failing unit tests
Chess Clock Pair Programming
 Set the clock at 5 minutes (each side)
 Pair Program. Push down your clock
side when you take the keyboard
 See how much more than the allotted
time you need to complete the task
Chess Clock Pair Programming
 Pros
 Assure everybody gets the keyboard

 Cons
 It can be inconvenient to pass the keyboard
in the middle of coding
Skills to be successfully while Pair
Programming
 Teamwork
 Accept other ideas
 Cooperation
 Communication
 Be a good listener
 Name and layout conventions
 Respect the 10 seconds rule
When should you pair?
 Complex Code
 Mission-critical code
 Code that involves design decisions
 Areas of code that you want everyone
on the team to know how to work with
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

What's hot

extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
Michael Green
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
XP Explained
XP ExplainedXP Explained
XP Explained
vineet
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
Jon McNestrie
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
Steven Smith
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
Vashira Ravipanich
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
briley1
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
Naresh Jain
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
Robert Burrell Donkin
 
The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)
goeran
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
Agile Lietuva
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile Development
Matt Griffin
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
Gurtej Pal Singh
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsman
goeran
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
David Alfaro
 

What's hot (20)

extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile Development
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsman
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
 
extreme programming
extreme programmingextreme programming
extreme programming
 

Similar to Pair Programming: overview and concepts

Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 
Agile
AgileAgile
Agile
Komal2525
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Tdd
TddTdd
Waterfallacies V1 1
Waterfallacies V1 1Waterfallacies V1 1
Waterfallacies V1 1
Jorge Boria
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Developmentelliando dias
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
programizconsultancy
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
Stfalcon Meetups
 
Best pratice
Best praticeBest pratice
Best pratice
Eugenio Romano
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
Semen Arslan
 
Put to the Test
Put to the TestPut to the Test
Put to the Test
Kevlin Henney
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)
Asier Barrenetxea
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
christina thomas
 

Similar to Pair Programming: overview and concepts (20)

Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Agile
AgileAgile
Agile
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Tdd
TddTdd
Tdd
 
Waterfallacies V1 1
Waterfallacies V1 1Waterfallacies V1 1
Waterfallacies V1 1
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Development
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
 
Best pratice
Best praticeBest pratice
Best pratice
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Put to the Test
Put to the TestPut to the Test
Put to the Test
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
 

Recently uploaded

Attending a job Interview for B1 and B2 Englsih learners
Attending a job Interview for B1 and B2 Englsih learnersAttending a job Interview for B1 and B2 Englsih learners
Attending a job Interview for B1 and B2 Englsih learners
Erika906060
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
fakeloginn69
 
What is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdfWhat is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdf
seoforlegalpillers
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
BBPMedia1
 
Discover the innovative and creative projects that highlight my journey throu...
Discover the innovative and creative projects that highlight my journey throu...Discover the innovative and creative projects that highlight my journey throu...
Discover the innovative and creative projects that highlight my journey throu...
dylandmeas
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
Ben Wann
 
3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx
tanyjahb
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
HumanResourceDimensi1
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
LR1709MUSIC
 
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdfMeas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
dylandmeas
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
SynapseIndia
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
Adam Smith
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
RajPriye
 
BeMetals Presentation_May_22_2024 .pdf
BeMetals Presentation_May_22_2024   .pdfBeMetals Presentation_May_22_2024   .pdf
BeMetals Presentation_May_22_2024 .pdf
DerekIwanaka1
 
Unveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdfUnveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdf
Sam H
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
Operational Excellence Consulting
 
The effects of customers service quality and online reviews on customer loyal...
The effects of customers service quality and online reviews on customer loyal...The effects of customers service quality and online reviews on customer loyal...
The effects of customers service quality and online reviews on customer loyal...
balatucanapplelovely
 
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdfikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
agatadrynko
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
Cynthia Clay
 
Cracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptxCracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptx
Workforce Group
 

Recently uploaded (20)

Attending a job Interview for B1 and B2 Englsih learners
Attending a job Interview for B1 and B2 Englsih learnersAttending a job Interview for B1 and B2 Englsih learners
Attending a job Interview for B1 and B2 Englsih learners
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
 
What is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdfWhat is the TDS Return Filing Due Date for FY 2024-25.pdf
What is the TDS Return Filing Due Date for FY 2024-25.pdf
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
 
Discover the innovative and creative projects that highlight my journey throu...
Discover the innovative and creative projects that highlight my journey throu...Discover the innovative and creative projects that highlight my journey throu...
Discover the innovative and creative projects that highlight my journey throu...
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
 
3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx3.0 Project 2_ Developing My Brand Identity Kit.pptx
3.0 Project 2_ Developing My Brand Identity Kit.pptx
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
 
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdfMeas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
 
BeMetals Presentation_May_22_2024 .pdf
BeMetals Presentation_May_22_2024   .pdfBeMetals Presentation_May_22_2024   .pdf
BeMetals Presentation_May_22_2024 .pdf
 
Unveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdfUnveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdf
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
 
The effects of customers service quality and online reviews on customer loyal...
The effects of customers service quality and online reviews on customer loyal...The effects of customers service quality and online reviews on customer loyal...
The effects of customers service quality and online reviews on customer loyal...
 
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdfikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
 
Cracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptxCracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptx
 

Pair Programming: overview and concepts

  • 1. Extreme Programming & Pair Programming Lior Shalom
  • 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
  • 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. Pair Programming Overview  Two programmers work side-by-side at one computer  Continuously collaborate on same design, algorithm, code, test, etc.  Continuous informal review
  • 9. Pair Programming Overview (cont.)  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
  • 10. 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
  • 11. Pair Programming - roles Developer (navigator) Developer (driver)
  • 13. Isn’t it a waste?  Two developers will do the work of one  Junior guys will slow down seniors  Less work will get done  My cost will double  Why would I put two people on a job that just one can do?
  • 14.
  • 15. 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.
  • 16. Pair Programming rules  Think Out Loud  Ten seconds rule
  • 17. Think out loud (rule 1)  The driver “thinks out loud” as he/she’s coding  This helps keep the navigator in the loop, and communicates the intent better  It’s certainly not a technique that most people practice without suggestion
  • 18. Ten seconds rule (rule 2)  The navigator should wait 10 seconds before pointing out a typo  Generally that’s long enough for the driver to correct a typo that’s already noticed  Excessive interruptions are distracting
  • 19. Pair Programming - practices  Ping Pong  Chess Clock Pair Programming (Kitchen Clock)
  • 20. Ping Pong Pair Programming  The navigator writes a failing unit test  The driver modifies the code to pass the unit test(s)  The navigator writes a new unit test, and so on  This loop continues as long as the navigator is able to write failing unit tests
  • 21. Chess Clock Pair Programming  Set the clock at 5 minutes (each side)  Pair Program. Push down your clock side when you take the keyboard  See how much more than the allotted time you need to complete the task
  • 22. Chess Clock Pair Programming  Pros  Assure everybody gets the keyboard  Cons  It can be inconvenient to pass the keyboard in the middle of coding
  • 23. Skills to be successfully while Pair Programming  Teamwork  Accept other ideas  Cooperation  Communication  Be a good listener  Name and layout conventions  Respect the 10 seconds rule
  • 24. When should you pair?  Complex Code  Mission-critical code  Code that involves design decisions  Areas of code that you want everyone on the team to know how to work with
  • 25. 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)