PAIRPROGRAMMINGNAME : 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,...
How it works • Driver   –   Actively implements the program.   –   Actually types or writes down   –   Explains actions ta...
Driver         Navigator
Pair Programming• Driver and Navigator working together  on one task• Roles changing often• Collective responsibility for ...
Why Pair ???•   Higher quality code•   Faster cycle time•   Enhanced trust/teamwork•   Knowledge transfer•   Enhanced lear...
Higher Quality Code• Immediate reviews of all code written• Multiple perspectives on how code  should work• People from di...
Faster cycle time• Less temptation/ability to get distracted  on non-work things• Less rework due to bad assumptions• Fewe...
Enhanced Trust/Teamwork• People in pairs get to know each other  better than people working solo• Better understanding of ...
Knowledge Transfer • Rotation of pairs means lots of   combinations • Lots of combinations make knowledge   transfer expon...
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 ...
Pair Pressure• Each member doesn’t want to let the  other down• Improved adherence to procedures and  standards• Motivatio...
Pair Negotiation• Working together to get the best  solution• Each pair member has  – Own set of skills, abilities, outloo...
Pair Courage• Having a partner agree with a fix or a  solution adds confidence to the solution• Two people expressing conf...
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 ...
Pair Learning• No two people are at exact same levels  of knowledge on software development• Exposure to different approac...
Enabling Pair Programming  •   Accessible workspace  •   Communication  •   Standards  •   Knowledge of people’s specialti...
Workspace accessible to both • Display visible to both people • Side by side, not one in front of the   other • Keyboard/m...
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...
Knowledge of people’s     specialties• Know who to pair with to achieve  benefit in a given situation• If a task overlaps ...
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...
THANK YOU
Upcoming SlideShare
Loading in...5
×

Pair Programming

307

Published on

Published in: Devices & Hardware
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
307
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pair Programming

  1. 1. PAIRPROGRAMMINGNAME : JASLEEN ROLL NO:10509 (GROUP:C1)
  2. 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. 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. 4. Driver Navigator
  5. 5. 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
  6. 6. Why Pair ???• Higher quality code• Faster cycle time• Enhanced trust/teamwork• Knowledge transfer• Enhanced learning• More fun
  7. 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. 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. 9. 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
  10. 10. Knowledge Transfer • Rotation of pairs means lots of combinations • Lots of combinations make knowledge transfer exponential • Fewer assumptions
  11. 11. Enhanced Learning• Each member of a pair has ongoing opportunities to learn from their partner
  12. 12. More Fun• Social interactions• Shared events• Studies show high numbers of people trying pair programming prefer it
  13. 13. Why Pair Programming Works• Pair Pressure• Pair Negotiation• Pair Courage• Pair Reviews• Pair Debugging• Pair Learning• Pair Trust
  14. 14. 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
  15. 15. 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)
  16. 16. 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
  17. 17. Pair Reviews• Members of pairs are immediately reviewing code as it is written• Two heads better than one
  18. 18. 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
  19. 19. Pair Learning• No two people are at exact same levels of knowledge on software development• Exposure to different approaches
  20. 20. Enabling Pair Programming • Accessible workspace • Communication • Standards • Knowledge of people’s specialties • Pair rotation • Group appraisal • Smaller groups
  21. 21. 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
  22. 22. Expectation of communication • Ask to drive • Ask questions • Explain actions taken
  23. 23. 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
  24. 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. 25. Pair Rotation• No given pair of programmers is the right pair for every situation• Rotation enables knowledge transfer
  26. 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. 27. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×