SlideShare a Scribd company logo
[Pair Programming]
             Ghezal Ahmad “Zia”



3/24/2011            Pair Programming   1
Forward
2




       This presentation, represent a research result which is
        prepared by Stuart Wray at Royal School of Signals,
        Blandford, United kingdom, that defines why pair
        programming sometimes brings benefit and sometimes
        does not.




                                  Pair Programming   3/24/2011
Outline
3




       Motivation
       Pair Programming approach
       Characteristic of pair programming
       Advantages of Pair Programming
       Conclusion




                              Pair Programming   3/24/2011
What Pair Programming is?
4                                                             Motivation


    Pair programming is a style of programming in which two
    programmers work side by side at one computer, continually
    collaborating on the same analysis, design, algorithm,
    implementation, code, or test.




                               Pair Programming   3/24/2011
How does Pair Programming work?
5                                                           Pair programming approach



    •   Driver
         –   “Driver” has control of the keyboard and focuses on the
             immediate task of coding.


    •   Navigator
         –   Tactical defects (syntax errors, calls to wrong method)
         –   Strategic error (heading down wrong path)



                                         Pair Programming   3/24/2011
6




       Why Pair programming is sometimes useful and
                     sometimes doesn't?




                            Pair Programming   3/24/2011
How does Pair Programming work?
7                                          Pair programming approach

     Driver
                                                       Navigator




                        Pair Programming   3/24/2011
Pair…
8                                                               Pair programming approach




                                             Pair Programming    3/24/2011
      http://www.golfhotelwhiskey.com/what-airlines-can-teach-general-aviation-pilots/
Pair…
9                                               Pair programming approach




      http://www.jupiterimages.com/Image/royaltyFree/77636342
                                    Pair Programming 3/24/2011
Pair…
10                                                      Pair programming approach




      http://fachisthers.com/template_archives.asp?chosenYear=2008&chosenMonth=4
                                            Pair Programming 3/24/2011
Abstraction
11                                 Characteristics of Pair Programming

        Pair Pressure
            –    Keep each other on task and focused
            –    Don’t want to let partner down
        Pair Negotiation
            –    Have shared goals and plans
            –    Bring different prior experiences to the task
            –    Different access to task relevant information
            –    Must negotiate a common shared of action


                                  Pair Programming   3/24/2011
12          Characteristics of Pair Programming




     [1]   Pair Programming   3/24/2011
13                        Characteristics of Pair Programming




        Pair Programming would drive me crazy.




                         Pair Programming   3/24/2011
Two head is better than one
14                Characteristics of Pair Programming




                 Pair Programming   3/24/2011
Immediate Objections
15                                 Characteristics of Pair Programming




     •   Why use two programmers to do the work that one
         can do?

     •   Programmers prefer to work in isolation.

     •   Egos and disagreements about implementation will
         hinder development.

                                  Pair Programming   3/24/2011
16                         Characteristics of Pair Programming




     Objection 1: Why use two programmers to do the
                   work that one can do?




                          Pair Programming   3/24/2011
Objection 1
17                                     Characteristics of Pair Programming
      •   Brainstorming
          –   Produce higher quality designs.
          –   Catch design flaws early on, different approaches to the
              solution.
      •   Problem Isolation
           – Easier for two to find and resolve a problem.
           – Both thinking about problem differently.
      •   Focus
           – Keep each other on track.
           – Different experience levels



                                      Pair Programming   3/24/2011
18                        Characteristics of Pair Programming




     Objection 2: Programming is solitary work..




                         Pair Programming   3/24/2011
Objection 2
19                                     Characteristics of Pair Programming

      •   Common assumption
          –   Traditionally taught and practiced this way


      •   Takes some adjustment
          –   Most are initially skeptical


      •   Teamwork
           _ Pairs produced higher quality code

                                      Pair Programming   3/24/2011
20                      Characteristics of Pair Programming




     Objection 3: Egos and disagreements will
                hinder development.




                       Pair Programming   3/24/2011
Objection 3
21                                    Characteristics of Pair Programming


     •   Occasionally an issue.
         –   Rarely have dysfunctional pairs
         –   Disagreements can be easily resolved by a third
             party




                                     Pair Programming   3/24/2011
