Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pair Programming

Rob Stearn
November 08, 2017

Pair Programming

Presented at the PayPal Mobile Summit on November 8th 2017. The presentation aimed to highlight why pair programming is so important and how to make the transition to using it as easy as possible.

Rob Stearn

November 08, 2017
Tweet

More Decks by Rob Stearn

Other Decks in Technology

Transcript

  1. — What is it? — Why do we need it?

    — Why does it work? — Why are we resistant to it? — How can we make it work? 2017 © cocoadelica.co.uk 2/38
  2. What is it? — 2 people — 1 screen1 —

    2 input devices2 — 1 task 2 Probably keyboards and mouses but needs and preferences vary. 1 One logical screen, as you might pairing with a remote colleague. 2017 © cocoadelica.co.uk 3/38
  3. collaborate kəˈlabəreɪt - verb work jointly on an activity or

    project. "he collaborated with him on numerous hotel projects" synonyms: cooperate, join (up), join forces, team up, get together, come together, band together, work together, work jointly, participate, unite, combine, merge, link, ally, associate, amalgamate, integrate, form an alliance, pool resources, club together 2017 © cocoadelica.co.uk 5/38
  4. "A committee is an animal with four back legs" —

    John Le Carre 2017 © cocoadelica.co.uk 7/38
  5. Code wri!en by a human will inherit the traits of

    that human Mr. Spock (probably) 2017 © cocoadelica.co.uk 9/38
  6. "The human eye has an almost infinite capacity for not

    seeing what it does not want to see . . . Programmers, if left to their own devices, will ignore the most glaring errors ... that anyone else can see in an instant"4 4 G. M. Weinberg, The Psychology of Computer Programming Silver Anniversary Edition. New York: Dorset House Publishing, 1998. 2017 © cocoadelica.co.uk 10/38
  7. LoRem ipsum dolor sit amEt sem. MAuris donec velit. Dignissim

    sed inceptos. Orci Aliquam amet vel Bit tempor scelerIsque. Elit sceLerisque mus erat sed lacus. Donec nunc lIgula. Justo egestas fusce. LecTus etiam eu eu maurYs a 2017 © cocoadelica.co.uk 12/38
  8. More confident: 90% Happier: 95% From a survey on pair

    programming,6 6 http://www.cs.utah.edu/%7Elwilliam/Papers/ieeeSoftware.PDF 2017 © cocoadelica.co.uk 14/38
  9. Eliminating waste - Time waiting for code review - Duplicated

    effort - Reworking - Defect resolution - 'Rabbit holes' 2017 © cocoadelica.co.uk 15/38
  10. Pairing: 60 mins Solo: 43 mins Time spent on an

    identical task5 5 On average 2017 © cocoadelica.co.uk 16/38
  11. “Knowledge is commonly constructed through collaborative efforts toward shared objectives,

    or by dialogues and challenges brought about by differences in persons perspectives.” 2017 © cocoadelica.co.uk 19/38
  12. Fear ... of looking foolish ... of conflict ... that

    sharing credit means losing recognition ... of own shyness/introversion ... of not being able to justify 2 developers to 1 task 2017 © cocoadelica.co.uk 23/38
  13. Pride ... in thinking you're smarter ... in thinking you

    don't need help 2017 © cocoadelica.co.uk 24/38
  14. Measure Can't justify pairing to your manager?7 Run some tests.

    — Find a reasonably complex task in your backlog. — Give it to a solo developer and a pair to work on. — Measure it from start to finish. — Include code review for the solo. — Encourage your team to discuss. — Be public with the results. 7 Other leadership ranks are available, YMMV 2017 © cocoadelica.co.uk 27/38
  15. 4. Consider the environment Desk layout? Hardware? Defined areas for

    pairing and solo work? 2017 © cocoadelica.co.uk 31/38
  16. Practice Effective pair programmers hone the balance during an initial

    adjustment period. 2017 © cocoadelica.co.uk 32/38
  17. Discipline Agree on a set of mutually accepted behaviours and

    hold each other to account. 2017 © cocoadelica.co.uk 33/38
  18. - “Slide the keyboard/don't move the chairs”. - Communicate constantly.

    - Articulate your thought process. - Don't filter your ideas. - Regularly switch roles. - Take agreed breaks to check mail etc.. 2017 © cocoadelica.co.uk 34/38
  19. Measure again "Tell me how you will measure me, and

    I will tell you how I will behave." — Eliyahu Goldratt8 8 Business management expert on the application of the theory of constraints to various manufacturing, engineering, and other business processes. 2017 © cocoadelica.co.uk 36/38
  20. — What is it? 2 people, collaborating on 1 task

    — Why do we need it? To ship better code & be better people — Why does it work? Distributed cognition beats isolated thinking — Why are we resistant to it? Fear and pride — How can we make it work? Listen to, understand and care about your colleagues 2017 © cocoadelica.co.uk 37/38
  21. Rob Stearn @cocoadelica Thanks to Paypal UK Slides created in

    Deckset @decksetapp 2017 © cocoadelica.co.uk 38/38