Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pair Programming


Published on

This talk covers how to Pair Program, what benefits you can expect from adopting this as a 100% committed activity, and what you'll need to overcome.

Published in: Software
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ ◀ ◀ ◀ ◀
    Are you sure you want to  Yes  No
    Your message goes here
  • Hello! I do no use writing service very often, only when I really have problems. But this one, I like best of all. The team of writers operates very quickly. It's called ⇒ ⇐ Hope this helps!
    Are you sure you want to  Yes  No
    Your message goes here
  • Here's How YOU Can Stake Out Your Personal Claim In Our EIGHT MILLION DOLLAR GOLDMINE... ◆◆◆
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ ◀ ◀ ◀ ◀
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Pair Programming

  1. 1. Testability starts with code Lorraine Steyn @lor_krs @KRSSoftware
  2. 2. Statistics, Averages, Lies Pairing in Context of Agile Pair Programming Described Working Space Benefits Arguments Against Pairing Q&A Agenda
  3. 3. 70-100 defects per 1000 lines of code 70% removed during development Quality Inspections find 1 (true) defect per man-hour QA’s are 20 x more effective than manual testing Manual testing takes between 4 and 16 hours per defect Stats, Averages,Lies
  4. 4. References: Experience with Inspection in Ultralarge-scale Development, IEEE, Russell 1991 An Experiment to Assess the Cost-Benefits of Code Inspections IEEE, Porter The Costs and Benefits of Pair Programming, ACM, Cockburn and Williams Promiscuous Pairing and Beginner’s Mind, ACM, Belshee 2005 Pair Programming and the Mysterious Role of the Navigator, ACM, Bryant 2008
  5. 5. Assume 1000 lines of code, 100 defects, developer finds 70% Assume 50 lines of code per hour = 20 hours to develop the code 30 defects go to QA, rate of 1 defect identified per hour = 30 hours 30 defects go to Testing, assume 10 hours to find 1 defect = 300 hours? If we could halve the defects: QA hours would reduce to 15, Testers would reduce to 150 hours … Maths: Time = money
  6. 6. Applied Software Measurement, Casper Jones, 1996 X X
  7. 7. Costs Opportunity cost Cost of rework : time, more people, energy, trust … Safety, life-and-death issues Economic loss
  8. 8. How does Agile help us with code?
  9. 9. Customer collaboration over contract negotiation Responding to change over following a plan Working software over comprehensive documentation Individuals and interactions over processes and tools The Agile Manifesto
  10. 10. Scrum
  11. 11. XP Communication Simplicity Feedback Courage Respect Sit Together Whole Team Informative Workspace Energized Work Stories Weekly Cycle Quarterly Cycle Slack Ten-Minute Build Continuous Integration Incremental Design
  12. 12. Pair Programming
  13. 13. Swap often Swap mouse and keyboard every 10 minutes Prevents “watch the master” dysfunction Swap pairs every 90 minutes to 2 hours Highest velocity, lowest exhaustion
  14. 14. Tag Teaming Driver / Navigator
  15. 15. Syntax PercentageofSyntaxrelatedcomments%
  16. 16. Levels Syntax Vars Methods Domain Phys Other
  17. 17. Flow – achieved together Constant explaining – to self and partner Constant adjusting of approach Syntax corrections, but hold back Both need time to think Micro design, discussed as you go Very tiring! X In Practice
  18. 18. But doesn’t it cost More? TIME +15% QUALITY +20%
  19. 19. Lines of Code LINES -10%
  20. 20. Working Space
  21. 21. X
  22. 22. Code Benefits Quality of 70% bug free (solo) rises to 85% (paired) – gain 20% Constant micro design results in cleaner solutions – less code Less code is better – simplicity, easier to read and support Avoids confirmation bias – more innovation Developers consider more alternatives together – robust code
  23. 23. People Benefits Share knowledge and skills – silo busting Easier on-boarding of new team members – mentoring Shared problems are easier to tackle – motivation Harder to procrastinate – productivity Heightened communication – collaboration
  24. 24. Issues, Concerns and Excuses None. Personalities who can really not work together Forcing people causes resentment But it costs double… “I work faster alone” Spending more time training than developing Workspace is not comfortable Personal hygiene
  25. 25. Handling concerns Ego – Primadonnas are not good in a team, lack of care for team members Imposter syndrome – fear of failure People as Resources attitude – “but it costs double”
  26. 26. Pair Strategies Senior – Senior Highest skills, good value Senior – Junior Great for mentoring, good to great value Junior – Junior Better than working alone, poor value Senior – Tester Collaborate on Test Cases (TDD), winning
  27. 27. XP – making the world safe for developers and vice versa
  28. 28. Q+A Lorraine Steyn @lor_krs @KRSSoftware Agile Software Development and Coaching