Advantages
22                                           Advantage of Pair Programming

     •    Learn more about the system and software development.
     •    Problems are solved quicker.
     •    Coding Standards followed more closely.
     •    Team communication and cohesiveness.
     •    Enhanced productivity
     •    Shorter and better code
     •    Less bugs
     •    Sharing of knowledge


                                 Pair Programming   3/24/2011
Important term
23                                                             Conclusion
        Is a method of programming that has come from the
         agile methodology of Extreme Programming (XP) .
        Better distribution of inner knowledge
        More team spirit
        A good idea to rotate pairs
        Two pair with refresh eyes
        Pair Programming is very effective:
              In term of time
              In term of quality
                                Pair Programming   3/24/2011
24




                 Thanks for your attention!




     3/24/2011               Pair Programming   24
References
25



     [1] Cockburn and Williams. The Costs and Benefits of Pair Programming.
         [http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF]

     [2] Jensen, Randal. A Pair Programming Experience.
         CrossTalk. Mar, 2003.
         [http://www.stsc.hill.af.mil/crosstalk/2003/03/jensen.html]

     [3] Pair Programming. Cunningham & Cunningham, Inc. Jan. 15, 2006.
         [http://www.c2.com/cgi/wiki?PairProgramming]

     [4] Williams, Kessler, Cunningham. Strengthening the Case for Pair-
         Programming.
         [http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF]
     [5] http://collaboration.csc.ncsu.edu/laurie

                                          Pair Programming   3/24/2011
26




     Question?

         Pair Programming   3/24/2011
27




      YOU WILL NEVER WORK   ALONE NOW!


     3/24/2011          Pair Programming   27

More Related Content

PPTX
Pair Programming - a pratical guide
PPT
Pair Programming Presentation
PDF
Pair Programming, TDD and other impractical things
PDF
Pair programming demystified
PDF
Introducing Pair Programming
PPT
Extreme & pair programming Slides ppt
PPTX
Practices of agile developers
PDF
Pair Programming (2014)
Pair Programming - a pratical guide
Pair Programming Presentation
Pair Programming, TDD and other impractical things
Pair programming demystified
Introducing Pair Programming
Extreme & pair programming Slides ppt
Practices of agile developers
Pair Programming (2014)

What's hot (20)

PPTX
Xp(Xtreme Programming) presentation
PDF
Test Driven Development by Denis Lutz
ODP
Xtreme Programming
PPT
Extreme programming
PDF
Offshore Agile Maintenance
PPT
extreme Programming
PPTX
Extreme Programming (XP) for Dummies
PPTX
Going extreme-with-extreme-programming
PDF
XP In 10 slides
PDF
Analysis of the interaction between practices for introducing XP effectively
PDF
Code quality as a built-in process
PPTX
Extreme programming - a quick and agile overview !
PDF
eXtreme programming (XP) - An Overview
PPT
XP Explained
PPTX
Agile Practices - eXtreme Programming
ODP
xUnit and TDD: Why and How in Enterprise Software, August 2012
PPTX
extreme programming
PPT
Contemporary Software Engineering Practices Together With Enterprise
PPTX
Agile software development and extreme Programming
PPT
Introduction To Extreme Programming
Xp(Xtreme Programming) presentation
Test Driven Development by Denis Lutz
Xtreme Programming
Extreme programming
Offshore Agile Maintenance
extreme Programming
Extreme Programming (XP) for Dummies
Going extreme-with-extreme-programming
XP In 10 slides
Analysis of the interaction between practices for introducing XP effectively
Code quality as a built-in process
Extreme programming - a quick and agile overview !
eXtreme programming (XP) - An Overview
XP Explained
Agile Practices - eXtreme Programming
xUnit and TDD: Why and How in Enterprise Software, August 2012
extreme programming
Contemporary Software Engineering Practices Together With Enterprise
Agile software development and extreme Programming
Introduction To Extreme Programming
Ad

Viewers also liked (9)

PDF
Introduction To Pair Programming
PPT
Scratch and pair programming
PDF
Xitrum HOWTOs
PDF
Xitrum @ Scala Matsuri Tokyo 2014
PDF
How to write a web framework
PDF
Develop realtime web with Scala and Xitrum
ODP
Pair programming
PDF
RSpec 2 Best practices
PDF
Pair Programming demystified
Introduction To Pair Programming
Scratch and pair programming
Xitrum HOWTOs
Xitrum @ Scala Matsuri Tokyo 2014
How to write a web framework
Develop realtime web with Scala and Xitrum
Pair programming
RSpec 2 Best practices
Pair Programming demystified
Ad

Similar to How does pair programming work? (20)

PPT
Ict educators win-win-win w agile, ron lichty, 1.4.13
PPTX
An Evaluation of Pair Programming Practice
PPT
Chapter_03sp1718.ppt agile development of software
PPTX
Ready, Set, Refactor
PDF
Introduction to Extreme Programming
PDF
Managing Agile Software Development Projects
PDF
Why Automation is Required in Software Testing - OSSCamp 2014
PPT
XP O.ppt
PDF
Agile Software Development
PPT
Pair Programming Explained By Shrikant Vashishtha
PPT
Effective Collaborative Programming3@March 19th 2009
PPT
Micro patterns in agile software
PPT
Effective Collaborative Programming3
PPT
Principles of guide practices for project
PPT
Chapter_04_of_Software_engineering_book.ppt
PDF
Ijetcas14 533
PPTX
Pairing with People
PDF
Designing patterns in java Advantages and disadvantagesSolution.pdf
PPTX
Top technical mistakes that programers do
PDF
Ict educators win-win-win w agile, ron lichty, 1.4.13
An Evaluation of Pair Programming Practice
Chapter_03sp1718.ppt agile development of software
Ready, Set, Refactor
Introduction to Extreme Programming
Managing Agile Software Development Projects
Why Automation is Required in Software Testing - OSSCamp 2014
XP O.ppt
Agile Software Development
Pair Programming Explained By Shrikant Vashishtha
Effective Collaborative Programming3@March 19th 2009
Micro patterns in agile software
Effective Collaborative Programming3
Principles of guide practices for project
Chapter_04_of_Software_engineering_book.ppt
Ijetcas14 533
Pairing with People
Designing patterns in java Advantages and disadvantagesSolution.pdf
Top technical mistakes that programers do

Recently uploaded (20)

PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Pre independence Education in Inndia.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
RMMM.pdf make it easy to upload and study
PPTX
Lesson notes of climatology university.
PDF
Basic Mud Logging Guide for educational purpose
PDF
Classroom Observation Tools for Teachers
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
Microbial disease of the cardiovascular and lymphatic systems
Pre independence Education in Inndia.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
RMMM.pdf make it easy to upload and study
Lesson notes of climatology university.
Basic Mud Logging Guide for educational purpose
Classroom Observation Tools for Teachers
Renaissance Architecture: A Journey from Faith to Humanism
O7-L3 Supply Chain Operations - ICLT Program
O5-L3 Freight Transport Ops (International) V1.pdf
Microbial diseases, their pathogenesis and prophylaxis
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Abdominal Access Techniques with Prof. Dr. R K Mishra
Supply Chain Operations Speaking Notes -ICLT Program
Pharmacology of Heart Failure /Pharmacotherapy of CHF
human mycosis Human fungal infections are called human mycosis..pptx

How does pair programming work?

  • 1. [Pair Programming] Ghezal Ahmad “Zia” 3/24/2011 Pair Programming 1
  • 2. Forward 2  This presentation, represent a research result which is prepared by Stuart Wray at Royal School of Signals, Blandford, United kingdom, that defines why pair programming sometimes brings benefit and sometimes does not. Pair Programming 3/24/2011
  • 3. Outline 3  Motivation  Pair Programming approach  Characteristic of pair programming  Advantages of Pair Programming  Conclusion Pair Programming 3/24/2011
  • 4. What Pair Programming is? 4 Motivation Pair programming is a style of programming in which two programmers work side by side at one computer, continually collaborating on the same analysis, design, algorithm, implementation, code, or test. Pair Programming 3/24/2011
  • 5. How does Pair Programming work? 5 Pair programming approach • Driver – “Driver” has control of the keyboard and focuses on the immediate task of coding. • Navigator – Tactical defects (syntax errors, calls to wrong method) – Strategic error (heading down wrong path) Pair Programming 3/24/2011
  • 6. 6  Why Pair programming is sometimes useful and sometimes doesn't? Pair Programming 3/24/2011
  • 7. How does Pair Programming work? 7 Pair programming approach Driver Navigator Pair Programming 3/24/2011
  • 8. Pair… 8 Pair programming approach Pair Programming 3/24/2011 http://www.golfhotelwhiskey.com/what-airlines-can-teach-general-aviation-pilots/
  • 9. Pair… 9 Pair programming approach http://www.jupiterimages.com/Image/royaltyFree/77636342 Pair Programming 3/24/2011
  • 10. Pair… 10 Pair programming approach http://fachisthers.com/template_archives.asp?chosenYear=2008&chosenMonth=4 Pair Programming 3/24/2011
  • 11. Abstraction 11 Characteristics of Pair Programming  Pair Pressure – Keep each other on task and focused – Don’t want to let partner down  Pair Negotiation – Have shared goals and plans – Bring different prior experiences to the task – Different access to task relevant information – Must negotiate a common shared of action Pair Programming 3/24/2011
  • 12. 12 Characteristics of Pair Programming [1] Pair Programming 3/24/2011
  • 13. 13 Characteristics of Pair Programming  Pair Programming would drive me crazy. Pair Programming 3/24/2011
  • 14. Two head is better than one 14 Characteristics of Pair Programming Pair Programming 3/24/2011
  • 15. Immediate Objections 15 Characteristics of Pair Programming • Why use two programmers to do the work that one can do? • Programmers prefer to work in isolation. • Egos and disagreements about implementation will hinder development. Pair Programming 3/24/2011
  • 16. 16 Characteristics of Pair Programming Objection 1: Why use two programmers to do the work that one can do? Pair Programming 3/24/2011
  • 17. Objection 1 17 Characteristics of Pair Programming • Brainstorming – Produce higher quality designs. – Catch design flaws early on, different approaches to the solution. • Problem Isolation – Easier for two to find and resolve a problem. – Both thinking about problem differently. • Focus – Keep each other on track. – Different experience levels Pair Programming 3/24/2011
  • 18. 18 Characteristics of Pair Programming Objection 2: Programming is solitary work.. Pair Programming 3/24/2011
  • 19. Objection 2 19 Characteristics of Pair Programming • Common assumption – Traditionally taught and practiced this way • Takes some adjustment – Most are initially skeptical • Teamwork _ Pairs produced higher quality code Pair Programming 3/24/2011
  • 20. 20 Characteristics of Pair Programming Objection 3: Egos and disagreements will hinder development. Pair Programming 3/24/2011
  • 21. Objection 3 21 Characteristics of Pair Programming • Occasionally an issue. – Rarely have dysfunctional pairs – Disagreements can be easily resolved by a third party Pair Programming 3/24/2011
  • 22. Advantages 22 Advantage of Pair Programming • Learn more about the system and software development. • Problems are solved quicker. • Coding Standards followed more closely. • Team communication and cohesiveness. • Enhanced productivity • Shorter and better code • Less bugs • Sharing of knowledge Pair Programming 3/24/2011
  • 23. Important term 23 Conclusion  Is a method of programming that has come from the agile methodology of Extreme Programming (XP) .  Better distribution of inner knowledge  More team spirit  A good idea to rotate pairs  Two pair with refresh eyes  Pair Programming is very effective: In term of time In term of quality Pair Programming 3/24/2011
  • 24. 24 Thanks for your attention! 3/24/2011 Pair Programming 24
  • 25. References 25 [1] Cockburn and Williams. The Costs and Benefits of Pair Programming. [http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF] [2] Jensen, Randal. A Pair Programming Experience. CrossTalk. Mar, 2003. [http://www.stsc.hill.af.mil/crosstalk/2003/03/jensen.html] [3] Pair Programming. Cunningham & Cunningham, Inc. Jan. 15, 2006. [http://www.c2.com/cgi/wiki?PairProgramming] [4] Williams, Kessler, Cunningham. Strengthening the Case for Pair- Programming. [http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF] [5] http://collaboration.csc.ncsu.edu/laurie Pair Programming 3/24/2011
  • 26. 26 Question? Pair Programming 3/24/2011
  • 27. 27 YOU WILL NEVER WORK ALONE NOW! 3/24/2011 Pair Programming 27