Pair programming


Published on

Pair programming presentaiton delivered to the Agile Welly group in December 2011.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • \n
  • Paul\n
  • Paul\n
  • Paul\n
  • Andy\n
  • Andy\n
  • Andy\n
  • Andy\n
  • Andy\n
  • Paul: Lets talk about a typical pair programming session\n
  • Paul: The best pair programmers know when to say "let's try your idea first."\n
  • Paul: We’ve found 3 hours to be the upper limit, pair programming sessions that have lasted all day often end up in going home exhausted. That said, endurance does increase the more often you use it.\n
  • Paul\n
  • Paul\n
  • Andy\n
  • Paul: They’re study showed pair programmers solved a problem in 60 to 80% of time with better quality \n
  • Andy: The study “Strengthening the case for pair programming” also showed that pairs increased test coverage, up to 10% higher than their individual counterparts.\n
  • Andy\n
  • Paul, share knowledge around the team, knowledge of the domain, the business.\n\nWe also learn from each other in terms of coding and processess\n
  • Paul\n
  • Paul - Andy - Paul\n
  • Andy\n
  • \n
  • \n
  • Pair programming

    1. 1. Pair Programming Andy Gray and Paul Flewelling
    2. 2. Who are we?‣ Were from Boost New Media‣ We use Scrum Andy Gray & Paul Flewelling |
    3. 3. Why are we here?‣ We’ve started to use Pair Programming more and more.‣ We want to share some of our experiences. Andy Gray & Paul Flewelling |
    4. 4. What’s your experience?5 = I think pair programming is great,and would encourage my team to use it4 = I’ve heard about pair programmingand am keen give it a try3 = I don’t know very much about pairprogramming2 = I’m not convinced pairprogramming adds value1 = I’ve tried pair programming andwouldn’t use it again Andy Gray & Paul Flewelling |
    5. 5. What is Pair Programming?‣ Two developers working together on one problem, on one computer‣ One acts as the driver‣ The other as the co-driver Andy Gray & Paul Flewelling |
    6. 6. What is Pair Programming?‣ The keyboard / roles are exchanged regularly‣ Pairs change often ‣ each story ‣ each day Andy Gray & Paul Flewelling |
    7. 7. What is Pair Programming?‣ It’s biggest proponent is Extreme Programming. ‣ XP Coding Rule: All production code is pair programmed‣ We don’t pair program everything Andy Gray & Paul Flewelling |
    8. 8. What is Pair Programming?It works well with other Agile Methodologieslike Scrum because:‣ Teams are self organising‣ Teams have collective ownership‣ Scrum is an empirical process which allows teams to experiment Andy Gray & Paul Flewelling |
    9. 9. What is Pair Programming?It is problem solving which is‣ Co-operative‣ Social Andy Gray & Paul Flewelling |
    10. 10. Setting the scene... Andy Gray & Paul Flewelling |
    11. 11. Barriers to Pair ProgrammingIt isn’t for every team, members must be‣ sociable‣ be able to talk about what they’re doing‣ prepared to co-operate‣ able to accept collective ownership Andy Gray & Paul Flewelling |
    12. 12. BarriersPair Programming for sustained periods canbe exhausting Andy Gray & Paul Flewelling |
    13. 13. BarriersCan be hard for management to accept‣ Aren’t two developers working on one problem half as productive? Andy Gray & Paul Flewelling |
    14. 14. Benefits of Pair ProgrammingCounter-intuitively, productivity isn’t halved‣ Two heads are better than one at solving problems and spotting mistakes‣ Pairs stay focused for longer‣ Our velocity has stayed consistent, but with less re-work Andy Gray & Paul Flewelling |
    15. 15. BenefitsPairs produce higher quality code with‣ fewer defects‣ better design decisions Andy Gray & Paul Flewelling |
    16. 16. “The benefits of getting a product outfaster, reducing maintenance expenses,and improving customer satisfactionwith product quality outweigh theminimal programmer hour increasethat was seen.” Strengthening the Case for Pair-Programming Laurie Williams et al Andy Gray & Paul Flewelling |
    17. 17. BenefitsPairs encourage each other to follow goodagile practices such as‣ Test Driven Development‣ Code Refactoring‣ Collective Ownership Andy Gray & Paul Flewelling |
    18. 18. Benefits‣ Pairing encourages a sense of team‣ The sense of vulnerability diminishes as the team becomes stronger, the team will tackle any task‣ The team becomes increasingly cross-functional Andy Gray & Paul Flewelling |
    19. 19. Benefits‣ Pairs working together ‣ focus each other ‣ peer review each other ‣ boost courage to tackle problems ‣ share knowledge ‣ learn from each other Andy Gray & Paul Flewelling |
    20. 20. BenefitsPairing makes it easier to adddevelopers to a project. Andy Gray & Paul Flewelling |
    21. 21. Summary‣ Simple discipline of two developers working together on one machine‣ Requires developers to be sociable and co-operative‣ There are some barriers to it’s uptake Andy Gray & Paul Flewelling |
    22. 22. SummaryThe pros far outweigh the cons:‣ High-level of focus‣ Higher quality‣ Knowledge sharing‣ Higher team confidence Andy Gray & Paul Flewelling |
    23. 23. Any Questions? Andy Gray & Paul Flewelling |
    24. 24. ReferencesStrengthening the Case for Pair ProgrammingLaurie Williams, Robert R. Kessler, Ward Cunningham, Ron Jeffries Andy Gray & Paul Flewelling |