SlideShare uma empresa Scribd logo
1 de 25
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)

Mais conteúdo relacionado

Mais procurados

extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programmingMichael Green
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesJon McNestrie
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair ProgrammingSteven Smith
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XPVashira Ravipanich
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projectsbriley1
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
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 ProgrammingAgile Lietuva
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile DevelopmentMatt Griffin
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsmangoeran
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?David Alfaro
 

Mais procurados (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
 

Semelhante a Pair Programming: overview and concepts

Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh 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 Practicesjackcrews
 
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 PracticesJérôme Kehrli
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Waterfallacies V1 1
Waterfallacies V1 1Waterfallacies V1 1
Waterfallacies V1 1Jorge 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 engineeringprogramizconsultancy
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile MethodologiesStfalcon Meetups
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 
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
 

Semelhante a 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
 

Último

Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...lizamodels9
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...amitlee9823
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptxnandhinijagan9867
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with CultureSeta Wicaksana
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsP&CO
 
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLBAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLkapoorjyoti4444
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noidadlhescort
 
PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPanhandleOilandGas
 
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876dlhescort
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Sheetaleventcompany
 
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Adnet Communications
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon investment
 
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...amitlee9823
 
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceMalegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceDamini Dixit
 

Último (20)

Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
Russian Call Girls In Rajiv Chowk Gurgaon ❤️8448577510 ⊹Best Escorts Service ...
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investors
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLBAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
BAGALUR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
 
PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation Final
 
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
 
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
 
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024
 
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 Just📲 Call Nihal Chandigarh Call Girl...
 
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business Potential
 
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
 
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceMalegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 

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)