PAIR
PROGRAMMING



NAME : JASLEEN
 ROLL NO:10509
  (GROUP:C1)
What is it?
 •“Two programmers work side-by-side at
 one computer, continuously collaborating
 on the same design, algorithm, code, and
 test.”

 •It allows two people to produce a higher
 quality of code than that produced by the
 summation of their individual efforts.
How it works
 • Driver
   –   Actively implements the program.
   –   Actually types or writes down
   –   Explains actions taken
   –   Participates in brainstorming/planning
 • Navigator
   – Continuously observes the work of the driver to identify
     defects.
   – Thinks about the direction of the work.
Driver



         Navigator
Pair Programming

• Driver and Navigator working together
  on one task
• Roles changing often
• Collective responsibility for outcome
• Bringing together of multiple
  perspectives, experiences and abilities
Why Pair ???

•   Higher quality code
•   Faster cycle time
•   Enhanced trust/teamwork
•   Knowledge transfer
•   Enhanced learning
•   More fun
Higher Quality Code

• Immediate reviews of all code written
• Multiple perspectives on how code
  should work
• People from different areas
  (UI/database, development/testing)
  working together – no (incorrect)
  assumptions
• Each person learns from the other –
  increased skills
Faster cycle time

• Less temptation/ability to get distracted
  on non-work things
• Less rework due to bad assumptions
• Fewer defects slip through, so less
  rework for defect repair
• Less interruption for pair
• More communication
Enhanced Trust/Teamwork
• People in pairs get to know each other
  better than people working solo

• Better understanding of people’s skills

• Shared events = common ground
Knowledge Transfer

 • Rotation of pairs means lots of
   combinations

 • Lots of combinations make knowledge
   transfer exponential

 • Fewer assumptions
Enhanced Learning


• Each member of a pair has ongoing
  opportunities to learn from their partner
More Fun

• Social interactions
• Shared events
• Studies show high numbers of people
  trying pair programming prefer it
Why Pair Programming Works

•   Pair Pressure
•   Pair Negotiation
•   Pair Courage
•   Pair Reviews
•   Pair Debugging
•   Pair Learning
•   Pair Trust
Pair Pressure

• Each member doesn’t want to let the
  other down
• Improved adherence to procedures and
  standards
• Motivation to get a task done in a
  session while partner is available
Pair Negotiation

• Working together to get the best
  solution
• Each pair member has
  – Own set of skills, abilities, outlook.
  – Shared goal of accomplishing task
• Brainstorming (building on ideas of
  others)
Pair Courage

• Having a partner agree with a fix or a
  solution adds confidence to the solution
• Two people expressing confusion are
  more confident to go get the help they
  need
Pair Reviews

• Members of pairs are immediately
  reviewing code as it is written
• Two heads better than one
Pair Debugging
• Effective debugging technique is to
  explain problem to someone else
• Talking about problem in a pair can
  lead to a solution becoming obvious
Pair Learning

• No two people are at exact same levels
  of knowledge on software development
• Exposure to different approaches
Enabling Pair Programming
  •   Accessible workspace
  •   Communication
  •   Standards
  •   Knowledge of people’s specialties
  •   Pair rotation
  •   Group appraisal
  •   Smaller groups
Workspace accessible to both
 • Display visible to both people
 • Side by side, not one in front of the
   other
 • Keyboard/mouse available to either
   person
Expectation of communication
 • Ask to drive
 • Ask questions
 • Explain actions taken
Standards

 • Standard tools reduce learning curve
   time in pairs
 • Coding standards assist in both
   members following the code being
   written and avoid disagreements on
   how to write something
Knowledge of people’s
     specialties
• Know who to pair with to achieve
  benefit in a given situation
• If a task overlaps two areas (e.g., UI
  and database) pair one person from
  each area
Pair Rotation

• No given pair of programmers is the
  right pair for every situation
• Rotation enables knowledge transfer
Disadvantages to Pair
    Programming
  •   Requires even number of developers
  •   Scheduling
  •   Experts/Skill Imbalances
  •   Concentration
  •   Disagreements
  •   Overconfidence
  •   Loss of personal development space
  •   Not for everyone
THANK YOU

Pair Programming

  • 1.
    PAIR PROGRAMMING NAME : JASLEEN ROLL NO:10509 (GROUP:C1)
  • 2.
    What is it? •“Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test.” •It allows two people to produce a higher quality of code than that produced by the summation of their individual efforts.
  • 3.
    How it works • Driver – Actively implements the program. – Actually types or writes down – Explains actions taken – Participates in brainstorming/planning • Navigator – Continuously observes the work of the driver to identify defects. – Thinks about the direction of the work.
  • 4.
    Driver Navigator
  • 5.
    Pair Programming • Driverand Navigator working together on one task • Roles changing often • Collective responsibility for outcome • Bringing together of multiple perspectives, experiences and abilities
  • 6.
    Why Pair ??? • Higher quality code • Faster cycle time • Enhanced trust/teamwork • Knowledge transfer • Enhanced learning • More fun
  • 7.
    Higher Quality Code •Immediate reviews of all code written • Multiple perspectives on how code should work • People from different areas (UI/database, development/testing) working together – no (incorrect) assumptions • Each person learns from the other – increased skills
  • 8.
    Faster cycle time •Less temptation/ability to get distracted on non-work things • Less rework due to bad assumptions • Fewer defects slip through, so less rework for defect repair • Less interruption for pair • More communication
  • 9.
    Enhanced Trust/Teamwork • Peoplein pairs get to know each other better than people working solo • Better understanding of people’s skills • Shared events = common ground
  • 10.
    Knowledge Transfer •Rotation of pairs means lots of combinations • Lots of combinations make knowledge transfer exponential • Fewer assumptions
  • 11.
    Enhanced Learning • Eachmember of a pair has ongoing opportunities to learn from their partner
  • 12.
    More Fun • Socialinteractions • Shared events • Studies show high numbers of people trying pair programming prefer it
  • 13.
    Why Pair ProgrammingWorks • Pair Pressure • Pair Negotiation • Pair Courage • Pair Reviews • Pair Debugging • Pair Learning • Pair Trust
  • 14.
    Pair Pressure • Eachmember doesn’t want to let the other down • Improved adherence to procedures and standards • Motivation to get a task done in a session while partner is available
  • 15.
    Pair Negotiation • Workingtogether to get the best solution • Each pair member has – Own set of skills, abilities, outlook. – Shared goal of accomplishing task • Brainstorming (building on ideas of others)
  • 16.
    Pair Courage • Havinga partner agree with a fix or a solution adds confidence to the solution • Two people expressing confusion are more confident to go get the help they need
  • 17.
    Pair Reviews • Membersof pairs are immediately reviewing code as it is written • Two heads better than one
  • 18.
    Pair Debugging • Effectivedebugging technique is to explain problem to someone else • Talking about problem in a pair can lead to a solution becoming obvious
  • 19.
    Pair Learning • Notwo people are at exact same levels of knowledge on software development • Exposure to different approaches
  • 20.
    Enabling Pair Programming • Accessible workspace • Communication • Standards • Knowledge of people’s specialties • Pair rotation • Group appraisal • Smaller groups
  • 21.
    Workspace accessible toboth • Display visible to both people • Side by side, not one in front of the other • Keyboard/mouse available to either person
  • 22.
    Expectation of communication • Ask to drive • Ask questions • Explain actions taken
  • 23.
    Standards • Standardtools reduce learning curve time in pairs • Coding standards assist in both members following the code being written and avoid disagreements on how to write something
  • 24.
    Knowledge of people’s specialties • Know who to pair with to achieve benefit in a given situation • If a task overlaps two areas (e.g., UI and database) pair one person from each area
  • 25.
    Pair Rotation • Nogiven pair of programmers is the right pair for every situation • Rotation enables knowledge transfer
  • 26.
    Disadvantages to Pair Programming • Requires even number of developers • Scheduling • Experts/Skill Imbalances • Concentration • Disagreements • Overconfidence • Loss of personal development space • Not for everyone
  • 27.